; LLVM IR from aws/s2n-tls :: tests/unit (s2n_security_policies_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_security_policy_selection = type { ptr, ptr, i8 }
%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_cipher = type { i32, %union.anon, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_supported_cert = type { ptr, i64 }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_signature_scheme = type { i16, ptr, i32, i32, i8, i8, i16, ptr }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@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 [85 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [204 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [173 x i8], align 1
@security_policy_selection = external global [0 x %struct.s2n_security_policy_selection], align 8
@.str.26 = external hidden unnamed_addr constant [93 x i8], align 1
@kem_preferences_all = external constant %struct.s2n_kem_preferences, align 8
@.str.27 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [25 x i8], align 1
@deprecated_security_policies_len = external constant i64, align 8
@deprecated_security_policies = external global [0 x ptr], align 8
@.str.30 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [96 x i8], align 1
@ALL_SUPPORTED_KEM_GROUPS = external global [8 x ptr], align 16
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [109 x i8], align 1
@kem_preferences_pq_tls_1_3_2023_06 = external constant %struct.s2n_kem_preferences, align 8
@.str.64 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [85 x i8], align 1
@pq_kem_groups_r3_2023_06 = external global [0 x ptr], align 8
@.str.66 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [96 x i8], align 1
@__const.main.tls12_only_security_policy_strings = external hidden unnamed_addr constant [45 x [255 x i8]], align 16
@.str.73 = external hidden unnamed_addr constant [123 x i8], align 1
@__const.main.tls13_security_policy_strings = external hidden unnamed_addr constant [35 x [255 x i8]], align 16
@.str.74 = external hidden unnamed_addr constant [118 x i8], align 1
@s2n_chacha20_poly1305 = external constant %struct.s2n_cipher, align 8
@.str.75 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [58 x i8], align 1
@__const.main.fake_suites = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.79 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_20170210 = external constant %struct.s2n_security_policy, align 8
@.str.81 = external hidden unnamed_addr constant [70 x i8], align 1
@cipher_preferences_20170210 = external constant %struct.s2n_cipher_preferences, align 8
@.str.82 = external hidden unnamed_addr constant [93 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.83 = external hidden unnamed_addr constant [83 x i8], align 1
@s2n_signature_preferences_20140601 = external constant %struct.s2n_signature_preferences, align 8
@.str.84 = external hidden unnamed_addr constant [103 x i8], align 1
@s2n_ecc_preferences_20140601 = external constant %struct.s2n_ecc_preferences, align 8
@.str.85 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_20190801 = external constant %struct.s2n_security_policy, align 8
@.str.88 = external hidden unnamed_addr constant [70 x i8], align 1
@cipher_preferences_20190801 = external constant %struct.s2n_cipher_preferences, align 8
@.str.89 = external hidden unnamed_addr constant [93 x i8], align 1
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@.str.90 = external hidden unnamed_addr constant [103 x i8], align 1
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@.str.91 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [78 x i8], align 1
@security_policy_null = external constant %struct.s2n_security_policy, align 8
@.str.94 = external hidden unnamed_addr constant [66 x i8], align 1
@cipher_preferences_null = external constant %struct.s2n_cipher_preferences, align 8
@.str.95 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_signature_preferences_null = external constant %struct.s2n_signature_preferences, align 8
@.str.96 = external hidden unnamed_addr constant [99 x i8], align 1
@s2n_ecc_preferences_null = external constant %struct.s2n_ecc_preferences, align 8
@.str.97 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_test_all = external constant %struct.s2n_security_policy, align 8
@.str.99 = external hidden unnamed_addr constant [70 x i8], align 1
@cipher_preferences_test_all = external constant %struct.s2n_cipher_preferences, align 8
@.str.100 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_signature_preferences_all = external constant %struct.s2n_signature_preferences, align 8
@.str.102 = external hidden unnamed_addr constant [98 x i8], align 1
@s2n_ecc_preferences_test_all = external constant %struct.s2n_ecc_preferences, align 8
@.str.103 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [88 x i8], align 1
@security_policy_test_all_tls12 = external constant %struct.s2n_security_policy, align 8
@.str.106 = external hidden unnamed_addr constant [76 x i8], align 1
@cipher_preferences_test_all_tls12 = external constant %struct.s2n_cipher_preferences, align 8
@.str.107 = external hidden unnamed_addr constant [99 x i8], align 1
@kem_preferences_pq_tls_1_0_2021_05 = external constant %struct.s2n_kem_preferences, align 8
@.str.108 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_signature_preferences_20201021 = external constant %struct.s2n_signature_preferences, align 8
@.str.109 = external hidden unnamed_addr constant [103 x i8], align 1
@s2n_ecc_preferences_20201021 = external constant %struct.s2n_ecc_preferences, align 8
@.str.110 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_ssl_v3 = external constant %struct.s2n_security_policy, align 8
@.str.113 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_aws_crt_sdk_ssl_v3 = external constant %struct.s2n_cipher_preferences, align 8
@.str.114 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_10 = external constant %struct.s2n_security_policy, align 8
@.str.117 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_aws_crt_sdk_default = external constant %struct.s2n_cipher_preferences, align 8
@.str.118 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_11 = external constant %struct.s2n_security_policy, align 8
@.str.121 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_12 = external constant %struct.s2n_security_policy, align 8
@.str.124 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_13 = external constant %struct.s2n_security_policy, align 8
@.str.127 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_aws_crt_sdk_tls_13 = external constant %struct.s2n_cipher_preferences, align 8
@.str.128 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [65 x i8], align 1
@__const.main.test_curve = external hidden unnamed_addr constant %struct.s2n_ecc_named_curve, align 8
@.str.169 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [83 x i8], align 1
@pq_kems_r3_2021_05 = external global [0 x ptr], align 8
@.str.174 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [48 x i8], align 1
@__const.main.test_sig_scheme_pref_list = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.177 = external hidden unnamed_addr constant [119 x i8], align 1
@__const.main.test_sig_scheme_pref_list.178 = external hidden unnamed_addr constant [6 x ptr], align 16
@__const.main.test_sig_scheme_pref_list.179 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.180 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [54 x i8], align 1
@security_policy_20230317 = external constant %struct.s2n_security_policy, align 8
@.str.182 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20240331 = external constant %struct.s2n_security_policy, align 8
@.str.197 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [138 x i8], align 1
@security_policy_rfc9151 = external constant %struct.s2n_security_policy, align 8
@.str.210 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20240503 = external constant %struct.s2n_security_policy, align 8
@.str.214 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20240502 = external constant %struct.s2n_security_policy, align 8
@.str.216 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20250211 = external constant %struct.s2n_security_policy, align 8
@.str.217 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20250414 = external constant %struct.s2n_security_policy, align 8
@.str.223 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [136 x i8], align 1
@__const.main.versioned_policies = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.227 = external hidden unnamed_addr constant [235 x i8], align 1
@__const.main.versioned_policies.228 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.229 = external hidden unnamed_addr constant [241 x i8], align 1
@__const.main.versioned_policies.230 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.231 = external hidden unnamed_addr constant [240 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i64, align 8
  %25 = alloca ptr, align 8
  %26 = alloca i8, align 1
  %27 = alloca i64, align 8
  %28 = alloca i32, align 4
  %29 = alloca i8, align 1
  %30 = alloca i64, align 8
  %31 = alloca i8, align 1
  %32 = alloca i8, align 1
  %33 = alloca i64, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i64, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca 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 %struct.s2n_result, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca %struct.s2n_result, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca [45 x [255 x i8]], align 16
  %117 = alloca i64, align 8
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca [35 x [255 x i8]], align 16
  %121 = alloca i64, align 8
  %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 i64, align 8
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca ptr, align 8
  %131 = alloca i32, align 4
  %132 = alloca i8, align 1
  %133 = alloca i64, align 8
  %134 = alloca ptr, align 8
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca [1 x ptr], align 8
  %138 = alloca %struct.s2n_cipher_preferences, align 8
  %139 = alloca %struct.s2n_kem_preferences, align 8
  %140 = alloca %struct.s2n_security_policy, align 8
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca ptr, align 8
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca 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 i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca 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 i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca ptr, align 8
  %215 = alloca ptr, 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 i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca ptr, align 8
  %252 = alloca i32, align 4
  %253 = alloca i8, align 1
  %254 = alloca i8, align 1
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca %struct.s2n_ecc_named_curve, align 8
  %261 = alloca [1 x ptr], align 8
  %262 = alloca %struct.s2n_ecc_preferences, align 8
  %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 [4 x %struct.s2n_kem_preferences], align 16
  %274 = alloca i64, align 8
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i64, align 8
  %280 = alloca i32, align 4
  %281 = alloca i64, align 8
  %282 = alloca i64, align 8
  %283 = alloca i32, align 4
  %284 = alloca [1 x ptr], align 8
  %285 = alloca %struct.s2n_signature_preferences, align 8
  %286 = alloca %struct.s2n_result, align 4
  %287 = alloca i32, align 4
  %288 = alloca [6 x ptr], align 16
  %289 = alloca %struct.s2n_signature_preferences, align 8
  %290 = alloca %struct.s2n_result, align 4
  %291 = alloca i32, align 4
  %292 = alloca [2 x ptr], align 16
  %293 = alloca %struct.s2n_signature_preferences, align 8
  %294 = alloca %struct.s2n_result, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca %struct.s2n_result, align 4
  %300 = alloca i32, align 4
  %301 = alloca %struct.s2n_result, align 4
  %302 = alloca i32, align 4
  %303 = alloca %struct.s2n_result, align 4
  %304 = alloca i32, align 4
  %305 = alloca %struct.s2n_result, align 4
  %306 = alloca i32, align 4
  %307 = alloca %struct.s2n_result, align 4
  %308 = alloca i32, align 4
  %309 = alloca %struct.s2n_result, align 4
  %310 = alloca i32, align 4
  %311 = alloca %struct.s2n_result, align 4
  %312 = alloca i32, align 4
  %313 = alloca %struct.s2n_result, align 4
  %314 = alloca i32, align 4
  %315 = alloca %struct.s2n_result, align 4
  %316 = alloca i32, align 4
  %317 = alloca %struct.s2n_result, align 4
  %318 = alloca i32, align 4
  %319 = alloca %struct.s2n_result, align 4
  %320 = alloca i32, align 4
  %321 = alloca %struct.s2n_result, align 4
  %322 = alloca i32, align 4
  %323 = alloca %struct.s2n_result, align 4
  %324 = alloca i32, align 4
  %325 = alloca %struct.s2n_result, align 4
  %326 = alloca i32, align 4
  %327 = alloca %struct.s2n_result, align 4
  %328 = alloca i32, align 4
  %329 = alloca %struct.s2n_result, align 4
  %330 = alloca i32, align 4
  %331 = alloca %struct.s2n_result, align 4
  %332 = alloca i32, align 4
  %333 = alloca %struct.s2n_result, align 4
  %334 = alloca i32, align 4
  %335 = alloca %struct.s2n_result, align 4
  %336 = alloca i32, align 4
  %337 = alloca %struct.s2n_result, align 4
  %338 = alloca i32, align 4
  %339 = alloca %struct.s2n_result, align 4
  %340 = alloca i32, align 4
  %341 = alloca %struct.s2n_result, align 4
  %342 = alloca i32, align 4
  %343 = alloca i32, align 4
  %344 = alloca i32, align 4
  %345 = alloca %struct.s2n_result, align 4
  %346 = alloca i32, align 4
  %347 = alloca i32, align 4
  %348 = alloca i32, align 4
  %349 = alloca %struct.s2n_result, align 4
  %350 = alloca i32, align 4
  %351 = alloca %struct.s2n_result, align 4
  %352 = alloca i32, align 4
  %353 = alloca %struct.s2n_result, align 4
  %354 = alloca i32, align 4
  %355 = alloca %struct.s2n_result, align 4
  %356 = alloca i32, align 4
  %357 = alloca %struct.s2n_result, align 4
  %358 = alloca i32, align 4
  %359 = alloca %struct.s2n_result, align 4
  %360 = alloca i32, align 4
  %361 = alloca %struct.s2n_result, align 4
  %362 = alloca i32, align 4
  %363 = alloca %struct.s2n_result, align 4
  %364 = alloca i32, align 4
  %365 = alloca i32, align 4
  %366 = alloca i32, align 4
  %367 = alloca %struct.s2n_result, align 4
  %368 = alloca i32, align 4
  %369 = alloca %struct.s2n_result, align 4
  %370 = alloca i32, align 4
  %371 = alloca %struct.s2n_result, align 4
  %372 = alloca i32, align 4
  %373 = alloca %struct.s2n_result, align 4
  %374 = alloca i32, align 4
  %375 = alloca %struct.s2n_result, align 4
  %376 = alloca i32, align 4
  %377 = alloca %struct.s2n_result, align 4
  %378 = alloca i32, align 4
  %379 = alloca %struct.s2n_result, align 4
  %380 = alloca i32, align 4
  %381 = alloca %struct.s2n_result, align 4
  %382 = alloca i32, align 4
  %383 = alloca %struct.s2n_result, align 4
  %384 = alloca i32, align 4
  %385 = alloca [2 x ptr], align 16
  %386 = alloca [2 x %struct.s2n_supported_cert], align 16
  %387 = alloca %struct.s2n_result, align 4
  %388 = alloca i32, align 4
  %389 = alloca [2 x ptr], align 16
  %390 = alloca [3 x %struct.s2n_supported_cert], align 16
  %391 = alloca %struct.s2n_result, align 4
  %392 = alloca i32, align 4
  %393 = alloca [2 x ptr], align 16
  %394 = alloca [2 x %struct.s2n_supported_cert], align 16
  %395 = alloca %struct.s2n_result, align 4
  %396 = alloca i32, align 4
  %397 = alloca ptr, align 8
  %398 = alloca i32, align 4
  %399 = alloca i32, align 4
  %400 = alloca ptr, align 8
  %401 = alloca i32, align 4
  %402 = alloca i32, align 4
  %403 = alloca i32, align 4
  %404 = alloca i32, align 4
  %405 = alloca i32, align 4
  %406 = alloca i32, align 4
  %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 %struct.s2n_result, align 4
  %413 = alloca %struct.s2n_result, align 4
  %414 = alloca %struct.s2n_result, align 4
  %415 = alloca %struct.s2n_result, align 4
  %416 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %417

417:                                              ; preds = %2
  br label %418

418:                                              ; preds = %417
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %419 = load ptr, ptr @stdout, align 8, !tbaa !9
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %419, ptr noundef @.str, ptr noundef @.str.1) #10
  %421 = load ptr, ptr @stdout, align 8, !tbaa !9
  %422 = call i32 @fflush(ptr noundef %421)
  br label %423

423:                                              ; preds = %418
  %424 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %425 = icmp eq i32 %424, -1
  br i1 %425, label %426, label %477

426:                                              ; preds = %423
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %429 = call ptr @__errno_location() #11
  %430 = load i32, ptr %429, align 4, !tbaa !5
  store i32 %430, ptr %6, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = call i32 @s2n_print_stacktrace(ptr noundef %431)
  %433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %434 = trunc i8 %433 to i1
  br i1 %434, label %435, label %457

435:                                              ; preds = %428
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @fileno(ptr noundef %436) #10
  %438 = call i32 @isatty(i32 noundef %437) #10
  %439 = icmp ne i32 %438, 0
  br i1 %439, label %440, label %457

440:                                              ; preds = %435
  %441 = load i32, ptr %6, align 4, !tbaa !5
  %442 = call ptr @__errno_location() #11
  store i32 %441, ptr %442, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror(i32 noundef %446, ptr noundef @.str.4)
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror_debug(i32 noundef %449, ptr noundef @.str.4)
  %451 = call ptr @__errno_location() #11
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @strerror(i32 noundef %452) #10
  %454 = call ptr @__errno_location() #11
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef @.str.2, i32 noundef %444, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 96, ptr noundef %447, ptr noundef %450, ptr noundef %453, i32 noundef %455) #10
  br label %474

457:                                              ; preds = %435, %428
  %458 = load i32, ptr %6, align 4, !tbaa !5
  %459 = call ptr @__errno_location() #11
  store i32 %458, ptr %459, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef @.str.4)
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef @.str.4)
  %468 = call ptr @__errno_location() #11
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #10
  %471 = call ptr @__errno_location() #11
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.5, i32 noundef %461, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 96, ptr noundef %464, ptr noundef %467, ptr noundef %470, i32 noundef %472) #10
  br label %474

474:                                              ; preds = %457, %440
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %475

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

476:                                              ; No predecessors!
  br label %477

477:                                              ; preds = %476, %423
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  %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 = call i32 @s2n_enable_atexit()
  %483 = icmp eq i32 %482, -1
  br i1 %483, label %484, label %535

484:                                              ; preds = %479
  br label %485

485:                                              ; preds = %484
  br label %486

486:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %487 = call ptr @__errno_location() #11
  %488 = load i32, ptr %487, align 4, !tbaa !5
  store i32 %488, ptr %7, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @s2n_print_stacktrace(ptr noundef %489)
  %491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %492 = trunc i8 %491 to i1
  br i1 %492, label %493, label %515

493:                                              ; preds = %486
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = call i32 @fileno(ptr noundef %494) #10
  %496 = call i32 @isatty(i32 noundef %495) #10
  %497 = icmp ne i32 %496, 0
  br i1 %497, label %498, label %515

498:                                              ; preds = %493
  %499 = load i32, ptr %7, align 4, !tbaa !5
  %500 = call ptr @__errno_location() #11
  store i32 %499, ptr %500, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror(i32 noundef %504, ptr noundef @.str.4)
  %506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = call ptr @s2n_strerror_debug(i32 noundef %507, ptr noundef @.str.4)
  %509 = call ptr @__errno_location() #11
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = call ptr @strerror(i32 noundef %510) #10
  %512 = call ptr @__errno_location() #11
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %501, ptr noundef @.str.2, i32 noundef %502, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 96, ptr noundef %505, ptr noundef %508, ptr noundef %511, i32 noundef %513) #10
  br label %532

515:                                              ; preds = %493, %486
  %516 = load i32, ptr %7, align 4, !tbaa !5
  %517 = call ptr @__errno_location() #11
  store i32 %516, ptr %517, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef @.str.4)
  %523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror_debug(i32 noundef %524, ptr noundef @.str.4)
  %526 = call ptr @__errno_location() #11
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #10
  %529 = call ptr @__errno_location() #11
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef @.str.5, i32 noundef %519, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 96, ptr noundef %522, ptr noundef %525, ptr noundef %528, i32 noundef %530) #10
  br label %532

532:                                              ; preds = %515, %498
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %533

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

534:                                              ; No predecessors!
  br label %535

535:                                              ; preds = %534, %479
  br label %536

536:                                              ; preds = %535
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  %539 = call i32 @s2n_init()
  %540 = icmp eq i32 %539, -1
  br i1 %540, label %541, label %592

541:                                              ; preds = %538
  br label %542

542:                                              ; preds = %541
  br label %543

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

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

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

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

589:                                              ; preds = %572, %555
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %590

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

591:                                              ; No predecessors!
  br label %592

592:                                              ; preds = %591, %538
  br label %593

593:                                              ; preds = %592
  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_disable_tls13_in_test()
  %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 %9) #10
  %603 = call ptr @__errno_location() #11
  %604 = load i32, ptr %603, align 4, !tbaa !5
  store i32 %604, ptr %9, 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) #10
  %612 = call i32 @isatty(i32 noundef %611) #10
  %613 = icmp ne i32 %612, 0
  br i1 %613, label %614, label %631

614:                                              ; preds = %609
  %615 = load i32, ptr %9, align 4, !tbaa !5
  %616 = call ptr @__errno_location() #11
  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() #11
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @strerror(i32 noundef %626) #10
  %628 = call ptr @__errno_location() #11
  %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.8, ptr noundef @.str.1, i32 noundef 97, ptr noundef %621, ptr noundef %624, ptr noundef %627, i32 noundef %629) #10
  br label %648

631:                                              ; preds = %609, %602
  %632 = load i32, ptr %9, align 4, !tbaa !5
  %633 = call ptr @__errno_location() #11
  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() #11
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call ptr @strerror(i32 noundef %643) #10
  %645 = call ptr @__errno_location() #11
  %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.8, ptr noundef @.str.1, i32 noundef 97, ptr noundef %638, ptr noundef %641, ptr noundef %644, i32 noundef %646) #10
  br label %648

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

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

650:                                              ; No predecessors!
  br label %651

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

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

653:                                              ; preds = %652
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr @test_count, align 4, !tbaa !5
  %656 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %10, ptr noundef @.str.9, ptr noundef @.str.10)
  %657 = icmp eq i32 %656, -1
  br i1 %657, label %658, label %711

658:                                              ; preds = %653
  br label %659

659:                                              ; preds = %658
  br label %660

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

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

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

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

706:                                              ; preds = %689, %672
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %707

707:                                              ; preds = %706
  br label %708

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

709:                                              ; No predecessors!
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710, %653
  br label %712

712:                                              ; preds = %711
  br label %713

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

714:                                              ; preds = %713
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %12, ptr noundef @.str.12, ptr noundef @.str.13)
  %718 = icmp eq i32 %717, -1
  br i1 %718, label %719, label %772

719:                                              ; preds = %714
  br label %720

720:                                              ; preds = %719
  br label %721

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

728:                                              ; preds = %721
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @fileno(ptr noundef %729) #10
  %731 = call i32 @isatty(i32 noundef %730) #10
  %732 = icmp ne i32 %731, 0
  br i1 %732, label %733, label %750

733:                                              ; preds = %728
  %734 = load i32, ptr %13, align 4, !tbaa !5
  %735 = call ptr @__errno_location() #11
  store i32 %734, ptr %735, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %739, ptr noundef @.str.4)
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror_debug(i32 noundef %742, ptr noundef @.str.4)
  %744 = call ptr @__errno_location() #11
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @strerror(i32 noundef %745) #10
  %747 = call ptr @__errno_location() #11
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef @.str.2, i32 noundef %737, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 105, ptr noundef %740, ptr noundef %743, ptr noundef %746, i32 noundef %748) #10
  br label %767

750:                                              ; preds = %728, %721
  %751 = load i32, ptr %13, align 4, !tbaa !5
  %752 = call ptr @__errno_location() #11
  store i32 %751, ptr %752, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %756, ptr noundef @.str.4)
  %758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror_debug(i32 noundef %759, ptr noundef @.str.4)
  %761 = call ptr @__errno_location() #11
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #10
  %764 = call ptr @__errno_location() #11
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef @.str.5, i32 noundef %754, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 105, ptr noundef %757, ptr noundef %760, ptr noundef %763, i32 noundef %765) #10
  br label %767

767:                                              ; preds = %750, %733
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %768

768:                                              ; preds = %767
  br label %769

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

770:                                              ; No predecessors!
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771, %714
  br label %773

773:                                              ; preds = %772
  br label %774

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

775:                                              ; preds = %774
  %776 = load i32, ptr @test_count, align 4, !tbaa !5
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr @test_count, align 4, !tbaa !5
  %778 = call i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef %14, ptr noundef @.str.15, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef @.str.18)
  %779 = icmp eq i32 %778, -1
  br i1 %779, label %780, label %833

780:                                              ; preds = %775
  br label %781

781:                                              ; preds = %780
  br label %782

782:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %783 = call ptr @__errno_location() #11
  %784 = load i32, ptr %783, align 4, !tbaa !5
  store i32 %784, ptr %15, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @s2n_print_stacktrace(ptr noundef %785)
  %787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %788 = trunc i8 %787 to i1
  br i1 %788, label %789, label %811

789:                                              ; preds = %782
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = call i32 @fileno(ptr noundef %790) #10
  %792 = call i32 @isatty(i32 noundef %791) #10
  %793 = icmp ne i32 %792, 0
  br i1 %793, label %794, label %811

794:                                              ; preds = %789
  %795 = load i32, ptr %15, align 4, !tbaa !5
  %796 = call ptr @__errno_location() #11
  store i32 %795, ptr %796, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror(i32 noundef %800, ptr noundef @.str.4)
  %802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror_debug(i32 noundef %803, ptr noundef @.str.4)
  %805 = call ptr @__errno_location() #11
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @strerror(i32 noundef %806) #10
  %808 = call ptr @__errno_location() #11
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef @.str.2, i32 noundef %798, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 108, ptr noundef %801, ptr noundef %804, ptr noundef %807, i32 noundef %809) #10
  br label %828

811:                                              ; preds = %789, %782
  %812 = load i32, ptr %15, align 4, !tbaa !5
  %813 = call ptr @__errno_location() #11
  store i32 %812, ptr %813, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror(i32 noundef %817, ptr noundef @.str.4)
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef @.str.4)
  %822 = call ptr @__errno_location() #11
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #10
  %825 = call ptr @__errno_location() #11
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef @.str.5, i32 noundef %815, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 108, ptr noundef %818, ptr noundef %821, ptr noundef %824, i32 noundef %826) #10
  br label %828

828:                                              ; preds = %811, %794
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %829

829:                                              ; preds = %828
  br label %830

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

831:                                              ; No predecessors!
  br label %832

832:                                              ; preds = %831
  br label %833

833:                                              ; preds = %832, %775
  br label %834

834:                                              ; preds = %833
  br label %835

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

836:                                              ; preds = %835
  %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 = call i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef %16, ptr noundef @.str.15, ptr noundef @.str.16, ptr noundef @.str.20, ptr noundef @.str.21)
  %840 = icmp eq i32 %839, -1
  br i1 %840, label %841, label %894

841:                                              ; preds = %836
  br label %842

842:                                              ; preds = %841
  br label %843

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

850:                                              ; preds = %843
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @fileno(ptr noundef %851) #10
  %853 = call i32 @isatty(i32 noundef %852) #10
  %854 = icmp ne i32 %853, 0
  br i1 %854, label %855, label %872

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

872:                                              ; preds = %850, %843
  %873 = load i32, ptr %17, align 4, !tbaa !5
  %874 = call ptr @__errno_location() #11
  store i32 %873, ptr %874, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %878, ptr noundef @.str.4)
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror_debug(i32 noundef %881, ptr noundef @.str.4)
  %883 = call ptr @__errno_location() #11
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #10
  %886 = call ptr @__errno_location() #11
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %875, ptr noundef @.str.5, i32 noundef %876, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 111, ptr noundef %879, ptr noundef %882, ptr noundef %885, i32 noundef %887) #10
  br label %889

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

890:                                              ; preds = %889
  br label %891

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

892:                                              ; No predecessors!
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893, %836
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  store ptr null, ptr %18, align 8, !tbaa !9
  %897 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %897, label %898, label %960

898:                                              ; preds = %896
  br label %899

899:                                              ; preds = %898
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %18, ptr noundef @.str.23, ptr noundef @.str.24)
  %903 = icmp eq i32 %902, -1
  br i1 %903, label %904, label %957

904:                                              ; preds = %899
  br label %905

905:                                              ; preds = %904
  br label %906

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

913:                                              ; preds = %906
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @fileno(ptr noundef %914) #10
  %916 = call i32 @isatty(i32 noundef %915) #10
  %917 = icmp ne i32 %916, 0
  br i1 %917, label %918, label %935

918:                                              ; preds = %913
  %919 = load i32, ptr %19, align 4, !tbaa !5
  %920 = call ptr @__errno_location() #11
  store i32 %919, ptr %920, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %924, ptr noundef @.str.4)
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef @.str.4)
  %929 = call ptr @__errno_location() #11
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @strerror(i32 noundef %930) #10
  %932 = call ptr @__errno_location() #11
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef @.str.2, i32 noundef %922, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 116, ptr noundef %925, ptr noundef %928, ptr noundef %931, i32 noundef %933) #10
  br label %952

935:                                              ; preds = %913, %906
  %936 = load i32, ptr %19, align 4, !tbaa !5
  %937 = call ptr @__errno_location() #11
  store i32 %936, ptr %937, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %941, ptr noundef @.str.4)
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef @.str.4)
  %946 = call ptr @__errno_location() #11
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #10
  %949 = call ptr @__errno_location() #11
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef @.str.5, i32 noundef %939, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 116, ptr noundef %942, ptr noundef %945, ptr noundef %948, i32 noundef %950) #10
  br label %952

952:                                              ; preds = %935, %918
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %953

953:                                              ; preds = %952
  br label %954

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

955:                                              ; No predecessors!
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956, %899
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959, %896
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  store i64 0, ptr %20, align 8, !tbaa !15
  br label %961

961:                                              ; preds = %1379, %960
  %962 = load i64, ptr %20, align 8, !tbaa !15
  %963 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %962
  %964 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %963, i32 0, i32 0
  %965 = load ptr, ptr %964, align 8, !tbaa !17
  %966 = icmp ne ptr %965, null
  br i1 %966, label %968, label %967

967:                                              ; preds = %961
  store i32 60, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  br label %1382

968:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %969 = load i64, ptr %20, align 8, !tbaa !15
  %970 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %969
  %971 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %970, i32 0, i32 1
  %972 = load ptr, ptr %971, align 8, !tbaa !19
  store ptr %972, ptr %22, align 8, !tbaa !9
  %973 = load ptr, ptr %22, align 8, !tbaa !9
  %974 = getelementptr inbounds %struct.s2n_security_policy, ptr %973, i32 0, i32 2
  %975 = load ptr, ptr %974, align 8, !tbaa !20
  %976 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %975, i32 0, i32 2
  %977 = load i8, ptr %976, align 8, !tbaa !22
  %978 = zext i8 %977 to i32
  %979 = icmp sgt i32 %978, 0
  br i1 %979, label %980, label %1157

980:                                              ; preds = %968
  br label %981

981:                                              ; preds = %980
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = add nsw i32 %982, 1
  store i32 %983, ptr @test_count, align 4, !tbaa !5
  %984 = load ptr, ptr %22, align 8, !tbaa !9
  %985 = getelementptr inbounds %struct.s2n_security_policy, ptr %984, i32 0, i32 2
  %986 = load ptr, ptr %985, align 8, !tbaa !20
  %987 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %986, i32 0, i32 2
  %988 = load i8, ptr %987, align 8, !tbaa !22
  %989 = zext i8 %988 to i32
  %990 = icmp sle i32 %989, 8
  br i1 %990, label %1044, label %991

991:                                              ; preds = %981
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %994 = call ptr @__errno_location() #11
  %995 = load i32, ptr %994, align 4, !tbaa !5
  store i32 %995, ptr %23, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = call i32 @s2n_print_stacktrace(ptr noundef %996)
  %998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %999 = trunc i8 %998 to i1
  br i1 %999, label %1000, label %1022

1000:                                             ; preds = %993
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @fileno(ptr noundef %1001) #10
  %1003 = call i32 @isatty(i32 noundef %1002) #10
  %1004 = icmp ne i32 %1003, 0
  br i1 %1004, label %1005, label %1022

1005:                                             ; preds = %1000
  %1006 = load i32, ptr %23, align 4, !tbaa !5
  %1007 = call ptr @__errno_location() #11
  store i32 %1006, ptr %1007, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call ptr @s2n_strerror(i32 noundef %1011, ptr noundef @.str.4)
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror_debug(i32 noundef %1014, ptr noundef @.str.4)
  %1016 = call ptr @__errno_location() #11
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @strerror(i32 noundef %1017) #10
  %1019 = call ptr @__errno_location() #11
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1008, ptr noundef @.str.2, i32 noundef %1009, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1012, ptr noundef %1015, ptr noundef %1018, i32 noundef %1020) #10
  br label %1039

1022:                                             ; preds = %1000, %993
  %1023 = load i32, ptr %23, align 4, !tbaa !5
  %1024 = call ptr @__errno_location() #11
  store i32 %1023, ptr %1024, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror(i32 noundef %1028, ptr noundef @.str.4)
  %1030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef @.str.4)
  %1033 = call ptr @__errno_location() #11
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @strerror(i32 noundef %1034) #10
  %1036 = call ptr @__errno_location() #11
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1025, ptr noundef @.str.5, i32 noundef %1026, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1029, ptr noundef %1032, ptr noundef %1035, i32 noundef %1037) #10
  br label %1039

1039:                                             ; preds = %1022, %1005
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %1040

1040:                                             ; preds = %1039
  br label %1041

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

1042:                                             ; No predecessors!
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043, %981
  br label %1045

1045:                                             ; preds = %1044
  br label %1046

1046:                                             ; preds = %1045
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  store i64 0, ptr %24, align 8, !tbaa !15
  br label %1047

1047:                                             ; preds = %1153, %1046
  %1048 = load i64, ptr %24, align 8, !tbaa !15
  %1049 = load ptr, ptr %22, align 8, !tbaa !9
  %1050 = getelementptr inbounds %struct.s2n_security_policy, ptr %1049, i32 0, i32 2
  %1051 = load ptr, ptr %1050, align 8, !tbaa !20
  %1052 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %1051, i32 0, i32 2
  %1053 = load i8, ptr %1052, align 8, !tbaa !22
  %1054 = zext i8 %1053 to i64
  %1055 = icmp ult i64 %1048, %1054
  br i1 %1055, label %1057, label %1056

1056:                                             ; preds = %1047
  store i32 69, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  br label %1156

1057:                                             ; preds = %1047
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %1058 = load ptr, ptr %22, align 8, !tbaa !9
  %1059 = getelementptr inbounds %struct.s2n_security_policy, ptr %1058, i32 0, i32 2
  %1060 = load ptr, ptr %1059, align 8, !tbaa !20
  %1061 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %1060, i32 0, i32 3
  %1062 = load ptr, ptr %1061, align 8, !tbaa !24
  %1063 = load i64, ptr %24, align 8, !tbaa !15
  %1064 = getelementptr inbounds ptr, ptr %1062, i64 %1063
  %1065 = load ptr, ptr %1064, align 8, !tbaa !9
  store ptr %1065, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #10
  store i8 0, ptr %26, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  store i64 0, ptr %27, align 8, !tbaa !15
  br label %1066

1066:                                             ; preds = %1087, %1057
  %1067 = load i64, ptr %27, align 8, !tbaa !15
  %1068 = load i8, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 2), align 8, !tbaa !22
  %1069 = zext i8 %1068 to i64
  %1070 = icmp ult i64 %1067, %1069
  br i1 %1070, label %1072, label %1071

1071:                                             ; preds = %1066
  store i32 72, ptr %21, align 4
  br label %1090

1072:                                             ; preds = %1066
  %1073 = load ptr, ptr %25, align 8, !tbaa !9
  %1074 = getelementptr inbounds %struct.s2n_kem_group, ptr %1073, i32 0, i32 1
  %1075 = load i16, ptr %1074, align 8, !tbaa !25
  %1076 = zext i16 %1075 to i32
  %1077 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 3), align 8, !tbaa !24
  %1078 = load i64, ptr %27, align 8, !tbaa !15
  %1079 = getelementptr inbounds ptr, ptr %1077, i64 %1078
  %1080 = load ptr, ptr %1079, align 8, !tbaa !9
  %1081 = getelementptr inbounds %struct.s2n_kem_group, ptr %1080, i32 0, i32 1
  %1082 = load i16, ptr %1081, align 8, !tbaa !25
  %1083 = zext i16 %1082 to i32
  %1084 = icmp eq i32 %1076, %1083
  br i1 %1084, label %1085, label %1086

1085:                                             ; preds = %1072
  store i8 1, ptr %26, align 1, !tbaa !11
  store i32 72, ptr %21, align 4
  br label %1090

1086:                                             ; preds = %1072
  br label %1087

1087:                                             ; preds = %1086
  %1088 = load i64, ptr %27, align 8, !tbaa !15
  %1089 = add i64 %1088, 1
  store i64 %1089, ptr %27, align 8, !tbaa !15
  br label %1066, !llvm.loop !28

1090:                                             ; preds = %1085, %1071
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = add nsw i32 %1093, 1
  store i32 %1094, ptr @test_count, align 4, !tbaa !5
  %1095 = load i8, ptr %26, align 1, !tbaa !11, !range !13, !noundef !14
  %1096 = trunc i8 %1095 to i1
  br i1 %1096, label %1150, label %1097

1097:                                             ; preds = %1092
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

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

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

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

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

1145:                                             ; preds = %1128, %1111
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

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

1148:                                             ; No predecessors!
  br label %1149

1149:                                             ; preds = %1148
  br label %1150

1150:                                             ; preds = %1149, %1092
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %1153

1153:                                             ; preds = %1152
  %1154 = load i64, ptr %24, align 8, !tbaa !15
  %1155 = add i64 %1154, 1
  store i64 %1155, ptr %24, align 8, !tbaa !15
  br label %1047, !llvm.loop !30

1156:                                             ; preds = %1056
  br label %1157

1157:                                             ; preds = %1156, %968
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #10
  store i8 0, ptr %29, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  store i64 0, ptr %30, align 8, !tbaa !15
  br label %1158

1158:                                             ; preds = %1183, %1157
  %1159 = load i64, ptr %30, align 8, !tbaa !15
  %1160 = load ptr, ptr %22, align 8, !tbaa !9
  %1161 = getelementptr inbounds %struct.s2n_security_policy, ptr %1160, i32 0, i32 1
  %1162 = load ptr, ptr %1161, align 8, !tbaa !31
  %1163 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %1162, i32 0, i32 0
  %1164 = load i16, ptr %1163, align 8, !tbaa !32
  %1165 = zext i16 %1164 to i64
  %1166 = icmp ult i64 %1159, %1165
  br i1 %1166, label %1168, label %1167

1167:                                             ; preds = %1158
  store i32 81, ptr %21, align 4
  br label %1186

1168:                                             ; preds = %1158
  %1169 = load ptr, ptr %22, align 8, !tbaa !9
  %1170 = getelementptr inbounds %struct.s2n_security_policy, ptr %1169, i32 0, i32 1
  %1171 = load ptr, ptr %1170, align 8, !tbaa !31
  %1172 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %1171, i32 0, i32 1
  %1173 = load ptr, ptr %1172, align 8, !tbaa !34
  %1174 = load i64, ptr %30, align 8, !tbaa !15
  %1175 = getelementptr inbounds ptr, ptr %1173, i64 %1174
  %1176 = load ptr, ptr %1175, align 8, !tbaa !9
  %1177 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1176, i32 0, i32 12
  %1178 = load i8, ptr %1177, align 4, !tbaa !35
  %1179 = zext i8 %1178 to i32
  %1180 = icmp eq i32 %1179, 34
  br i1 %1180, label %1181, label %1182

1181:                                             ; preds = %1168
  store i8 1, ptr %29, align 1, !tbaa !11
  store i32 81, ptr %21, align 4
  br label %1186

1182:                                             ; preds = %1168
  br label %1183

1183:                                             ; preds = %1182
  %1184 = load i64, ptr %30, align 8, !tbaa !15
  %1185 = add i64 %1184, 1
  store i64 %1185, ptr %30, align 8, !tbaa !15
  br label %1158, !llvm.loop !37

1186:                                             ; preds = %1181, %1167
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  br label %1187

1187:                                             ; preds = %1186
  %1188 = load i8, ptr %29, align 1, !tbaa !11, !range !13, !noundef !14
  %1189 = trunc i8 %1188 to i1
  br i1 %1189, label %1190, label %1378

1190:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #10
  store i8 0, ptr %31, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #10
  store i8 0, ptr %32, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  store i64 0, ptr %33, align 8, !tbaa !15
  br label %1191

1191:                                             ; preds = %1252, %1190
  %1192 = load i64, ptr %33, align 8, !tbaa !15
  %1193 = load ptr, ptr %22, align 8, !tbaa !9
  %1194 = getelementptr inbounds %struct.s2n_security_policy, ptr %1193, i32 0, i32 3
  %1195 = load ptr, ptr %1194, align 8, !tbaa !38
  %1196 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %1195, i32 0, i32 0
  %1197 = load i8, ptr %1196, align 8, !tbaa !39
  %1198 = zext i8 %1197 to i64
  %1199 = icmp ult i64 %1192, %1198
  br i1 %1199, label %1201, label %1200

1200:                                             ; preds = %1191
  store i32 84, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %1255

1201:                                             ; preds = %1191
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1202 = load ptr, ptr %22, align 8, !tbaa !9
  %1203 = getelementptr inbounds %struct.s2n_security_policy, ptr %1202, i32 0, i32 3
  %1204 = load ptr, ptr %1203, align 8, !tbaa !38
  %1205 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %1204, i32 0, i32 1
  %1206 = load ptr, ptr %1205, align 8, !tbaa !41
  %1207 = load i64, ptr %33, align 8, !tbaa !15
  %1208 = getelementptr inbounds ptr, ptr %1206, i64 %1207
  %1209 = load ptr, ptr %1208, align 8, !tbaa !9
  %1210 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %1209, i32 0, i32 4
  %1211 = load i8, ptr %1210, align 8, !tbaa !42
  %1212 = zext i8 %1211 to i32
  store i32 %1212, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1213 = load ptr, ptr %22, align 8, !tbaa !9
  %1214 = getelementptr inbounds %struct.s2n_security_policy, ptr %1213, i32 0, i32 3
  %1215 = load ptr, ptr %1214, align 8, !tbaa !38
  %1216 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %1215, i32 0, i32 1
  %1217 = load ptr, ptr %1216, align 8, !tbaa !41
  %1218 = load i64, ptr %33, align 8, !tbaa !15
  %1219 = getelementptr inbounds ptr, ptr %1217, i64 %1218
  %1220 = load ptr, ptr %1219, align 8, !tbaa !9
  %1221 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %1220, i32 0, i32 5
  %1222 = load i8, ptr %1221, align 1, !tbaa !44
  %1223 = zext i8 %1222 to i32
  store i32 %1223, ptr %35, align 4, !tbaa !5
  %1224 = load i32, ptr %35, align 4, !tbaa !5
  %1225 = icmp eq i32 %1224, 0
  br i1 %1225, label %1226, label %1227

1226:                                             ; preds = %1201
  store i32 34, ptr %35, align 4, !tbaa !5
  br label %1227

1227:                                             ; preds = %1226, %1201
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1228 = load ptr, ptr %22, align 8, !tbaa !9
  %1229 = getelementptr inbounds %struct.s2n_security_policy, ptr %1228, i32 0, i32 3
  %1230 = load ptr, ptr %1229, align 8, !tbaa !38
  %1231 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %1230, i32 0, i32 1
  %1232 = load ptr, ptr %1231, align 8, !tbaa !41
  %1233 = load i64, ptr %33, align 8, !tbaa !15
  %1234 = getelementptr inbounds ptr, ptr %1232, i64 %1233
  %1235 = load ptr, ptr %1234, align 8, !tbaa !9
  %1236 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %1235, i32 0, i32 3
  %1237 = load i32, ptr %1236, align 4, !tbaa !45
  store i32 %1237, ptr %36, align 4, !tbaa !5
  %1238 = load i32, ptr %34, align 4, !tbaa !5
  %1239 = icmp sle i32 %1238, 34
  br i1 %1239, label %1240, label %1244

1240:                                             ; preds = %1227
  %1241 = load i32, ptr %35, align 4, !tbaa !5
  %1242 = icmp sge i32 %1241, 34
  br i1 %1242, label %1243, label %1244

1243:                                             ; preds = %1240
  store i8 1, ptr %31, align 1, !tbaa !11
  br label %1244

1244:                                             ; preds = %1243, %1240, %1227
  %1245 = load i32, ptr %36, align 4, !tbaa !5
  %1246 = icmp eq i32 %1245, 225
  br i1 %1246, label %1250, label %1247

1247:                                             ; preds = %1244
  %1248 = load i32, ptr %36, align 4, !tbaa !5
  %1249 = icmp eq i32 %1248, 224
  br i1 %1249, label %1250, label %1251

1250:                                             ; preds = %1247, %1244
  store i8 1, ptr %32, align 1, !tbaa !11
  br label %1251

1251:                                             ; preds = %1250, %1247
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1252

1252:                                             ; preds = %1251
  %1253 = load i64, ptr %33, align 8, !tbaa !15
  %1254 = add i64 %1253, 1
  store i64 %1254, ptr %33, align 8, !tbaa !15
  br label %1191, !llvm.loop !46

1255:                                             ; preds = %1200
  br label %1256

1256:                                             ; preds = %1255
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = add nsw i32 %1257, 1
  store i32 %1258, ptr @test_count, align 4, !tbaa !5
  %1259 = load i8, ptr %31, align 1, !tbaa !11, !range !13, !noundef !14
  %1260 = trunc i8 %1259 to i1
  br i1 %1260, label %1314, label %1261

1261:                                             ; preds = %1256
  br label %1262

1262:                                             ; preds = %1261
  br label %1263

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

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

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

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

1309:                                             ; preds = %1292, %1275
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

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

1312:                                             ; No predecessors!
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313, %1256
  br label %1315

1315:                                             ; preds = %1314
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

1317:                                             ; preds = %1316
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr @test_count, align 4, !tbaa !5
  %1320 = load i8, ptr %32, align 1, !tbaa !11, !range !13, !noundef !14
  %1321 = trunc i8 %1320 to i1
  br i1 %1321, label %1375, label %1322

1322:                                             ; preds = %1317
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

1324:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1325 = call ptr @__errno_location() #11
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  store i32 %1326, ptr %38, align 4, !tbaa !5
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @s2n_print_stacktrace(ptr noundef %1327)
  %1329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1330 = trunc i8 %1329 to i1
  br i1 %1330, label %1331, label %1353

1331:                                             ; preds = %1324
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = call i32 @fileno(ptr noundef %1332) #10
  %1334 = call i32 @isatty(i32 noundef %1333) #10
  %1335 = icmp ne i32 %1334, 0
  br i1 %1335, label %1336, label %1353

1336:                                             ; preds = %1331
  %1337 = load i32, ptr %38, align 4, !tbaa !5
  %1338 = call ptr @__errno_location() #11
  store i32 %1337, ptr %1338, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef @.str.4)
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef @.str.4)
  %1347 = call ptr @__errno_location() #11
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #10
  %1350 = call ptr @__errno_location() #11
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.2, i32 noundef %1340, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 174, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #10
  br label %1370

1353:                                             ; preds = %1331, %1324
  %1354 = load i32, ptr %38, align 4, !tbaa !5
  %1355 = call ptr @__errno_location() #11
  store i32 %1354, ptr %1355, align 4, !tbaa !5
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror(i32 noundef %1359, ptr noundef @.str.4)
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror_debug(i32 noundef %1362, ptr noundef @.str.4)
  %1364 = call ptr @__errno_location() #11
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @strerror(i32 noundef %1365) #10
  %1367 = call ptr @__errno_location() #11
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef @.str.5, i32 noundef %1357, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 174, ptr noundef %1360, ptr noundef %1363, ptr noundef %1366, i32 noundef %1368) #10
  br label %1370

1370:                                             ; preds = %1353, %1336
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

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

1373:                                             ; No predecessors!
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374, %1317
  br label %1376

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  br label %1378

1378:                                             ; preds = %1377, %1187
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  br label %1379

1379:                                             ; preds = %1378
  %1380 = load i64, ptr %20, align 8, !tbaa !15
  %1381 = add i64 %1380, 1
  store i64 %1381, ptr %20, align 8, !tbaa !15
  br label %961, !llvm.loop !47

1382:                                             ; preds = %967
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  store ptr null, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  store i64 0, ptr %40, align 8, !tbaa !15
  br label %1383

1383:                                             ; preds = %1589, %1382
  %1384 = load i64, ptr %40, align 8, !tbaa !15
  %1385 = load i64, ptr @deprecated_security_policies_len, align 8, !tbaa !15
  %1386 = icmp ult i64 %1384, %1385
  br i1 %1386, label %1388, label %1387

1387:                                             ; preds = %1383
  store i32 99, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %1592

1388:                                             ; preds = %1383
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

1391:                                             ; preds = %1390
  %1392 = load i32, ptr @test_count, align 4, !tbaa !5
  %1393 = add nsw i32 %1392, 1
  store i32 %1393, ptr @test_count, align 4, !tbaa !5
  %1394 = load i64, ptr %40, align 8, !tbaa !15
  %1395 = getelementptr inbounds [0 x ptr], ptr @deprecated_security_policies, i64 0, i64 %1394
  %1396 = load ptr, ptr %1395, align 8, !tbaa !9
  %1397 = call i32 @s2n_find_security_policy_from_version(ptr noundef %1396, ptr noundef %39)
  %1398 = icmp eq i32 %1397, -1
  br i1 %1398, label %1452, label %1399

1399:                                             ; preds = %1391
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

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

1408:                                             ; preds = %1401
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = call i32 @fileno(ptr noundef %1409) #10
  %1411 = call i32 @isatty(i32 noundef %1410) #10
  %1412 = icmp ne i32 %1411, 0
  br i1 %1412, label %1413, label %1430

1413:                                             ; preds = %1408
  %1414 = load i32, ptr %41, align 4, !tbaa !5
  %1415 = call ptr @__errno_location() #11
  store i32 %1414, ptr %1415, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = call ptr @s2n_strerror(i32 noundef %1419, ptr noundef @.str.4)
  %1421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = call ptr @s2n_strerror_debug(i32 noundef %1422, ptr noundef @.str.4)
  %1424 = call ptr @__errno_location() #11
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @strerror(i32 noundef %1425) #10
  %1427 = call ptr @__errno_location() #11
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1416, ptr noundef @.str.2, i32 noundef %1417, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 184, ptr noundef %1420, ptr noundef %1423, ptr noundef %1426, i32 noundef %1428) #10
  br label %1447

1430:                                             ; preds = %1408, %1401
  %1431 = load i32, ptr %41, align 4, !tbaa !5
  %1432 = call ptr @__errno_location() #11
  store i32 %1431, ptr %1432, align 4, !tbaa !5
  %1433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1434 = load i32, ptr @test_count, align 4, !tbaa !5
  %1435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror(i32 noundef %1436, ptr noundef @.str.4)
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror_debug(i32 noundef %1439, ptr noundef @.str.4)
  %1441 = call ptr @__errno_location() #11
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = call ptr @strerror(i32 noundef %1442) #10
  %1444 = call ptr @__errno_location() #11
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1433, ptr noundef @.str.5, i32 noundef %1434, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 184, ptr noundef %1437, ptr noundef %1440, ptr noundef %1443, i32 noundef %1445) #10
  br label %1447

1447:                                             ; preds = %1430, %1413
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1448

1448:                                             ; preds = %1447
  br label %1449

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

1450:                                             ; No predecessors!
  br label %1451

1451:                                             ; preds = %1450
  br label %1452

1452:                                             ; preds = %1451, %1391
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

1454:                                             ; preds = %1453
  br label %1455

1455:                                             ; preds = %1454
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = add nsw i32 %1456, 1
  store i32 %1457, ptr @test_count, align 4, !tbaa !5
  %1458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = icmp eq i32 %1459, 469762100
  br i1 %1460, label %1514, label %1461

1461:                                             ; preds = %1455
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

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

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

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

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

1509:                                             ; preds = %1492, %1475
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1510

1510:                                             ; preds = %1509
  br label %1511

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

1512:                                             ; No predecessors!
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513, %1455
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516
  %1518 = load i32, ptr @test_count, align 4, !tbaa !5
  %1519 = add nsw i32 %1518, 1
  store i32 %1519, ptr @test_count, align 4, !tbaa !5
  %1520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef @.str.4)
  %1523 = icmp eq ptr %1522, null
  br i1 %1523, label %1524, label %1577

1524:                                             ; preds = %1517
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1527 = call ptr @__errno_location() #11
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  store i32 %1528, ptr %43, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = call i32 @s2n_print_stacktrace(ptr noundef %1529)
  %1531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1532 = trunc i8 %1531 to i1
  br i1 %1532, label %1533, label %1555

1533:                                             ; preds = %1526
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @fileno(ptr noundef %1534) #10
  %1536 = call i32 @isatty(i32 noundef %1535) #10
  %1537 = icmp ne i32 %1536, 0
  br i1 %1537, label %1538, label %1555

1538:                                             ; preds = %1533
  %1539 = load i32, ptr %43, align 4, !tbaa !5
  %1540 = call ptr @__errno_location() #11
  store i32 %1539, ptr %1540, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror(i32 noundef %1544, ptr noundef @.str.4)
  %1546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror_debug(i32 noundef %1547, ptr noundef @.str.4)
  %1549 = call ptr @__errno_location() #11
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #10
  %1552 = call ptr @__errno_location() #11
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1541, ptr noundef @.str.2, i32 noundef %1542, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 184, ptr noundef %1545, ptr noundef %1548, ptr noundef %1551, i32 noundef %1553) #10
  br label %1572

1555:                                             ; preds = %1533, %1526
  %1556 = load i32, ptr %43, align 4, !tbaa !5
  %1557 = call ptr @__errno_location() #11
  store i32 %1556, ptr %1557, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = load i32, ptr @test_count, align 4, !tbaa !5
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror(i32 noundef %1561, ptr noundef @.str.4)
  %1563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror_debug(i32 noundef %1564, ptr noundef @.str.4)
  %1566 = call ptr @__errno_location() #11
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @strerror(i32 noundef %1567) #10
  %1569 = call ptr @__errno_location() #11
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1558, ptr noundef @.str.5, i32 noundef %1559, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 184, ptr noundef %1562, ptr noundef %1565, ptr noundef %1568, i32 noundef %1570) #10
  br label %1572

1572:                                             ; preds = %1555, %1538
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

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

1575:                                             ; No predecessors!
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576, %1517
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1583, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1584 = call ptr @__errno_location() #11
  store i32 0, ptr %1584, align 4, !tbaa !5
  br label %1585

1585:                                             ; preds = %1582
  br label %1586

1586:                                             ; preds = %1585
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

1589:                                             ; preds = %1588
  %1590 = load i64, ptr %40, align 8, !tbaa !15
  %1591 = add i64 %1590, 1
  store i64 %1591, ptr %40, align 8, !tbaa !15
  br label %1383, !llvm.loop !48

1592:                                             ; preds = %1387
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594
  %1596 = load i32, ptr @test_count, align 4, !tbaa !5
  %1597 = add nsw i32 %1596, 1
  store i32 %1597, ptr @test_count, align 4, !tbaa !5
  %1598 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.33, ptr noundef %39)
  %1599 = icmp eq i32 %1598, -1
  br i1 %1599, label %1653, label %1600

1600:                                             ; preds = %1595
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

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

1609:                                             ; preds = %1602
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = call i32 @fileno(ptr noundef %1610) #10
  %1612 = call i32 @isatty(i32 noundef %1611) #10
  %1613 = icmp ne i32 %1612, 0
  br i1 %1613, label %1614, label %1631

1614:                                             ; preds = %1609
  %1615 = load i32, ptr %44, align 4, !tbaa !5
  %1616 = call ptr @__errno_location() #11
  store i32 %1615, ptr %1616, align 4, !tbaa !5
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = load i32, ptr @test_count, align 4, !tbaa !5
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror(i32 noundef %1620, ptr noundef @.str.4)
  %1622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef @.str.4)
  %1625 = call ptr @__errno_location() #11
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @strerror(i32 noundef %1626) #10
  %1628 = call ptr @__errno_location() #11
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1617, ptr noundef @.str.2, i32 noundef %1618, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 188, ptr noundef %1621, ptr noundef %1624, ptr noundef %1627, i32 noundef %1629) #10
  br label %1648

1631:                                             ; preds = %1609, %1602
  %1632 = load i32, ptr %44, align 4, !tbaa !5
  %1633 = call ptr @__errno_location() #11
  store i32 %1632, ptr %1633, align 4, !tbaa !5
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = load i32, ptr @test_count, align 4, !tbaa !5
  %1636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror(i32 noundef %1637, ptr noundef @.str.4)
  %1639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror_debug(i32 noundef %1640, ptr noundef @.str.4)
  %1642 = call ptr @__errno_location() #11
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call ptr @strerror(i32 noundef %1643) #10
  %1645 = call ptr @__errno_location() #11
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1634, ptr noundef @.str.5, i32 noundef %1635, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 188, ptr noundef %1638, ptr noundef %1641, ptr noundef %1644, i32 noundef %1646) #10
  br label %1648

1648:                                             ; preds = %1631, %1614
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1649

1649:                                             ; preds = %1648
  br label %1650

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

1651:                                             ; No predecessors!
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

1653:                                             ; preds = %1652, %1595
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  br label %1656

1656:                                             ; preds = %1655
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = add nsw i32 %1657, 1
  store i32 %1658, ptr @test_count, align 4, !tbaa !5
  %1659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = icmp eq i32 %1660, 469762100
  br i1 %1661, label %1715, label %1662

1662:                                             ; preds = %1656
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

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

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

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

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

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

1711:                                             ; preds = %1710
  br label %1712

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

1713:                                             ; No predecessors!
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = add nsw i32 %1719, 1
  store i32 %1720, ptr @test_count, align 4, !tbaa !5
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef @.str.4)
  %1724 = icmp eq ptr %1723, null
  br i1 %1724, label %1725, label %1778

1725:                                             ; preds = %1718
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

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

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

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

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

1773:                                             ; preds = %1756, %1739
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

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

1776:                                             ; No predecessors!
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777, %1718
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

1780:                                             ; preds = %1779
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  %1784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1784, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1785 = call ptr @__errno_location() #11
  store i32 0, ptr %1785, align 4, !tbaa !5
  br label %1786

1786:                                             ; preds = %1783
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

1792:                                             ; preds = %1791
  %1793 = load i32, ptr @test_count, align 4, !tbaa !5
  %1794 = add nsw i32 %1793, 1
  store i32 %1794, ptr @test_count, align 4, !tbaa !5
  %1795 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.35, ptr noundef %39)
  %1796 = icmp eq i32 %1795, -1
  br i1 %1796, label %1850, label %1797

1797:                                             ; preds = %1792
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %1800 = call ptr @__errno_location() #11
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  store i32 %1801, ptr %47, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @s2n_print_stacktrace(ptr noundef %1802)
  %1804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1805 = trunc i8 %1804 to i1
  br i1 %1805, label %1806, label %1828

1806:                                             ; preds = %1799
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @fileno(ptr noundef %1807) #10
  %1809 = call i32 @isatty(i32 noundef %1808) #10
  %1810 = icmp ne i32 %1809, 0
  br i1 %1810, label %1811, label %1828

1811:                                             ; preds = %1806
  %1812 = load i32, ptr %47, align 4, !tbaa !5
  %1813 = call ptr @__errno_location() #11
  store i32 %1812, ptr %1813, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef @.str.4)
  %1819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef @.str.4)
  %1822 = call ptr @__errno_location() #11
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #10
  %1825 = call ptr @__errno_location() #11
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef @.str.2, i32 noundef %1815, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1818, ptr noundef %1821, ptr noundef %1824, i32 noundef %1826) #10
  br label %1845

1828:                                             ; preds = %1806, %1799
  %1829 = load i32, ptr %47, align 4, !tbaa !5
  %1830 = call ptr @__errno_location() #11
  store i32 %1829, ptr %1830, align 4, !tbaa !5
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror(i32 noundef %1834, ptr noundef @.str.4)
  %1836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef @.str.4)
  %1839 = call ptr @__errno_location() #11
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @strerror(i32 noundef %1840) #10
  %1842 = call ptr @__errno_location() #11
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1831, ptr noundef @.str.5, i32 noundef %1832, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1835, ptr noundef %1838, ptr noundef %1841, i32 noundef %1843) #10
  br label %1845

1845:                                             ; preds = %1828, %1811
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

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

1848:                                             ; No predecessors!
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

1850:                                             ; preds = %1849, %1792
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = icmp eq i32 %1857, 469762100
  br i1 %1858, label %1912, label %1859

1859:                                             ; preds = %1853
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

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

1868:                                             ; preds = %1861
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @fileno(ptr noundef %1869) #10
  %1871 = call i32 @isatty(i32 noundef %1870) #10
  %1872 = icmp ne i32 %1871, 0
  br i1 %1872, label %1873, label %1890

1873:                                             ; preds = %1868
  %1874 = load i32, ptr %48, align 4, !tbaa !5
  %1875 = call ptr @__errno_location() #11
  store i32 %1874, ptr %1875, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror(i32 noundef %1879, ptr noundef @.str.4)
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror_debug(i32 noundef %1882, ptr noundef @.str.4)
  %1884 = call ptr @__errno_location() #11
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #10
  %1887 = call ptr @__errno_location() #11
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef @.str.2, i32 noundef %1877, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1880, ptr noundef %1883, ptr noundef %1886, i32 noundef %1888) #10
  br label %1907

1890:                                             ; preds = %1868, %1861
  %1891 = load i32, ptr %48, align 4, !tbaa !5
  %1892 = call ptr @__errno_location() #11
  store i32 %1891, ptr %1892, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @s2n_strerror(i32 noundef %1896, ptr noundef @.str.4)
  %1898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror_debug(i32 noundef %1899, ptr noundef @.str.4)
  %1901 = call ptr @__errno_location() #11
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @strerror(i32 noundef %1902) #10
  %1904 = call ptr @__errno_location() #11
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1893, ptr noundef @.str.5, i32 noundef %1894, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1897, ptr noundef %1900, ptr noundef %1903, i32 noundef %1905) #10
  br label %1907

1907:                                             ; preds = %1890, %1873
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

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

1910:                                             ; No predecessors!
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911, %1853
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914
  %1916 = load i32, ptr @test_count, align 4, !tbaa !5
  %1917 = add nsw i32 %1916, 1
  store i32 %1917, ptr @test_count, align 4, !tbaa !5
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror_debug(i32 noundef %1919, ptr noundef @.str.4)
  %1921 = icmp eq ptr %1920, null
  br i1 %1921, label %1922, label %1975

1922:                                             ; preds = %1915
  br label %1923

1923:                                             ; preds = %1922
  br label %1924

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

1931:                                             ; preds = %1924
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = call i32 @fileno(ptr noundef %1932) #10
  %1934 = call i32 @isatty(i32 noundef %1933) #10
  %1935 = icmp ne i32 %1934, 0
  br i1 %1935, label %1936, label %1953

1936:                                             ; preds = %1931
  %1937 = load i32, ptr %49, align 4, !tbaa !5
  %1938 = call ptr @__errno_location() #11
  store i32 %1937, ptr %1938, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1942 = load i32, ptr %1941, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror(i32 noundef %1942, ptr noundef @.str.4)
  %1944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror_debug(i32 noundef %1945, ptr noundef @.str.4)
  %1947 = call ptr @__errno_location() #11
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @strerror(i32 noundef %1948) #10
  %1950 = call ptr @__errno_location() #11
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1939, ptr noundef @.str.2, i32 noundef %1940, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1943, ptr noundef %1946, ptr noundef %1949, i32 noundef %1951) #10
  br label %1970

1953:                                             ; preds = %1931, %1924
  %1954 = load i32, ptr %49, align 4, !tbaa !5
  %1955 = call ptr @__errno_location() #11
  store i32 %1954, ptr %1955, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror(i32 noundef %1959, ptr noundef @.str.4)
  %1961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror_debug(i32 noundef %1962, ptr noundef @.str.4)
  %1964 = call ptr @__errno_location() #11
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @strerror(i32 noundef %1965) #10
  %1967 = call ptr @__errno_location() #11
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1956, ptr noundef @.str.5, i32 noundef %1957, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1960, ptr noundef %1963, ptr noundef %1966, i32 noundef %1968) #10
  br label %1970

1970:                                             ; preds = %1953, %1936
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

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

1973:                                             ; No predecessors!
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

1975:                                             ; preds = %1974, %1915
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979
  %1981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1981, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1982 = call ptr @__errno_location() #11
  store i32 0, ptr %1982, align 4, !tbaa !5
  br label %1983

1983:                                             ; preds = %1980
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = add nsw i32 %1988, 1
  store i32 %1989, ptr @test_count, align 4, !tbaa !5
  %1990 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.37, ptr noundef %39)
  %1991 = icmp eq i32 %1990, -1
  br i1 %1991, label %1992, label %2045

1992:                                             ; preds = %1987
  br label %1993

1993:                                             ; preds = %1992
  br label %1994

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

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

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

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

2040:                                             ; preds = %2023, %2006
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

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

2043:                                             ; No predecessors!
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

2045:                                             ; preds = %2044, %1987
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

2048:                                             ; preds = %2047
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = add nsw i32 %2049, 1
  store i32 %2050, ptr @test_count, align 4, !tbaa !5
  %2051 = load ptr, ptr %39, align 8, !tbaa !9
  %2052 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %2051)
  br i1 %2052, label %2106, label %2053

2053:                                             ; preds = %2048
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2056 = call ptr @__errno_location() #11
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  store i32 %2057, ptr %51, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = call i32 @s2n_print_stacktrace(ptr noundef %2058)
  %2060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2061 = trunc i8 %2060 to i1
  br i1 %2061, label %2062, label %2084

2062:                                             ; preds = %2055
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @fileno(ptr noundef %2063) #10
  %2065 = call i32 @isatty(i32 noundef %2064) #10
  %2066 = icmp ne i32 %2065, 0
  br i1 %2066, label %2067, label %2084

2067:                                             ; preds = %2062
  %2068 = load i32, ptr %51, align 4, !tbaa !5
  %2069 = call ptr @__errno_location() #11
  store i32 %2068, ptr %2069, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror_debug(i32 noundef %2076, ptr noundef @.str.4)
  %2078 = call ptr @__errno_location() #11
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call ptr @strerror(i32 noundef %2079) #10
  %2081 = call ptr @__errno_location() #11
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef @.str.2, i32 noundef %2071, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2074, ptr noundef %2077, ptr noundef %2080, i32 noundef %2082) #10
  br label %2101

2084:                                             ; preds = %2062, %2055
  %2085 = load i32, ptr %51, align 4, !tbaa !5
  %2086 = call ptr @__errno_location() #11
  store i32 %2085, ptr %2086, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef @.str.4)
  %2092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror_debug(i32 noundef %2093, ptr noundef @.str.4)
  %2095 = call ptr @__errno_location() #11
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #10
  %2098 = call ptr @__errno_location() #11
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef @.str.5, i32 noundef %2088, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2091, ptr noundef %2094, ptr noundef %2097, i32 noundef %2099) #10
  br label %2101

2101:                                             ; preds = %2084, %2067
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

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

2104:                                             ; No predecessors!
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105, %2048
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = add nsw i32 %2110, 1
  store i32 %2111, ptr @test_count, align 4, !tbaa !5
  %2112 = load ptr, ptr %39, align 8, !tbaa !9
  %2113 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %2112)
  br i1 %2113, label %2114, label %2167

2114:                                             ; preds = %2109
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2117 = call ptr @__errno_location() #11
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  store i32 %2118, ptr %52, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @s2n_print_stacktrace(ptr noundef %2119)
  %2121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2122 = trunc i8 %2121 to i1
  br i1 %2122, label %2123, label %2145

2123:                                             ; preds = %2116
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @fileno(ptr noundef %2124) #10
  %2126 = call i32 @isatty(i32 noundef %2125) #10
  %2127 = icmp ne i32 %2126, 0
  br i1 %2127, label %2128, label %2145

2128:                                             ; preds = %2123
  %2129 = load i32, ptr %52, align 4, !tbaa !5
  %2130 = call ptr @__errno_location() #11
  store i32 %2129, ptr %2130, align 4, !tbaa !5
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2134, ptr noundef @.str.4)
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror_debug(i32 noundef %2137, ptr noundef @.str.4)
  %2139 = call ptr @__errno_location() #11
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @strerror(i32 noundef %2140) #10
  %2142 = call ptr @__errno_location() #11
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2131, ptr noundef @.str.2, i32 noundef %2132, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 196, ptr noundef %2135, ptr noundef %2138, ptr noundef %2141, i32 noundef %2143) #10
  br label %2162

2145:                                             ; preds = %2123, %2116
  %2146 = load i32, ptr %52, align 4, !tbaa !5
  %2147 = call ptr @__errno_location() #11
  store i32 %2146, ptr %2147, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror(i32 noundef %2151, ptr noundef @.str.4)
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef @.str.4)
  %2156 = call ptr @__errno_location() #11
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #10
  %2159 = call ptr @__errno_location() #11
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef @.str.5, i32 noundef %2149, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 196, ptr noundef %2152, ptr noundef %2155, ptr noundef %2158, i32 noundef %2160) #10
  br label %2162

2162:                                             ; preds = %2145, %2128
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

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

2165:                                             ; No predecessors!
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166, %2109
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = add nsw i32 %2171, 1
  store i32 %2172, ptr @test_count, align 4, !tbaa !5
  %2173 = load ptr, ptr %39, align 8, !tbaa !9
  %2174 = getelementptr inbounds %struct.s2n_security_policy, ptr %2173, i32 0, i32 2
  %2175 = load ptr, ptr %2174, align 8, !tbaa !20
  %2176 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2175, i32 0, i32 1
  %2177 = load ptr, ptr %2176, align 8, !tbaa !49
  %2178 = icmp eq ptr %2177, null
  br i1 %2178, label %2232, label %2179

2179:                                             ; preds = %2170
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %2182 = call ptr @__errno_location() #11
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  store i32 %2183, ptr %53, align 4, !tbaa !5
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @s2n_print_stacktrace(ptr noundef %2184)
  %2186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2187 = trunc i8 %2186 to i1
  br i1 %2187, label %2188, label %2210

2188:                                             ; preds = %2181
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = call i32 @fileno(ptr noundef %2189) #10
  %2191 = call i32 @isatty(i32 noundef %2190) #10
  %2192 = icmp ne i32 %2191, 0
  br i1 %2192, label %2193, label %2210

2193:                                             ; preds = %2188
  %2194 = load i32, ptr %53, align 4, !tbaa !5
  %2195 = call ptr @__errno_location() #11
  store i32 %2194, ptr %2195, align 4, !tbaa !5
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef @.str.4)
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror_debug(i32 noundef %2202, ptr noundef @.str.4)
  %2204 = call ptr @__errno_location() #11
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @strerror(i32 noundef %2205) #10
  %2207 = call ptr @__errno_location() #11
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2196, ptr noundef @.str.2, i32 noundef %2197, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2200, ptr noundef %2203, ptr noundef %2206, i32 noundef %2208) #10
  br label %2227

2210:                                             ; preds = %2188, %2181
  %2211 = load i32, ptr %53, align 4, !tbaa !5
  %2212 = call ptr @__errno_location() #11
  store i32 %2211, ptr %2212, align 4, !tbaa !5
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = load i32, ptr @test_count, align 4, !tbaa !5
  %2215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @s2n_strerror(i32 noundef %2216, ptr noundef @.str.4)
  %2218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror_debug(i32 noundef %2219, ptr noundef @.str.4)
  %2221 = call ptr @__errno_location() #11
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call ptr @strerror(i32 noundef %2222) #10
  %2224 = call ptr @__errno_location() #11
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2213, ptr noundef @.str.5, i32 noundef %2214, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2217, ptr noundef %2220, ptr noundef %2223, i32 noundef %2225) #10
  br label %2227

2227:                                             ; preds = %2210, %2193
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

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

2230:                                             ; No predecessors!
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231, %2170
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  %2236 = load i32, ptr @test_count, align 4, !tbaa !5
  %2237 = add nsw i32 %2236, 1
  store i32 %2237, ptr @test_count, align 4, !tbaa !5
  %2238 = load ptr, ptr %39, align 8, !tbaa !9
  %2239 = getelementptr inbounds %struct.s2n_security_policy, ptr %2238, i32 0, i32 2
  %2240 = load ptr, ptr %2239, align 8, !tbaa !20
  %2241 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2240, i32 0, i32 0
  %2242 = load i8, ptr %2241, align 8, !tbaa !50
  %2243 = zext i8 %2242 to i32
  %2244 = icmp eq i32 0, %2243
  br i1 %2244, label %2298, label %2245

2245:                                             ; preds = %2235
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

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

2254:                                             ; preds = %2247
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @fileno(ptr noundef %2255) #10
  %2257 = call i32 @isatty(i32 noundef %2256) #10
  %2258 = icmp ne i32 %2257, 0
  br i1 %2258, label %2259, label %2276

2259:                                             ; preds = %2254
  %2260 = load i32, ptr %54, align 4, !tbaa !5
  %2261 = call ptr @__errno_location() #11
  store i32 %2260, ptr %2261, align 4, !tbaa !5
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef @.str.4)
  %2267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror_debug(i32 noundef %2268, ptr noundef @.str.4)
  %2270 = call ptr @__errno_location() #11
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @strerror(i32 noundef %2271) #10
  %2273 = call ptr @__errno_location() #11
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2262, ptr noundef @.str.2, i32 noundef %2263, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2266, ptr noundef %2269, ptr noundef %2272, i32 noundef %2274) #10
  br label %2293

2276:                                             ; preds = %2254, %2247
  %2277 = load i32, ptr %54, align 4, !tbaa !5
  %2278 = call ptr @__errno_location() #11
  store i32 %2277, ptr %2278, align 4, !tbaa !5
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = load i32, ptr @test_count, align 4, !tbaa !5
  %2281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror(i32 noundef %2282, ptr noundef @.str.4)
  %2284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call ptr @s2n_strerror_debug(i32 noundef %2285, ptr noundef @.str.4)
  %2287 = call ptr @__errno_location() #11
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @strerror(i32 noundef %2288) #10
  %2290 = call ptr @__errno_location() #11
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2279, ptr noundef @.str.5, i32 noundef %2280, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2283, ptr noundef %2286, ptr noundef %2289, i32 noundef %2291) #10
  br label %2293

2293:                                             ; preds = %2276, %2259
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2294

2294:                                             ; preds = %2293
  br label %2295

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

2296:                                             ; No predecessors!
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297, %2235
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  %2304 = load ptr, ptr %39, align 8, !tbaa !9
  %2305 = getelementptr inbounds %struct.s2n_security_policy, ptr %2304, i32 0, i32 2
  %2306 = load ptr, ptr %2305, align 8, !tbaa !20
  %2307 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2306, i32 0, i32 3
  %2308 = load ptr, ptr %2307, align 8, !tbaa !24
  %2309 = icmp eq ptr %2308, null
  br i1 %2309, label %2363, label %2310

2310:                                             ; preds = %2301
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2313 = call ptr @__errno_location() #11
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  store i32 %2314, ptr %55, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @s2n_print_stacktrace(ptr noundef %2315)
  %2317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2318 = trunc i8 %2317 to i1
  br i1 %2318, label %2319, label %2341

2319:                                             ; preds = %2312
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = call i32 @fileno(ptr noundef %2320) #10
  %2322 = call i32 @isatty(i32 noundef %2321) #10
  %2323 = icmp ne i32 %2322, 0
  br i1 %2323, label %2324, label %2341

2324:                                             ; preds = %2319
  %2325 = load i32, ptr %55, align 4, !tbaa !5
  %2326 = call ptr @__errno_location() #11
  store i32 %2325, ptr %2326, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror(i32 noundef %2330, ptr noundef @.str.4)
  %2332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror_debug(i32 noundef %2333, ptr noundef @.str.4)
  %2335 = call ptr @__errno_location() #11
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call ptr @strerror(i32 noundef %2336) #10
  %2338 = call ptr @__errno_location() #11
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2327, ptr noundef @.str.2, i32 noundef %2328, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2331, ptr noundef %2334, ptr noundef %2337, i32 noundef %2339) #10
  br label %2358

2341:                                             ; preds = %2319, %2312
  %2342 = load i32, ptr %55, align 4, !tbaa !5
  %2343 = call ptr @__errno_location() #11
  store i32 %2342, ptr %2343, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef @.str.4)
  %2349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef @.str.4)
  %2352 = call ptr @__errno_location() #11
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #10
  %2355 = call ptr @__errno_location() #11
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef @.str.5, i32 noundef %2345, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2348, ptr noundef %2351, ptr noundef %2354, i32 noundef %2356) #10
  br label %2358

2358:                                             ; preds = %2341, %2324
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

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

2361:                                             ; No predecessors!
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362, %2301
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  %2367 = load i32, ptr @test_count, align 4, !tbaa !5
  %2368 = add nsw i32 %2367, 1
  store i32 %2368, ptr @test_count, align 4, !tbaa !5
  %2369 = load ptr, ptr %39, align 8, !tbaa !9
  %2370 = getelementptr inbounds %struct.s2n_security_policy, ptr %2369, i32 0, i32 2
  %2371 = load ptr, ptr %2370, align 8, !tbaa !20
  %2372 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2371, i32 0, i32 2
  %2373 = load i8, ptr %2372, align 8, !tbaa !22
  %2374 = zext i8 %2373 to i32
  %2375 = icmp eq i32 0, %2374
  br i1 %2375, label %2429, label %2376

2376:                                             ; preds = %2366
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

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

2385:                                             ; preds = %2378
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @fileno(ptr noundef %2386) #10
  %2388 = call i32 @isatty(i32 noundef %2387) #10
  %2389 = icmp ne i32 %2388, 0
  br i1 %2389, label %2390, label %2407

2390:                                             ; preds = %2385
  %2391 = load i32, ptr %56, align 4, !tbaa !5
  %2392 = call ptr @__errno_location() #11
  store i32 %2391, ptr %2392, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef @.str.4)
  %2398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror_debug(i32 noundef %2399, ptr noundef @.str.4)
  %2401 = call ptr @__errno_location() #11
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #10
  %2404 = call ptr @__errno_location() #11
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef @.str.2, i32 noundef %2394, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 200, ptr noundef %2397, ptr noundef %2400, ptr noundef %2403, i32 noundef %2405) #10
  br label %2424

2407:                                             ; preds = %2385, %2378
  %2408 = load i32, ptr %56, align 4, !tbaa !5
  %2409 = call ptr @__errno_location() #11
  store i32 %2408, ptr %2409, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call ptr @__errno_location() #11
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @strerror(i32 noundef %2419) #10
  %2421 = call ptr @__errno_location() #11
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2410, ptr noundef @.str.5, i32 noundef %2411, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 200, ptr noundef %2414, ptr noundef %2417, ptr noundef %2420, i32 noundef %2422) #10
  br label %2424

2424:                                             ; preds = %2407, %2390
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2425

2425:                                             ; preds = %2424
  br label %2426

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

2427:                                             ; No predecessors!
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428, %2366
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431
  %2433 = load i32, ptr @test_count, align 4, !tbaa !5
  %2434 = add nsw i32 %2433, 1
  store i32 %2434, ptr @test_count, align 4, !tbaa !5
  %2435 = load ptr, ptr %39, align 8, !tbaa !9
  %2436 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %2435)
  br i1 %2436, label %2437, label %2490

2437:                                             ; preds = %2432
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

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

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

2451:                                             ; preds = %2446
  %2452 = load i32, ptr %57, align 4, !tbaa !5
  %2453 = call ptr @__errno_location() #11
  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() #11
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @strerror(i32 noundef %2463) #10
  %2465 = call ptr @__errno_location() #11
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef @.str.2, i32 noundef %2455, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2458, ptr noundef %2461, ptr noundef %2464, i32 noundef %2466) #10
  br label %2485

2468:                                             ; preds = %2446, %2439
  %2469 = load i32, ptr %57, align 4, !tbaa !5
  %2470 = call ptr @__errno_location() #11
  store i32 %2469, ptr %2470, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror(i32 noundef %2474, ptr noundef @.str.4)
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror_debug(i32 noundef %2477, ptr noundef @.str.4)
  %2479 = call ptr @__errno_location() #11
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @strerror(i32 noundef %2480) #10
  %2482 = call ptr @__errno_location() #11
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2471, ptr noundef @.str.5, i32 noundef %2472, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2475, ptr noundef %2478, ptr noundef %2481, i32 noundef %2483) #10
  br label %2485

2485:                                             ; preds = %2468, %2451
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

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

2488:                                             ; No predecessors!
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489, %2432
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %2493

2493:                                             ; preds = %2492
  %2494 = load i32, ptr @test_count, align 4, !tbaa !5
  %2495 = add nsw i32 %2494, 1
  store i32 %2495, ptr @test_count, align 4, !tbaa !5
  %2496 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.46, ptr noundef %39)
  %2497 = icmp eq i32 %2496, -1
  br i1 %2497, label %2498, label %2551

2498:                                             ; preds = %2493
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

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

2507:                                             ; preds = %2500
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = call i32 @fileno(ptr noundef %2508) #10
  %2510 = call i32 @isatty(i32 noundef %2509) #10
  %2511 = icmp ne i32 %2510, 0
  br i1 %2511, label %2512, label %2529

2512:                                             ; preds = %2507
  %2513 = load i32, ptr %58, align 4, !tbaa !5
  %2514 = call ptr @__errno_location() #11
  store i32 %2513, ptr %2514, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror(i32 noundef %2518, ptr noundef @.str.4)
  %2520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2521 = load i32, ptr %2520, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror_debug(i32 noundef %2521, ptr noundef @.str.4)
  %2523 = call ptr @__errno_location() #11
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #10
  %2526 = call ptr @__errno_location() #11
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2515, ptr noundef @.str.2, i32 noundef %2516, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 204, ptr noundef %2519, ptr noundef %2522, ptr noundef %2525, i32 noundef %2527) #10
  br label %2546

2529:                                             ; preds = %2507, %2500
  %2530 = load i32, ptr %58, align 4, !tbaa !5
  %2531 = call ptr @__errno_location() #11
  store i32 %2530, ptr %2531, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror(i32 noundef %2535, ptr noundef @.str.4)
  %2537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror_debug(i32 noundef %2538, ptr noundef @.str.4)
  %2540 = call ptr @__errno_location() #11
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @strerror(i32 noundef %2541) #10
  %2543 = call ptr @__errno_location() #11
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2532, ptr noundef @.str.5, i32 noundef %2533, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 204, ptr noundef %2536, ptr noundef %2539, ptr noundef %2542, i32 noundef %2544) #10
  br label %2546

2546:                                             ; preds = %2529, %2512
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2547

2547:                                             ; preds = %2546
  br label %2548

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

2549:                                             ; No predecessors!
  br label %2550

2550:                                             ; preds = %2549
  br label %2551

2551:                                             ; preds = %2550, %2493
  br label %2552

2552:                                             ; preds = %2551
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = add nsw i32 %2555, 1
  store i32 %2556, ptr @test_count, align 4, !tbaa !5
  %2557 = load ptr, ptr %39, align 8, !tbaa !9
  %2558 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %2557)
  br i1 %2558, label %2612, label %2559

2559:                                             ; preds = %2554
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2562 = call ptr @__errno_location() #11
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  store i32 %2563, ptr %59, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = call i32 @s2n_print_stacktrace(ptr noundef %2564)
  %2566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2567 = trunc i8 %2566 to i1
  br i1 %2567, label %2568, label %2590

2568:                                             ; preds = %2561
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @fileno(ptr noundef %2569) #10
  %2571 = call i32 @isatty(i32 noundef %2570) #10
  %2572 = icmp ne i32 %2571, 0
  br i1 %2572, label %2573, label %2590

2573:                                             ; preds = %2568
  %2574 = load i32, ptr %59, align 4, !tbaa !5
  %2575 = call ptr @__errno_location() #11
  store i32 %2574, ptr %2575, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2579 = load i32, ptr %2578, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror(i32 noundef %2579, ptr noundef @.str.4)
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror_debug(i32 noundef %2582, ptr noundef @.str.4)
  %2584 = call ptr @__errno_location() #11
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #10
  %2587 = call ptr @__errno_location() #11
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2576, ptr noundef @.str.2, i32 noundef %2577, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2580, ptr noundef %2583, ptr noundef %2586, i32 noundef %2588) #10
  br label %2607

2590:                                             ; preds = %2568, %2561
  %2591 = load i32, ptr %59, align 4, !tbaa !5
  %2592 = call ptr @__errno_location() #11
  store i32 %2591, ptr %2592, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef @.str.4)
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef @.str.4)
  %2601 = call ptr @__errno_location() #11
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @strerror(i32 noundef %2602) #10
  %2604 = call ptr @__errno_location() #11
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef @.str.5, i32 noundef %2594, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2597, ptr noundef %2600, ptr noundef %2603, i32 noundef %2605) #10
  br label %2607

2607:                                             ; preds = %2590, %2573
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2608

2608:                                             ; preds = %2607
  br label %2609

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

2610:                                             ; No predecessors!
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611, %2554
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = add nsw i32 %2616, 1
  store i32 %2617, ptr @test_count, align 4, !tbaa !5
  %2618 = load ptr, ptr %39, align 8, !tbaa !9
  %2619 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %2618)
  br i1 %2619, label %2620, label %2673

2620:                                             ; preds = %2615
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2623 = call ptr @__errno_location() #11
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  store i32 %2624, ptr %60, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = call i32 @s2n_print_stacktrace(ptr noundef %2625)
  %2627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2628 = trunc i8 %2627 to i1
  br i1 %2628, label %2629, label %2651

2629:                                             ; preds = %2622
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = call i32 @fileno(ptr noundef %2630) #10
  %2632 = call i32 @isatty(i32 noundef %2631) #10
  %2633 = icmp ne i32 %2632, 0
  br i1 %2633, label %2634, label %2651

2634:                                             ; preds = %2629
  %2635 = load i32, ptr %60, align 4, !tbaa !5
  %2636 = call ptr @__errno_location() #11
  store i32 %2635, ptr %2636, align 4, !tbaa !5
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = load i32, ptr @test_count, align 4, !tbaa !5
  %2639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror(i32 noundef %2640, ptr noundef @.str.4)
  %2642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror_debug(i32 noundef %2643, ptr noundef @.str.4)
  %2645 = call ptr @__errno_location() #11
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @strerror(i32 noundef %2646) #10
  %2648 = call ptr @__errno_location() #11
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2637, ptr noundef @.str.2, i32 noundef %2638, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2641, ptr noundef %2644, ptr noundef %2647, i32 noundef %2649) #10
  br label %2668

2651:                                             ; preds = %2629, %2622
  %2652 = load i32, ptr %60, align 4, !tbaa !5
  %2653 = call ptr @__errno_location() #11
  store i32 %2652, ptr %2653, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror(i32 noundef %2657, ptr noundef @.str.4)
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror_debug(i32 noundef %2660, ptr noundef @.str.4)
  %2662 = call ptr @__errno_location() #11
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @strerror(i32 noundef %2663) #10
  %2665 = call ptr @__errno_location() #11
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2654, ptr noundef @.str.5, i32 noundef %2655, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2658, ptr noundef %2661, ptr noundef %2664, i32 noundef %2666) #10
  br label %2668

2668:                                             ; preds = %2651, %2634
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2669

2669:                                             ; preds = %2668
  br label %2670

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

2671:                                             ; No predecessors!
  br label %2672

2672:                                             ; preds = %2671
  br label %2673

2673:                                             ; preds = %2672, %2615
  br label %2674

2674:                                             ; preds = %2673
  br label %2675

2675:                                             ; preds = %2674
  br label %2676

2676:                                             ; preds = %2675
  %2677 = load i32, ptr @test_count, align 4, !tbaa !5
  %2678 = add nsw i32 %2677, 1
  store i32 %2678, ptr @test_count, align 4, !tbaa !5
  %2679 = load ptr, ptr %39, align 8, !tbaa !9
  %2680 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %2679)
  br i1 %2680, label %2734, label %2681

2681:                                             ; preds = %2676
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2684 = call ptr @__errno_location() #11
  %2685 = load i32, ptr %2684, align 4, !tbaa !5
  store i32 %2685, ptr %61, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @s2n_print_stacktrace(ptr noundef %2686)
  %2688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2689 = trunc i8 %2688 to i1
  br i1 %2689, label %2690, label %2712

2690:                                             ; preds = %2683
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = call i32 @fileno(ptr noundef %2691) #10
  %2693 = call i32 @isatty(i32 noundef %2692) #10
  %2694 = icmp ne i32 %2693, 0
  br i1 %2694, label %2695, label %2712

2695:                                             ; preds = %2690
  %2696 = load i32, ptr %61, align 4, !tbaa !5
  %2697 = call ptr @__errno_location() #11
  store i32 %2696, ptr %2697, align 4, !tbaa !5
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = load i32, ptr @test_count, align 4, !tbaa !5
  %2700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call ptr @s2n_strerror(i32 noundef %2701, ptr noundef @.str.4)
  %2703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef @.str.4)
  %2706 = call ptr @__errno_location() #11
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call ptr @strerror(i32 noundef %2707) #10
  %2709 = call ptr @__errno_location() #11
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2698, ptr noundef @.str.2, i32 noundef %2699, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 207, ptr noundef %2702, ptr noundef %2705, ptr noundef %2708, i32 noundef %2710) #10
  br label %2729

2712:                                             ; preds = %2690, %2683
  %2713 = load i32, ptr %61, align 4, !tbaa !5
  %2714 = call ptr @__errno_location() #11
  store i32 %2713, ptr %2714, align 4, !tbaa !5
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror(i32 noundef %2718, ptr noundef @.str.4)
  %2720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror_debug(i32 noundef %2721, ptr noundef @.str.4)
  %2723 = call ptr @__errno_location() #11
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @strerror(i32 noundef %2724) #10
  %2726 = call ptr @__errno_location() #11
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2715, ptr noundef @.str.5, i32 noundef %2716, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 207, ptr noundef %2719, ptr noundef %2722, ptr noundef %2725, i32 noundef %2727) #10
  br label %2729

2729:                                             ; preds = %2712, %2695
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2730

2730:                                             ; preds = %2729
  br label %2731

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

2732:                                             ; No predecessors!
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733, %2676
  br label %2735

2735:                                             ; preds = %2734
  br label %2736

2736:                                             ; preds = %2735
  br label %2737

2737:                                             ; preds = %2736
  %2738 = load i32, ptr @test_count, align 4, !tbaa !5
  %2739 = add nsw i32 %2738, 1
  store i32 %2739, ptr @test_count, align 4, !tbaa !5
  %2740 = load ptr, ptr %39, align 8, !tbaa !9
  %2741 = getelementptr inbounds %struct.s2n_security_policy, ptr %2740, i32 0, i32 2
  %2742 = load ptr, ptr %2741, align 8, !tbaa !20
  %2743 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2742, i32 0, i32 1
  %2744 = load ptr, ptr %2743, align 8, !tbaa !49
  %2745 = icmp eq ptr null, %2744
  br i1 %2745, label %2799, label %2746

2746:                                             ; preds = %2737
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2749 = call ptr @__errno_location() #11
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  store i32 %2750, ptr %62, align 4, !tbaa !5
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = call i32 @s2n_print_stacktrace(ptr noundef %2751)
  %2753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2754 = trunc i8 %2753 to i1
  br i1 %2754, label %2755, label %2777

2755:                                             ; preds = %2748
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = call i32 @fileno(ptr noundef %2756) #10
  %2758 = call i32 @isatty(i32 noundef %2757) #10
  %2759 = icmp ne i32 %2758, 0
  br i1 %2759, label %2760, label %2777

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

2777:                                             ; preds = %2755, %2748
  %2778 = load i32, ptr %62, align 4, !tbaa !5
  %2779 = call ptr @__errno_location() #11
  store i32 %2778, ptr %2779, align 4, !tbaa !5
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = load i32, ptr @test_count, align 4, !tbaa !5
  %2782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call ptr @s2n_strerror(i32 noundef %2783, ptr noundef @.str.4)
  %2785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror_debug(i32 noundef %2786, ptr noundef @.str.4)
  %2788 = call ptr @__errno_location() #11
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @strerror(i32 noundef %2789) #10
  %2791 = call ptr @__errno_location() #11
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2780, ptr noundef @.str.5, i32 noundef %2781, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 208, ptr noundef %2784, ptr noundef %2787, ptr noundef %2790, i32 noundef %2792) #10
  br label %2794

2794:                                             ; preds = %2777, %2760
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

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

2797:                                             ; No predecessors!
  br label %2798

2798:                                             ; preds = %2797
  br label %2799

2799:                                             ; preds = %2798, %2737
  br label %2800

2800:                                             ; preds = %2799
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = add nsw i32 %2803, 1
  store i32 %2804, ptr @test_count, align 4, !tbaa !5
  %2805 = load ptr, ptr %39, align 8, !tbaa !9
  %2806 = getelementptr inbounds %struct.s2n_security_policy, ptr %2805, i32 0, i32 2
  %2807 = load ptr, ptr %2806, align 8, !tbaa !20
  %2808 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2807, i32 0, i32 3
  %2809 = load ptr, ptr %2808, align 8, !tbaa !24
  %2810 = icmp eq ptr %2809, null
  br i1 %2810, label %2864, label %2811

2811:                                             ; preds = %2802
  br label %2812

2812:                                             ; preds = %2811
  br label %2813

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

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

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

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

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

2860:                                             ; preds = %2859
  br label %2861

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

2862:                                             ; No predecessors!
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

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

2865:                                             ; preds = %2864
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = add nsw i32 %2868, 1
  store i32 %2869, ptr @test_count, align 4, !tbaa !5
  %2870 = load ptr, ptr %39, align 8, !tbaa !9
  %2871 = getelementptr inbounds %struct.s2n_security_policy, ptr %2870, i32 0, i32 2
  %2872 = load ptr, ptr %2871, align 8, !tbaa !20
  %2873 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2872, i32 0, i32 2
  %2874 = load i8, ptr %2873, align 8, !tbaa !22
  %2875 = zext i8 %2874 to i32
  %2876 = icmp eq i32 0, %2875
  br i1 %2876, label %2930, label %2877

2877:                                             ; preds = %2867
  br label %2878

2878:                                             ; preds = %2877
  br label %2879

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

2886:                                             ; preds = %2879
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = call i32 @fileno(ptr noundef %2887) #10
  %2889 = call i32 @isatty(i32 noundef %2888) #10
  %2890 = icmp ne i32 %2889, 0
  br i1 %2890, label %2891, label %2908

2891:                                             ; preds = %2886
  %2892 = load i32, ptr %64, align 4, !tbaa !5
  %2893 = call ptr @__errno_location() #11
  store i32 %2892, ptr %2893, align 4, !tbaa !5
  %2894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror(i32 noundef %2897, ptr noundef @.str.4)
  %2899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror_debug(i32 noundef %2900, ptr noundef @.str.4)
  %2902 = call ptr @__errno_location() #11
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @strerror(i32 noundef %2903) #10
  %2905 = call ptr @__errno_location() #11
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2894, ptr noundef @.str.2, i32 noundef %2895, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2898, ptr noundef %2901, ptr noundef %2904, i32 noundef %2906) #10
  br label %2925

2908:                                             ; preds = %2886, %2879
  %2909 = load i32, ptr %64, align 4, !tbaa !5
  %2910 = call ptr @__errno_location() #11
  store i32 %2909, ptr %2910, align 4, !tbaa !5
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = load i32, ptr @test_count, align 4, !tbaa !5
  %2913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror(i32 noundef %2914, ptr noundef @.str.4)
  %2916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror_debug(i32 noundef %2917, ptr noundef @.str.4)
  %2919 = call ptr @__errno_location() #11
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @strerror(i32 noundef %2920) #10
  %2922 = call ptr @__errno_location() #11
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2911, ptr noundef @.str.5, i32 noundef %2912, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2915, ptr noundef %2918, ptr noundef %2921, i32 noundef %2923) #10
  br label %2925

2925:                                             ; preds = %2908, %2891
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2926

2926:                                             ; preds = %2925
  br label %2927

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

2928:                                             ; No predecessors!
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

2930:                                             ; preds = %2929, %2867
  br label %2931

2931:                                             ; preds = %2930
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932
  %2934 = load i32, ptr @test_count, align 4, !tbaa !5
  %2935 = add nsw i32 %2934, 1
  store i32 %2935, ptr @test_count, align 4, !tbaa !5
  %2936 = load ptr, ptr %39, align 8, !tbaa !9
  %2937 = getelementptr inbounds %struct.s2n_security_policy, ptr %2936, i32 0, i32 2
  %2938 = load ptr, ptr %2937, align 8, !tbaa !20
  %2939 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2938, i32 0, i32 1
  %2940 = load ptr, ptr %2939, align 8, !tbaa !49
  %2941 = icmp eq ptr %2940, null
  br i1 %2941, label %2995, label %2942

2942:                                             ; preds = %2933
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

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

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

2956:                                             ; preds = %2951
  %2957 = load i32, ptr %65, align 4, !tbaa !5
  %2958 = call ptr @__errno_location() #11
  store i32 %2957, ptr %2958, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  %2963 = call ptr @s2n_strerror(i32 noundef %2962, ptr noundef @.str.4)
  %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_debug(i32 noundef %2965, ptr noundef @.str.4)
  %2967 = call ptr @__errno_location() #11
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call ptr @strerror(i32 noundef %2968) #10
  %2970 = call ptr @__errno_location() #11
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2959, ptr noundef @.str.2, i32 noundef %2960, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2963, ptr noundef %2966, ptr noundef %2969, i32 noundef %2971) #10
  br label %2990

2973:                                             ; preds = %2951, %2944
  %2974 = load i32, ptr %65, align 4, !tbaa !5
  %2975 = call ptr @__errno_location() #11
  store i32 %2974, ptr %2975, align 4, !tbaa !5
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror(i32 noundef %2979, ptr noundef @.str.4)
  %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_debug(i32 noundef %2982, ptr noundef @.str.4)
  %2984 = call ptr @__errno_location() #11
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call ptr @strerror(i32 noundef %2985) #10
  %2987 = call ptr @__errno_location() #11
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2976, ptr noundef @.str.5, i32 noundef %2977, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2980, ptr noundef %2983, ptr noundef %2986, i32 noundef %2988) #10
  br label %2990

2990:                                             ; preds = %2973, %2956
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2991

2991:                                             ; preds = %2990
  br label %2992

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

2993:                                             ; No predecessors!
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994, %2933
  br label %2996

2996:                                             ; preds = %2995
  br label %2997

2997:                                             ; preds = %2996
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %2998

2998:                                             ; preds = %2997
  %2999 = load i32, ptr @test_count, align 4, !tbaa !5
  %3000 = add nsw i32 %2999, 1
  store i32 %3000, ptr @test_count, align 4, !tbaa !5
  %3001 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.50, ptr noundef %39)
  %3002 = icmp eq i32 %3001, -1
  br i1 %3002, label %3003, label %3056

3003:                                             ; preds = %2998
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

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

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

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

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

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

3052:                                             ; preds = %3051
  br label %3053

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

3054:                                             ; No predecessors!
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

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

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057
  br label %3059

3059:                                             ; preds = %3058
  %3060 = load i32, ptr @test_count, align 4, !tbaa !5
  %3061 = add nsw i32 %3060, 1
  store i32 %3061, ptr @test_count, align 4, !tbaa !5
  %3062 = load ptr, ptr %39, align 8, !tbaa !9
  %3063 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %3062)
  br i1 %3063, label %3117, label %3064

3064:                                             ; preds = %3059
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

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

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

3078:                                             ; preds = %3073
  %3079 = load i32, ptr %67, align 4, !tbaa !5
  %3080 = call ptr @__errno_location() #11
  store i32 %3079, ptr %3080, align 4, !tbaa !5
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = load i32, ptr @test_count, align 4, !tbaa !5
  %3083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror(i32 noundef %3084, ptr noundef @.str.4)
  %3086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = call ptr @s2n_strerror_debug(i32 noundef %3087, ptr noundef @.str.4)
  %3089 = call ptr @__errno_location() #11
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @strerror(i32 noundef %3090) #10
  %3092 = call ptr @__errno_location() #11
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3081, ptr noundef @.str.2, i32 noundef %3082, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 216, ptr noundef %3085, ptr noundef %3088, ptr noundef %3091, i32 noundef %3093) #10
  br label %3112

3095:                                             ; preds = %3073, %3066
  %3096 = load i32, ptr %67, align 4, !tbaa !5
  %3097 = call ptr @__errno_location() #11
  store i32 %3096, ptr %3097, align 4, !tbaa !5
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = load i32, ptr @test_count, align 4, !tbaa !5
  %3100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror(i32 noundef %3101, ptr noundef @.str.4)
  %3103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call ptr @s2n_strerror_debug(i32 noundef %3104, ptr noundef @.str.4)
  %3106 = call ptr @__errno_location() #11
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @strerror(i32 noundef %3107) #10
  %3109 = call ptr @__errno_location() #11
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3098, ptr noundef @.str.5, i32 noundef %3099, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 216, ptr noundef %3102, ptr noundef %3105, ptr noundef %3108, i32 noundef %3110) #10
  br label %3112

3112:                                             ; preds = %3095, %3078
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %3113

3113:                                             ; preds = %3112
  br label %3114

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

3115:                                             ; No predecessors!
  br label %3116

3116:                                             ; preds = %3115
  br label %3117

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

3118:                                             ; preds = %3117
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

3120:                                             ; preds = %3119
  %3121 = load i32, ptr @test_count, align 4, !tbaa !5
  %3122 = add nsw i32 %3121, 1
  store i32 %3122, ptr @test_count, align 4, !tbaa !5
  %3123 = load ptr, ptr %39, align 8, !tbaa !9
  %3124 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %3123)
  br i1 %3124, label %3125, label %3178

3125:                                             ; preds = %3120
  br label %3126

3126:                                             ; preds = %3125
  br label %3127

3127:                                             ; preds = %3126
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %3128 = call ptr @__errno_location() #11
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  store i32 %3129, ptr %68, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = call i32 @s2n_print_stacktrace(ptr noundef %3130)
  %3132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3133 = trunc i8 %3132 to i1
  br i1 %3133, label %3134, label %3156

3134:                                             ; preds = %3127
  %3135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3136 = call i32 @fileno(ptr noundef %3135) #10
  %3137 = call i32 @isatty(i32 noundef %3136) #10
  %3138 = icmp ne i32 %3137, 0
  br i1 %3138, label %3139, label %3156

3139:                                             ; preds = %3134
  %3140 = load i32, ptr %68, align 4, !tbaa !5
  %3141 = call ptr @__errno_location() #11
  store i32 %3140, ptr %3141, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call ptr @s2n_strerror(i32 noundef %3145, ptr noundef @.str.4)
  %3147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror_debug(i32 noundef %3148, ptr noundef @.str.4)
  %3150 = call ptr @__errno_location() #11
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @strerror(i32 noundef %3151) #10
  %3153 = call ptr @__errno_location() #11
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3142, ptr noundef @.str.2, i32 noundef %3143, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 217, ptr noundef %3146, ptr noundef %3149, ptr noundef %3152, i32 noundef %3154) #10
  br label %3173

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

3173:                                             ; preds = %3156, %3139
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

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

3176:                                             ; No predecessors!
  br label %3177

3177:                                             ; preds = %3176
  br label %3178

3178:                                             ; preds = %3177, %3120
  br label %3179

3179:                                             ; preds = %3178
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

3181:                                             ; preds = %3180
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = add nsw i32 %3182, 1
  store i32 %3183, ptr @test_count, align 4, !tbaa !5
  %3184 = load ptr, ptr %39, align 8, !tbaa !9
  %3185 = getelementptr inbounds %struct.s2n_security_policy, ptr %3184, i32 0, i32 2
  %3186 = load ptr, ptr %3185, align 8, !tbaa !20
  %3187 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %3186, i32 0, i32 0
  %3188 = load i8, ptr %3187, align 8, !tbaa !50
  %3189 = zext i8 %3188 to i32
  %3190 = icmp eq i32 0, %3189
  br i1 %3190, label %3244, label %3191

3191:                                             ; preds = %3181
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

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

3200:                                             ; preds = %3193
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = call i32 @fileno(ptr noundef %3201) #10
  %3203 = call i32 @isatty(i32 noundef %3202) #10
  %3204 = icmp ne i32 %3203, 0
  br i1 %3204, label %3205, label %3222

3205:                                             ; preds = %3200
  %3206 = load i32, ptr %69, align 4, !tbaa !5
  %3207 = call ptr @__errno_location() #11
  store i32 %3206, ptr %3207, align 4, !tbaa !5
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = load i32, ptr @test_count, align 4, !tbaa !5
  %3210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror(i32 noundef %3211, ptr noundef @.str.4)
  %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_debug(i32 noundef %3214, ptr noundef @.str.4)
  %3216 = call ptr @__errno_location() #11
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @strerror(i32 noundef %3217) #10
  %3219 = call ptr @__errno_location() #11
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3208, ptr noundef @.str.2, i32 noundef %3209, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 218, ptr noundef %3212, ptr noundef %3215, ptr noundef %3218, i32 noundef %3220) #10
  br label %3239

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

3239:                                             ; preds = %3222, %3205
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

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

3242:                                             ; No predecessors!
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

3244:                                             ; preds = %3243, %3181
  br label %3245

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3245
  br label %3247

3247:                                             ; preds = %3246
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = add nsw i32 %3248, 1
  store i32 %3249, ptr @test_count, align 4, !tbaa !5
  %3250 = load ptr, ptr %39, align 8, !tbaa !9
  %3251 = getelementptr inbounds %struct.s2n_security_policy, ptr %3250, i32 0, i32 2
  %3252 = load ptr, ptr %3251, align 8, !tbaa !20
  %3253 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %3252, i32 0, i32 1
  %3254 = load ptr, ptr %3253, align 8, !tbaa !49
  %3255 = icmp eq ptr %3254, null
  br i1 %3255, label %3309, label %3256

3256:                                             ; preds = %3247
  br label %3257

3257:                                             ; preds = %3256
  br label %3258

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

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

3270:                                             ; preds = %3265
  %3271 = load i32, ptr %70, align 4, !tbaa !5
  %3272 = call ptr @__errno_location() #11
  store i32 %3271, ptr %3272, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3276 = load i32, ptr %3275, align 4, !tbaa !5
  %3277 = call ptr @s2n_strerror(i32 noundef %3276, ptr noundef @.str.4)
  %3278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @s2n_strerror_debug(i32 noundef %3279, ptr noundef @.str.4)
  %3281 = call ptr @__errno_location() #11
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call ptr @strerror(i32 noundef %3282) #10
  %3284 = call ptr @__errno_location() #11
  %3285 = load i32, ptr %3284, align 4, !tbaa !5
  %3286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3273, ptr noundef @.str.2, i32 noundef %3274, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3277, ptr noundef %3280, ptr noundef %3283, i32 noundef %3285) #10
  br label %3304

3287:                                             ; preds = %3265, %3258
  %3288 = load i32, ptr %70, align 4, !tbaa !5
  %3289 = call ptr @__errno_location() #11
  store i32 %3288, ptr %3289, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = load i32, ptr @test_count, align 4, !tbaa !5
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror(i32 noundef %3293, ptr noundef @.str.4)
  %3295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror_debug(i32 noundef %3296, ptr noundef @.str.4)
  %3298 = call ptr @__errno_location() #11
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call ptr @strerror(i32 noundef %3299) #10
  %3301 = call ptr @__errno_location() #11
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3290, ptr noundef @.str.5, i32 noundef %3291, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3294, ptr noundef %3297, ptr noundef %3300, i32 noundef %3302) #10
  br label %3304

3304:                                             ; preds = %3287, %3270
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

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

3307:                                             ; No predecessors!
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308, %3247
  br label %3310

3310:                                             ; preds = %3309
  br label %3311

3311:                                             ; preds = %3310
  br label %3312

3312:                                             ; preds = %3311
  %3313 = load i32, ptr @test_count, align 4, !tbaa !5
  %3314 = add nsw i32 %3313, 1
  store i32 %3314, ptr @test_count, align 4, !tbaa !5
  %3315 = load ptr, ptr %39, align 8, !tbaa !9
  %3316 = getelementptr inbounds %struct.s2n_security_policy, ptr %3315, i32 0, i32 2
  %3317 = load ptr, ptr %3316, align 8, !tbaa !20
  %3318 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %3317, i32 0, i32 3
  %3319 = load ptr, ptr %3318, align 8, !tbaa !24
  %3320 = icmp eq ptr %3319, @ALL_SUPPORTED_KEM_GROUPS
  br i1 %3320, label %3374, label %3321

3321:                                             ; preds = %3312
  br label %3322

3322:                                             ; preds = %3321
  br label %3323

3323:                                             ; preds = %3322
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3324 = call ptr @__errno_location() #11
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  store i32 %3325, ptr %71, align 4, !tbaa !5
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = call i32 @s2n_print_stacktrace(ptr noundef %3326)
  %3328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3329 = trunc i8 %3328 to i1
  br i1 %3329, label %3330, label %3352

3330:                                             ; preds = %3323
  %3331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3332 = call i32 @fileno(ptr noundef %3331) #10
  %3333 = call i32 @isatty(i32 noundef %3332) #10
  %3334 = icmp ne i32 %3333, 0
  br i1 %3334, label %3335, label %3352

3335:                                             ; preds = %3330
  %3336 = load i32, ptr %71, align 4, !tbaa !5
  %3337 = call ptr @__errno_location() #11
  store i32 %3336, ptr %3337, align 4, !tbaa !5
  %3338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3339 = load i32, ptr @test_count, align 4, !tbaa !5
  %3340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = call ptr @s2n_strerror(i32 noundef %3341, ptr noundef @.str.4)
  %3343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3344 = load i32, ptr %3343, align 4, !tbaa !5
  %3345 = call ptr @s2n_strerror_debug(i32 noundef %3344, ptr noundef @.str.4)
  %3346 = call ptr @__errno_location() #11
  %3347 = load i32, ptr %3346, align 4, !tbaa !5
  %3348 = call ptr @strerror(i32 noundef %3347) #10
  %3349 = call ptr @__errno_location() #11
  %3350 = load i32, ptr %3349, align 4, !tbaa !5
  %3351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3338, ptr noundef @.str.2, i32 noundef %3339, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 220, ptr noundef %3342, ptr noundef %3345, ptr noundef %3348, i32 noundef %3350) #10
  br label %3369

3352:                                             ; preds = %3330, %3323
  %3353 = load i32, ptr %71, align 4, !tbaa !5
  %3354 = call ptr @__errno_location() #11
  store i32 %3353, ptr %3354, align 4, !tbaa !5
  %3355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3356 = load i32, ptr @test_count, align 4, !tbaa !5
  %3357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call ptr @s2n_strerror(i32 noundef %3358, ptr noundef @.str.4)
  %3360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  %3362 = call ptr @s2n_strerror_debug(i32 noundef %3361, ptr noundef @.str.4)
  %3363 = call ptr @__errno_location() #11
  %3364 = load i32, ptr %3363, align 4, !tbaa !5
  %3365 = call ptr @strerror(i32 noundef %3364) #10
  %3366 = call ptr @__errno_location() #11
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3355, ptr noundef @.str.5, i32 noundef %3356, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 220, ptr noundef %3359, ptr noundef %3362, ptr noundef %3365, i32 noundef %3367) #10
  br label %3369

3369:                                             ; preds = %3352, %3335
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3370

3370:                                             ; preds = %3369
  br label %3371

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

3372:                                             ; No predecessors!
  br label %3373

3373:                                             ; preds = %3372
  br label %3374

3374:                                             ; preds = %3373, %3312
  br label %3375

3375:                                             ; preds = %3374
  br label %3376

3376:                                             ; preds = %3375
  br label %3377

3377:                                             ; preds = %3376
  %3378 = load i32, ptr @test_count, align 4, !tbaa !5
  %3379 = add nsw i32 %3378, 1
  store i32 %3379, ptr @test_count, align 4, !tbaa !5
  %3380 = load ptr, ptr %39, align 8, !tbaa !9
  %3381 = getelementptr inbounds %struct.s2n_security_policy, ptr %3380, i32 0, i32 2
  %3382 = load ptr, ptr %3381, align 8, !tbaa !20
  %3383 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %3382, i32 0, i32 2
  %3384 = load i8, ptr %3383, align 8, !tbaa !22
  %3385 = zext i8 %3384 to i32
  %3386 = icmp eq i32 8, %3385
  br i1 %3386, label %3440, label %3387

3387:                                             ; preds = %3377
  br label %3388

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3390 = call ptr @__errno_location() #11
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  store i32 %3391, ptr %72, align 4, !tbaa !5
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = call i32 @s2n_print_stacktrace(ptr noundef %3392)
  %3394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3395 = trunc i8 %3394 to i1
  br i1 %3395, label %3396, label %3418

3396:                                             ; preds = %3389
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = call i32 @fileno(ptr noundef %3397) #10
  %3399 = call i32 @isatty(i32 noundef %3398) #10
  %3400 = icmp ne i32 %3399, 0
  br i1 %3400, label %3401, label %3418

3401:                                             ; preds = %3396
  %3402 = load i32, ptr %72, align 4, !tbaa !5
  %3403 = call ptr @__errno_location() #11
  store i32 %3402, ptr %3403, align 4, !tbaa !5
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = load i32, ptr @test_count, align 4, !tbaa !5
  %3406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3407 = load i32, ptr %3406, align 4, !tbaa !5
  %3408 = call ptr @s2n_strerror(i32 noundef %3407, ptr noundef @.str.4)
  %3409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror_debug(i32 noundef %3410, ptr noundef @.str.4)
  %3412 = call ptr @__errno_location() #11
  %3413 = load i32, ptr %3412, align 4, !tbaa !5
  %3414 = call ptr @strerror(i32 noundef %3413) #10
  %3415 = call ptr @__errno_location() #11
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3404, ptr noundef @.str.2, i32 noundef %3405, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3408, ptr noundef %3411, ptr noundef %3414, i32 noundef %3416) #10
  br label %3435

3418:                                             ; preds = %3396, %3389
  %3419 = load i32, ptr %72, align 4, !tbaa !5
  %3420 = call ptr @__errno_location() #11
  store i32 %3419, ptr %3420, align 4, !tbaa !5
  %3421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3422 = load i32, ptr @test_count, align 4, !tbaa !5
  %3423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call ptr @s2n_strerror(i32 noundef %3424, ptr noundef @.str.4)
  %3426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror_debug(i32 noundef %3427, ptr noundef @.str.4)
  %3429 = call ptr @__errno_location() #11
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call ptr @strerror(i32 noundef %3430) #10
  %3432 = call ptr @__errno_location() #11
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3421, ptr noundef @.str.5, i32 noundef %3422, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3425, ptr noundef %3428, ptr noundef %3431, i32 noundef %3433) #10
  br label %3435

3435:                                             ; preds = %3418, %3401
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3436

3436:                                             ; preds = %3435
  br label %3437

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

3438:                                             ; No predecessors!
  br label %3439

3439:                                             ; preds = %3438
  br label %3440

3440:                                             ; preds = %3439, %3377
  br label %3441

3441:                                             ; preds = %3440
  br label %3442

3442:                                             ; preds = %3441
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  store i32 0, ptr %73, align 4, !tbaa !5
  br label %3443

3443:                                             ; preds = %3442
  %3444 = load i32, ptr @test_count, align 4, !tbaa !5
  %3445 = add nsw i32 %3444, 1
  store i32 %3445, ptr @test_count, align 4, !tbaa !5
  %3446 = load ptr, ptr %39, align 8, !tbaa !9
  %3447 = getelementptr inbounds %struct.s2n_security_policy, ptr %3446, i32 0, i32 2
  %3448 = load ptr, ptr %3447, align 8, !tbaa !20
  %3449 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %3448, ptr noundef %73)
  %3450 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %3449, ptr %3450, align 4
  %3451 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  %3452 = load i32, ptr %3451, align 4
  %3453 = call zeroext i1 @s2n_result_is_ok(i32 %3452)
  br i1 %3453, label %3507, label %3454

3454:                                             ; preds = %3443
  br label %3455

3455:                                             ; preds = %3454
  br label %3456

3456:                                             ; preds = %3455
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3457 = call ptr @__errno_location() #11
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  store i32 %3458, ptr %75, align 4, !tbaa !5
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = call i32 @s2n_print_stacktrace(ptr noundef %3459)
  %3461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3462 = trunc i8 %3461 to i1
  br i1 %3462, label %3463, label %3485

3463:                                             ; preds = %3456
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = call i32 @fileno(ptr noundef %3464) #10
  %3466 = call i32 @isatty(i32 noundef %3465) #10
  %3467 = icmp ne i32 %3466, 0
  br i1 %3467, label %3468, label %3485

3468:                                             ; preds = %3463
  %3469 = load i32, ptr %75, align 4, !tbaa !5
  %3470 = call ptr @__errno_location() #11
  store i32 %3469, ptr %3470, align 4, !tbaa !5
  %3471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3472 = load i32, ptr @test_count, align 4, !tbaa !5
  %3473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror(i32 noundef %3474, ptr noundef @.str.4)
  %3476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror_debug(i32 noundef %3477, ptr noundef @.str.4)
  %3479 = call ptr @__errno_location() #11
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @strerror(i32 noundef %3480) #10
  %3482 = call ptr @__errno_location() #11
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3471, ptr noundef @.str.2, i32 noundef %3472, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3475, ptr noundef %3478, ptr noundef %3481, i32 noundef %3483) #10
  br label %3502

3485:                                             ; preds = %3463, %3456
  %3486 = load i32, ptr %75, align 4, !tbaa !5
  %3487 = call ptr @__errno_location() #11
  store i32 %3486, ptr %3487, align 4, !tbaa !5
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = load i32, ptr @test_count, align 4, !tbaa !5
  %3490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3491 = load i32, ptr %3490, align 4, !tbaa !5
  %3492 = call ptr @s2n_strerror(i32 noundef %3491, ptr noundef @.str.4)
  %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_debug(i32 noundef %3494, ptr noundef @.str.4)
  %3496 = call ptr @__errno_location() #11
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @strerror(i32 noundef %3497) #10
  %3499 = call ptr @__errno_location() #11
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3488, ptr noundef @.str.5, i32 noundef %3489, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3492, ptr noundef %3495, ptr noundef %3498, i32 noundef %3500) #10
  br label %3502

3502:                                             ; preds = %3485, %3468
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

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

3505:                                             ; No predecessors!
  br label %3506

3506:                                             ; preds = %3505
  br label %3507

3507:                                             ; preds = %3506, %3443
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508
  %3510 = call zeroext i1 @s2n_libcrypto_supports_evp_kem()
  br i1 %3510, label %3511, label %3641

3511:                                             ; preds = %3509
  %3512 = call i32 (...) @s2n_is_evp_apis_supported()
  %3513 = icmp ne i32 %3512, 0
  br i1 %3513, label %3514, label %3641

3514:                                             ; preds = %3511
  %3515 = call zeroext i1 @s2n_libcrypto_supports_mlkem()
  br i1 %3515, label %3516, label %3578

3516:                                             ; preds = %3514
  br label %3517

3517:                                             ; preds = %3516
  %3518 = load i32, ptr @test_count, align 4, !tbaa !5
  %3519 = add nsw i32 %3518, 1
  store i32 %3519, ptr @test_count, align 4, !tbaa !5
  %3520 = load i32, ptr %73, align 4, !tbaa !5
  %3521 = icmp eq i32 8, %3520
  br i1 %3521, label %3575, label %3522

3522:                                             ; preds = %3517
  br label %3523

3523:                                             ; preds = %3522
  br label %3524

3524:                                             ; preds = %3523
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3525 = call ptr @__errno_location() #11
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  store i32 %3526, ptr %76, align 4, !tbaa !5
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = call i32 @s2n_print_stacktrace(ptr noundef %3527)
  %3529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3530 = trunc i8 %3529 to i1
  br i1 %3530, label %3531, label %3553

3531:                                             ; preds = %3524
  %3532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3533 = call i32 @fileno(ptr noundef %3532) #10
  %3534 = call i32 @isatty(i32 noundef %3533) #10
  %3535 = icmp ne i32 %3534, 0
  br i1 %3535, label %3536, label %3553

3536:                                             ; preds = %3531
  %3537 = load i32, ptr %76, align 4, !tbaa !5
  %3538 = call ptr @__errno_location() #11
  store i32 %3537, ptr %3538, align 4, !tbaa !5
  %3539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3540 = load i32, ptr @test_count, align 4, !tbaa !5
  %3541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @s2n_strerror(i32 noundef %3542, ptr noundef @.str.4)
  %3544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call ptr @s2n_strerror_debug(i32 noundef %3545, ptr noundef @.str.4)
  %3547 = call ptr @__errno_location() #11
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call ptr @strerror(i32 noundef %3548) #10
  %3550 = call ptr @__errno_location() #11
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3539, ptr noundef @.str.2, i32 noundef %3540, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3543, ptr noundef %3546, ptr noundef %3549, i32 noundef %3551) #10
  br label %3570

3553:                                             ; preds = %3531, %3524
  %3554 = load i32, ptr %76, align 4, !tbaa !5
  %3555 = call ptr @__errno_location() #11
  store i32 %3554, ptr %3555, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @s2n_strerror(i32 noundef %3559, ptr noundef @.str.4)
  %3561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror_debug(i32 noundef %3562, ptr noundef @.str.4)
  %3564 = call ptr @__errno_location() #11
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call ptr @strerror(i32 noundef %3565) #10
  %3567 = call ptr @__errno_location() #11
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef @.str.5, i32 noundef %3557, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3560, ptr noundef %3563, ptr noundef %3566, i32 noundef %3568) #10
  br label %3570

3570:                                             ; preds = %3553, %3536
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3571

3571:                                             ; preds = %3570
  br label %3572

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

3573:                                             ; No predecessors!
  br label %3574

3574:                                             ; preds = %3573
  br label %3575

3575:                                             ; preds = %3574, %3517
  br label %3576

3576:                                             ; preds = %3575
  br label %3577

3577:                                             ; preds = %3576
  br label %3640

3578:                                             ; preds = %3514
  br label %3579

3579:                                             ; preds = %3578
  %3580 = load i32, ptr @test_count, align 4, !tbaa !5
  %3581 = add nsw i32 %3580, 1
  store i32 %3581, ptr @test_count, align 4, !tbaa !5
  %3582 = load i32, ptr %73, align 4, !tbaa !5
  %3583 = icmp eq i32 6, %3582
  br i1 %3583, label %3637, label %3584

3584:                                             ; preds = %3579
  br label %3585

3585:                                             ; preds = %3584
  br label %3586

3586:                                             ; preds = %3585
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3587 = call ptr @__errno_location() #11
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  store i32 %3588, ptr %77, align 4, !tbaa !5
  %3589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3590 = call i32 @s2n_print_stacktrace(ptr noundef %3589)
  %3591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3592 = trunc i8 %3591 to i1
  br i1 %3592, label %3593, label %3615

3593:                                             ; preds = %3586
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = call i32 @fileno(ptr noundef %3594) #10
  %3596 = call i32 @isatty(i32 noundef %3595) #10
  %3597 = icmp ne i32 %3596, 0
  br i1 %3597, label %3598, label %3615

3598:                                             ; preds = %3593
  %3599 = load i32, ptr %77, align 4, !tbaa !5
  %3600 = call ptr @__errno_location() #11
  store i32 %3599, ptr %3600, align 4, !tbaa !5
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = load i32, ptr @test_count, align 4, !tbaa !5
  %3603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call ptr @s2n_strerror(i32 noundef %3604, ptr noundef @.str.4)
  %3606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = call ptr @s2n_strerror_debug(i32 noundef %3607, ptr noundef @.str.4)
  %3609 = call ptr @__errno_location() #11
  %3610 = load i32, ptr %3609, align 4, !tbaa !5
  %3611 = call ptr @strerror(i32 noundef %3610) #10
  %3612 = call ptr @__errno_location() #11
  %3613 = load i32, ptr %3612, align 4, !tbaa !5
  %3614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3601, ptr noundef @.str.2, i32 noundef %3602, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3605, ptr noundef %3608, ptr noundef %3611, i32 noundef %3613) #10
  br label %3632

3615:                                             ; preds = %3593, %3586
  %3616 = load i32, ptr %77, align 4, !tbaa !5
  %3617 = call ptr @__errno_location() #11
  store i32 %3616, ptr %3617, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror(i32 noundef %3621, ptr noundef @.str.4)
  %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_debug(i32 noundef %3624, ptr noundef @.str.4)
  %3626 = call ptr @__errno_location() #11
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @strerror(i32 noundef %3627) #10
  %3629 = call ptr @__errno_location() #11
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3618, ptr noundef @.str.5, i32 noundef %3619, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3622, ptr noundef %3625, ptr noundef %3628, i32 noundef %3630) #10
  br label %3632

3632:                                             ; preds = %3615, %3598
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

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

3635:                                             ; No predecessors!
  br label %3636

3636:                                             ; preds = %3635
  br label %3637

3637:                                             ; preds = %3636, %3579
  br label %3638

3638:                                             ; preds = %3637
  br label %3639

3639:                                             ; preds = %3638
  br label %3640

3640:                                             ; preds = %3639, %3577
  br label %3836

3641:                                             ; preds = %3511, %3509
  %3642 = call zeroext i1 @s2n_libcrypto_supports_evp_kem()
  br i1 %3642, label %3643, label %3773

3643:                                             ; preds = %3641
  %3644 = call i32 (...) @s2n_is_evp_apis_supported()
  %3645 = icmp ne i32 %3644, 0
  br i1 %3645, label %3773, label %3646

3646:                                             ; preds = %3643
  %3647 = call zeroext i1 @s2n_libcrypto_supports_mlkem()
  br i1 %3647, label %3648, label %3710

3648:                                             ; preds = %3646
  br label %3649

3649:                                             ; preds = %3648
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = add nsw i32 %3650, 1
  store i32 %3651, ptr @test_count, align 4, !tbaa !5
  %3652 = load i32, ptr %73, align 4, !tbaa !5
  %3653 = icmp eq i32 5, %3652
  br i1 %3653, label %3707, label %3654

3654:                                             ; preds = %3649
  br label %3655

3655:                                             ; preds = %3654
  br label %3656

3656:                                             ; preds = %3655
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %3657 = call ptr @__errno_location() #11
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  store i32 %3658, ptr %78, align 4, !tbaa !5
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = call i32 @s2n_print_stacktrace(ptr noundef %3659)
  %3661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3662 = trunc i8 %3661 to i1
  br i1 %3662, label %3663, label %3685

3663:                                             ; preds = %3656
  %3664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3665 = call i32 @fileno(ptr noundef %3664) #10
  %3666 = call i32 @isatty(i32 noundef %3665) #10
  %3667 = icmp ne i32 %3666, 0
  br i1 %3667, label %3668, label %3685

3668:                                             ; preds = %3663
  %3669 = load i32, ptr %78, align 4, !tbaa !5
  %3670 = call ptr @__errno_location() #11
  store i32 %3669, ptr %3670, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %3673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  %3675 = call ptr @s2n_strerror(i32 noundef %3674, ptr noundef @.str.4)
  %3676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror_debug(i32 noundef %3677, ptr noundef @.str.4)
  %3679 = call ptr @__errno_location() #11
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @strerror(i32 noundef %3680) #10
  %3682 = call ptr @__errno_location() #11
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3671, ptr noundef @.str.2, i32 noundef %3672, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 233, ptr noundef %3675, ptr noundef %3678, ptr noundef %3681, i32 noundef %3683) #10
  br label %3702

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

3702:                                             ; preds = %3685, %3668
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3703

3703:                                             ; preds = %3702
  br label %3704

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

3705:                                             ; No predecessors!
  br label %3706

3706:                                             ; preds = %3705
  br label %3707

3707:                                             ; preds = %3706, %3649
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708
  br label %3772

3710:                                             ; preds = %3646
  br label %3711

3711:                                             ; preds = %3710
  %3712 = load i32, ptr @test_count, align 4, !tbaa !5
  %3713 = add nsw i32 %3712, 1
  store i32 %3713, ptr @test_count, align 4, !tbaa !5
  %3714 = load i32, ptr %73, align 4, !tbaa !5
  %3715 = icmp eq i32 4, %3714
  br i1 %3715, label %3769, label %3716

3716:                                             ; preds = %3711
  br label %3717

3717:                                             ; preds = %3716
  br label %3718

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

3725:                                             ; preds = %3718
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = call i32 @fileno(ptr noundef %3726) #10
  %3728 = call i32 @isatty(i32 noundef %3727) #10
  %3729 = icmp ne i32 %3728, 0
  br i1 %3729, label %3730, label %3747

3730:                                             ; preds = %3725
  %3731 = load i32, ptr %79, align 4, !tbaa !5
  %3732 = call ptr @__errno_location() #11
  store i32 %3731, ptr %3732, align 4, !tbaa !5
  %3733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3734 = load i32, ptr @test_count, align 4, !tbaa !5
  %3735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3736 = load i32, ptr %3735, align 4, !tbaa !5
  %3737 = call ptr @s2n_strerror(i32 noundef %3736, ptr noundef @.str.4)
  %3738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call ptr @s2n_strerror_debug(i32 noundef %3739, ptr noundef @.str.4)
  %3741 = call ptr @__errno_location() #11
  %3742 = load i32, ptr %3741, align 4, !tbaa !5
  %3743 = call ptr @strerror(i32 noundef %3742) #10
  %3744 = call ptr @__errno_location() #11
  %3745 = load i32, ptr %3744, align 4, !tbaa !5
  %3746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3733, ptr noundef @.str.2, i32 noundef %3734, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3737, ptr noundef %3740, ptr noundef %3743, i32 noundef %3745) #10
  br label %3764

3747:                                             ; preds = %3725, %3718
  %3748 = load i32, ptr %79, align 4, !tbaa !5
  %3749 = call ptr @__errno_location() #11
  store i32 %3748, ptr %3749, align 4, !tbaa !5
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = load i32, ptr @test_count, align 4, !tbaa !5
  %3752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call ptr @s2n_strerror(i32 noundef %3753, ptr noundef @.str.4)
  %3755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3756 = load i32, ptr %3755, align 4, !tbaa !5
  %3757 = call ptr @s2n_strerror_debug(i32 noundef %3756, ptr noundef @.str.4)
  %3758 = call ptr @__errno_location() #11
  %3759 = load i32, ptr %3758, align 4, !tbaa !5
  %3760 = call ptr @strerror(i32 noundef %3759) #10
  %3761 = call ptr @__errno_location() #11
  %3762 = load i32, ptr %3761, align 4, !tbaa !5
  %3763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3750, ptr noundef @.str.5, i32 noundef %3751, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3754, ptr noundef %3757, ptr noundef %3760, i32 noundef %3762) #10
  br label %3764

3764:                                             ; preds = %3747, %3730
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

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

3767:                                             ; No predecessors!
  br label %3768

3768:                                             ; preds = %3767
  br label %3769

3769:                                             ; preds = %3768, %3711
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

3771:                                             ; preds = %3770
  br label %3772

3772:                                             ; preds = %3771, %3709
  br label %3835

3773:                                             ; preds = %3643, %3641
  br label %3774

3774:                                             ; preds = %3773
  %3775 = load i32, ptr @test_count, align 4, !tbaa !5
  %3776 = add nsw i32 %3775, 1
  store i32 %3776, ptr @test_count, align 4, !tbaa !5
  %3777 = load i32, ptr %73, align 4, !tbaa !5
  %3778 = icmp eq i32 0, %3777
  br i1 %3778, label %3832, label %3779

3779:                                             ; preds = %3774
  br label %3780

3780:                                             ; preds = %3779
  br label %3781

3781:                                             ; preds = %3780
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3782 = call ptr @__errno_location() #11
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  store i32 %3783, ptr %80, align 4, !tbaa !5
  %3784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3785 = call i32 @s2n_print_stacktrace(ptr noundef %3784)
  %3786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3787 = trunc i8 %3786 to i1
  br i1 %3787, label %3788, label %3810

3788:                                             ; preds = %3781
  %3789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3790 = call i32 @fileno(ptr noundef %3789) #10
  %3791 = call i32 @isatty(i32 noundef %3790) #10
  %3792 = icmp ne i32 %3791, 0
  br i1 %3792, label %3793, label %3810

3793:                                             ; preds = %3788
  %3794 = load i32, ptr %80, align 4, !tbaa !5
  %3795 = call ptr @__errno_location() #11
  store i32 %3794, ptr %3795, align 4, !tbaa !5
  %3796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3797 = load i32, ptr @test_count, align 4, !tbaa !5
  %3798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror(i32 noundef %3799, ptr noundef @.str.4)
  %3801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror_debug(i32 noundef %3802, ptr noundef @.str.4)
  %3804 = call ptr @__errno_location() #11
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call ptr @strerror(i32 noundef %3805) #10
  %3807 = call ptr @__errno_location() #11
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3796, ptr noundef @.str.2, i32 noundef %3797, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 238, ptr noundef %3800, ptr noundef %3803, ptr noundef %3806, i32 noundef %3808) #10
  br label %3827

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

3827:                                             ; preds = %3810, %3793
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3828

3828:                                             ; preds = %3827
  br label %3829

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

3830:                                             ; No predecessors!
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

3832:                                             ; preds = %3831, %3774
  br label %3833

3833:                                             ; preds = %3832
  br label %3834

3834:                                             ; preds = %3833
  br label %3835

3835:                                             ; preds = %3834, %3772
  br label %3836

3836:                                             ; preds = %3835, %3640
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %3837

3837:                                             ; preds = %3836
  %3838 = load i32, ptr @test_count, align 4, !tbaa !5
  %3839 = add nsw i32 %3838, 1
  store i32 %3839, ptr @test_count, align 4, !tbaa !5
  %3840 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.60, ptr noundef %39)
  %3841 = icmp eq i32 %3840, -1
  br i1 %3841, label %3842, label %3895

3842:                                             ; preds = %3837
  br label %3843

3843:                                             ; preds = %3842
  br label %3844

3844:                                             ; preds = %3843
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3845 = call ptr @__errno_location() #11
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  store i32 %3846, ptr %81, align 4, !tbaa !5
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = call i32 @s2n_print_stacktrace(ptr noundef %3847)
  %3849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3850 = trunc i8 %3849 to i1
  br i1 %3850, label %3851, label %3873

3851:                                             ; preds = %3844
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = call i32 @fileno(ptr noundef %3852) #10
  %3854 = call i32 @isatty(i32 noundef %3853) #10
  %3855 = icmp ne i32 %3854, 0
  br i1 %3855, label %3856, label %3873

3856:                                             ; preds = %3851
  %3857 = load i32, ptr %81, align 4, !tbaa !5
  %3858 = call ptr @__errno_location() #11
  store i32 %3857, ptr %3858, align 4, !tbaa !5
  %3859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3860 = load i32, ptr @test_count, align 4, !tbaa !5
  %3861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3862 = load i32, ptr %3861, align 4, !tbaa !5
  %3863 = call ptr @s2n_strerror(i32 noundef %3862, ptr noundef @.str.4)
  %3864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror_debug(i32 noundef %3865, ptr noundef @.str.4)
  %3867 = call ptr @__errno_location() #11
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @strerror(i32 noundef %3868) #10
  %3870 = call ptr @__errno_location() #11
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3859, ptr noundef @.str.2, i32 noundef %3860, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 242, ptr noundef %3863, ptr noundef %3866, ptr noundef %3869, i32 noundef %3871) #10
  br label %3890

3873:                                             ; preds = %3851, %3844
  %3874 = load i32, ptr %81, align 4, !tbaa !5
  %3875 = call ptr @__errno_location() #11
  store i32 %3874, ptr %3875, align 4, !tbaa !5
  %3876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3877 = load i32, ptr @test_count, align 4, !tbaa !5
  %3878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  %3880 = call ptr @s2n_strerror(i32 noundef %3879, ptr noundef @.str.4)
  %3881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3882 = load i32, ptr %3881, align 4, !tbaa !5
  %3883 = call ptr @s2n_strerror_debug(i32 noundef %3882, ptr noundef @.str.4)
  %3884 = call ptr @__errno_location() #11
  %3885 = load i32, ptr %3884, align 4, !tbaa !5
  %3886 = call ptr @strerror(i32 noundef %3885) #10
  %3887 = call ptr @__errno_location() #11
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3876, ptr noundef @.str.5, i32 noundef %3877, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 242, ptr noundef %3880, ptr noundef %3883, ptr noundef %3886, i32 noundef %3888) #10
  br label %3890

3890:                                             ; preds = %3873, %3856
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3891

3891:                                             ; preds = %3890
  br label %3892

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

3893:                                             ; No predecessors!
  br label %3894

3894:                                             ; preds = %3893
  br label %3895

3895:                                             ; preds = %3894, %3837
  br label %3896

3896:                                             ; preds = %3895
  br label %3897

3897:                                             ; preds = %3896
  br label %3898

3898:                                             ; preds = %3897
  %3899 = load i32, ptr @test_count, align 4, !tbaa !5
  %3900 = add nsw i32 %3899, 1
  store i32 %3900, ptr @test_count, align 4, !tbaa !5
  %3901 = load ptr, ptr %39, align 8, !tbaa !9
  %3902 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %3901)
  br i1 %3902, label %3956, label %3903

3903:                                             ; preds = %3898
  br label %3904

3904:                                             ; preds = %3903
  br label %3905

3905:                                             ; preds = %3904
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3906 = call ptr @__errno_location() #11
  %3907 = load i32, ptr %3906, align 4, !tbaa !5
  store i32 %3907, ptr %82, align 4, !tbaa !5
  %3908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3909 = call i32 @s2n_print_stacktrace(ptr noundef %3908)
  %3910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3911 = trunc i8 %3910 to i1
  br i1 %3911, label %3912, label %3934

3912:                                             ; preds = %3905
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = call i32 @fileno(ptr noundef %3913) #10
  %3915 = call i32 @isatty(i32 noundef %3914) #10
  %3916 = icmp ne i32 %3915, 0
  br i1 %3916, label %3917, label %3934

3917:                                             ; preds = %3912
  %3918 = load i32, ptr %82, align 4, !tbaa !5
  %3919 = call ptr @__errno_location() #11
  store i32 %3918, ptr %3919, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = load i32, ptr @test_count, align 4, !tbaa !5
  %3922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3923 = load i32, ptr %3922, align 4, !tbaa !5
  %3924 = call ptr @s2n_strerror(i32 noundef %3923, ptr noundef @.str.4)
  %3925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3926 = load i32, ptr %3925, align 4, !tbaa !5
  %3927 = call ptr @s2n_strerror_debug(i32 noundef %3926, ptr noundef @.str.4)
  %3928 = call ptr @__errno_location() #11
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call ptr @strerror(i32 noundef %3929) #10
  %3931 = call ptr @__errno_location() #11
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3920, ptr noundef @.str.2, i32 noundef %3921, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 243, ptr noundef %3924, ptr noundef %3927, ptr noundef %3930, i32 noundef %3932) #10
  br label %3951

3934:                                             ; preds = %3912, %3905
  %3935 = load i32, ptr %82, align 4, !tbaa !5
  %3936 = call ptr @__errno_location() #11
  store i32 %3935, ptr %3936, align 4, !tbaa !5
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = load i32, ptr @test_count, align 4, !tbaa !5
  %3939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call ptr @s2n_strerror(i32 noundef %3940, ptr noundef @.str.4)
  %3942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3943 = load i32, ptr %3942, align 4, !tbaa !5
  %3944 = call ptr @s2n_strerror_debug(i32 noundef %3943, ptr noundef @.str.4)
  %3945 = call ptr @__errno_location() #11
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call ptr @strerror(i32 noundef %3946) #10
  %3948 = call ptr @__errno_location() #11
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3937, ptr noundef @.str.5, i32 noundef %3938, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 243, ptr noundef %3941, ptr noundef %3944, ptr noundef %3947, i32 noundef %3949) #10
  br label %3951

3951:                                             ; preds = %3934, %3917
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3952

3952:                                             ; preds = %3951
  br label %3953

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

3954:                                             ; No predecessors!
  br label %3955

3955:                                             ; preds = %3954
  br label %3956

3956:                                             ; preds = %3955, %3898
  br label %3957

3957:                                             ; preds = %3956
  br label %3958

3958:                                             ; preds = %3957
  br label %3959

3959:                                             ; preds = %3958
  %3960 = load i32, ptr @test_count, align 4, !tbaa !5
  %3961 = add nsw i32 %3960, 1
  store i32 %3961, ptr @test_count, align 4, !tbaa !5
  %3962 = load ptr, ptr %39, align 8, !tbaa !9
  %3963 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %3962)
  br i1 %3963, label %3964, label %4017

3964:                                             ; preds = %3959
  br label %3965

3965:                                             ; preds = %3964
  br label %3966

3966:                                             ; preds = %3965
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  %3967 = call ptr @__errno_location() #11
  %3968 = load i32, ptr %3967, align 4, !tbaa !5
  store i32 %3968, ptr %83, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = call i32 @s2n_print_stacktrace(ptr noundef %3969)
  %3971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3972 = trunc i8 %3971 to i1
  br i1 %3972, label %3973, label %3995

3973:                                             ; preds = %3966
  %3974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3975 = call i32 @fileno(ptr noundef %3974) #10
  %3976 = call i32 @isatty(i32 noundef %3975) #10
  %3977 = icmp ne i32 %3976, 0
  br i1 %3977, label %3978, label %3995

3978:                                             ; preds = %3973
  %3979 = load i32, ptr %83, align 4, !tbaa !5
  %3980 = call ptr @__errno_location() #11
  store i32 %3979, ptr %3980, align 4, !tbaa !5
  %3981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3982 = load i32, ptr @test_count, align 4, !tbaa !5
  %3983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  %3985 = call ptr @s2n_strerror(i32 noundef %3984, ptr noundef @.str.4)
  %3986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3987 = load i32, ptr %3986, align 4, !tbaa !5
  %3988 = call ptr @s2n_strerror_debug(i32 noundef %3987, ptr noundef @.str.4)
  %3989 = call ptr @__errno_location() #11
  %3990 = load i32, ptr %3989, align 4, !tbaa !5
  %3991 = call ptr @strerror(i32 noundef %3990) #10
  %3992 = call ptr @__errno_location() #11
  %3993 = load i32, ptr %3992, align 4, !tbaa !5
  %3994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3981, ptr noundef @.str.2, i32 noundef %3982, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3985, ptr noundef %3988, ptr noundef %3991, i32 noundef %3993) #10
  br label %4012

3995:                                             ; preds = %3973, %3966
  %3996 = load i32, ptr %83, align 4, !tbaa !5
  %3997 = call ptr @__errno_location() #11
  store i32 %3996, ptr %3997, align 4, !tbaa !5
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = load i32, ptr @test_count, align 4, !tbaa !5
  %4000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call ptr @s2n_strerror(i32 noundef %4001, ptr noundef @.str.4)
  %4003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call ptr @s2n_strerror_debug(i32 noundef %4004, ptr noundef @.str.4)
  %4006 = call ptr @__errno_location() #11
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  %4008 = call ptr @strerror(i32 noundef %4007) #10
  %4009 = call ptr @__errno_location() #11
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3998, ptr noundef @.str.5, i32 noundef %3999, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4002, ptr noundef %4005, ptr noundef %4008, i32 noundef %4010) #10
  br label %4012

4012:                                             ; preds = %3995, %3978
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %4013

4013:                                             ; preds = %4012
  br label %4014

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

4015:                                             ; No predecessors!
  br label %4016

4016:                                             ; preds = %4015
  br label %4017

4017:                                             ; preds = %4016, %3959
  br label %4018

4018:                                             ; preds = %4017
  br label %4019

4019:                                             ; preds = %4018
  br label %4020

4020:                                             ; preds = %4019
  %4021 = load i32, ptr @test_count, align 4, !tbaa !5
  %4022 = add nsw i32 %4021, 1
  store i32 %4022, ptr @test_count, align 4, !tbaa !5
  %4023 = load ptr, ptr %39, align 8, !tbaa !9
  %4024 = getelementptr inbounds %struct.s2n_security_policy, ptr %4023, i32 0, i32 2
  %4025 = load ptr, ptr %4024, align 8, !tbaa !20
  %4026 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4025, i32 0, i32 0
  %4027 = load i8, ptr %4026, align 8, !tbaa !50
  %4028 = zext i8 %4027 to i32
  %4029 = icmp eq i32 0, %4028
  br i1 %4029, label %4083, label %4030

4030:                                             ; preds = %4020
  br label %4031

4031:                                             ; preds = %4030
  br label %4032

4032:                                             ; preds = %4031
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %4033 = call ptr @__errno_location() #11
  %4034 = load i32, ptr %4033, align 4, !tbaa !5
  store i32 %4034, ptr %84, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @s2n_print_stacktrace(ptr noundef %4035)
  %4037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4038 = trunc i8 %4037 to i1
  br i1 %4038, label %4039, label %4061

4039:                                             ; preds = %4032
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = call i32 @fileno(ptr noundef %4040) #10
  %4042 = call i32 @isatty(i32 noundef %4041) #10
  %4043 = icmp ne i32 %4042, 0
  br i1 %4043, label %4044, label %4061

4044:                                             ; preds = %4039
  %4045 = load i32, ptr %84, align 4, !tbaa !5
  %4046 = call ptr @__errno_location() #11
  store i32 %4045, ptr %4046, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror(i32 noundef %4050, ptr noundef @.str.4)
  %4052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror_debug(i32 noundef %4053, ptr noundef @.str.4)
  %4055 = call ptr @__errno_location() #11
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @strerror(i32 noundef %4056) #10
  %4058 = call ptr @__errno_location() #11
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4047, ptr noundef @.str.2, i32 noundef %4048, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4051, ptr noundef %4054, ptr noundef %4057, i32 noundef %4059) #10
  br label %4078

4061:                                             ; preds = %4039, %4032
  %4062 = load i32, ptr %84, align 4, !tbaa !5
  %4063 = call ptr @__errno_location() #11
  store i32 %4062, ptr %4063, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef @.str.4)
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror_debug(i32 noundef %4070, ptr noundef @.str.4)
  %4072 = call ptr @__errno_location() #11
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #10
  %4075 = call ptr @__errno_location() #11
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef @.str.5, i32 noundef %4065, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4068, ptr noundef %4071, ptr noundef %4074, i32 noundef %4076) #10
  br label %4078

4078:                                             ; preds = %4061, %4044
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

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

4081:                                             ; No predecessors!
  br label %4082

4082:                                             ; preds = %4081
  br label %4083

4083:                                             ; preds = %4082, %4020
  br label %4084

4084:                                             ; preds = %4083
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

4086:                                             ; preds = %4085
  %4087 = load i32, ptr @test_count, align 4, !tbaa !5
  %4088 = add nsw i32 %4087, 1
  store i32 %4088, ptr @test_count, align 4, !tbaa !5
  %4089 = load ptr, ptr %39, align 8, !tbaa !9
  %4090 = getelementptr inbounds %struct.s2n_security_policy, ptr %4089, i32 0, i32 2
  %4091 = load ptr, ptr %4090, align 8, !tbaa !20
  %4092 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4091, i32 0, i32 1
  %4093 = load ptr, ptr %4092, align 8, !tbaa !49
  %4094 = icmp eq ptr %4093, null
  br i1 %4094, label %4148, label %4095

4095:                                             ; preds = %4086
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

4097:                                             ; preds = %4096
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %4098 = call ptr @__errno_location() #11
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  store i32 %4099, ptr %85, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @s2n_print_stacktrace(ptr noundef %4100)
  %4102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4103 = trunc i8 %4102 to i1
  br i1 %4103, label %4104, label %4126

4104:                                             ; preds = %4097
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = call i32 @fileno(ptr noundef %4105) #10
  %4107 = call i32 @isatty(i32 noundef %4106) #10
  %4108 = icmp ne i32 %4107, 0
  br i1 %4108, label %4109, label %4126

4109:                                             ; preds = %4104
  %4110 = load i32, ptr %85, align 4, !tbaa !5
  %4111 = call ptr @__errno_location() #11
  store i32 %4110, ptr %4111, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @s2n_strerror(i32 noundef %4115, ptr noundef @.str.4)
  %4117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror_debug(i32 noundef %4118, ptr noundef @.str.4)
  %4120 = call ptr @__errno_location() #11
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @strerror(i32 noundef %4121) #10
  %4123 = call ptr @__errno_location() #11
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4112, ptr noundef @.str.2, i32 noundef %4113, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 246, ptr noundef %4116, ptr noundef %4119, ptr noundef %4122, i32 noundef %4124) #10
  br label %4143

4126:                                             ; preds = %4104, %4097
  %4127 = load i32, ptr %85, align 4, !tbaa !5
  %4128 = call ptr @__errno_location() #11
  store i32 %4127, ptr %4128, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @s2n_strerror(i32 noundef %4132, ptr noundef @.str.4)
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror_debug(i32 noundef %4135, ptr noundef @.str.4)
  %4137 = call ptr @__errno_location() #11
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @strerror(i32 noundef %4138) #10
  %4140 = call ptr @__errno_location() #11
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4129, ptr noundef @.str.5, i32 noundef %4130, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 246, ptr noundef %4133, ptr noundef %4136, ptr noundef %4139, i32 noundef %4141) #10
  br label %4143

4143:                                             ; preds = %4126, %4109
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

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

4146:                                             ; No predecessors!
  br label %4147

4147:                                             ; preds = %4146
  br label %4148

4148:                                             ; preds = %4147, %4086
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  br label %4151

4151:                                             ; preds = %4150
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = add nsw i32 %4152, 1
  store i32 %4153, ptr @test_count, align 4, !tbaa !5
  %4154 = load ptr, ptr %39, align 8, !tbaa !9
  %4155 = getelementptr inbounds %struct.s2n_security_policy, ptr %4154, i32 0, i32 2
  %4156 = load ptr, ptr %4155, align 8, !tbaa !20
  %4157 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4156, i32 0, i32 3
  %4158 = load ptr, ptr %4157, align 8, !tbaa !24
  %4159 = icmp eq ptr %4158, null
  br i1 %4159, label %4213, label %4160

4160:                                             ; preds = %4151
  br label %4161

4161:                                             ; preds = %4160
  br label %4162

4162:                                             ; preds = %4161
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %4163 = call ptr @__errno_location() #11
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  store i32 %4164, ptr %86, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = call i32 @s2n_print_stacktrace(ptr noundef %4165)
  %4167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4168 = trunc i8 %4167 to i1
  br i1 %4168, label %4169, label %4191

4169:                                             ; preds = %4162
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4171 = call i32 @fileno(ptr noundef %4170) #10
  %4172 = call i32 @isatty(i32 noundef %4171) #10
  %4173 = icmp ne i32 %4172, 0
  br i1 %4173, label %4174, label %4191

4174:                                             ; preds = %4169
  %4175 = load i32, ptr %86, align 4, !tbaa !5
  %4176 = call ptr @__errno_location() #11
  store i32 %4175, ptr %4176, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = load i32, ptr @test_count, align 4, !tbaa !5
  %4179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror(i32 noundef %4180, ptr noundef @.str.4)
  %4182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror_debug(i32 noundef %4183, ptr noundef @.str.4)
  %4185 = call ptr @__errno_location() #11
  %4186 = load i32, ptr %4185, align 4, !tbaa !5
  %4187 = call ptr @strerror(i32 noundef %4186) #10
  %4188 = call ptr @__errno_location() #11
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4177, ptr noundef @.str.2, i32 noundef %4178, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 247, ptr noundef %4181, ptr noundef %4184, ptr noundef %4187, i32 noundef %4189) #10
  br label %4208

4191:                                             ; preds = %4169, %4162
  %4192 = load i32, ptr %86, align 4, !tbaa !5
  %4193 = call ptr @__errno_location() #11
  store i32 %4192, ptr %4193, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = load i32, ptr @test_count, align 4, !tbaa !5
  %4196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  %4198 = call ptr @s2n_strerror(i32 noundef %4197, ptr noundef @.str.4)
  %4199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4200 = load i32, ptr %4199, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror_debug(i32 noundef %4200, ptr noundef @.str.4)
  %4202 = call ptr @__errno_location() #11
  %4203 = load i32, ptr %4202, align 4, !tbaa !5
  %4204 = call ptr @strerror(i32 noundef %4203) #10
  %4205 = call ptr @__errno_location() #11
  %4206 = load i32, ptr %4205, align 4, !tbaa !5
  %4207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4194, ptr noundef @.str.5, i32 noundef %4195, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 247, ptr noundef %4198, ptr noundef %4201, ptr noundef %4204, i32 noundef %4206) #10
  br label %4208

4208:                                             ; preds = %4191, %4174
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %4209

4209:                                             ; preds = %4208
  br label %4210

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

4211:                                             ; No predecessors!
  br label %4212

4212:                                             ; preds = %4211
  br label %4213

4213:                                             ; preds = %4212, %4151
  br label %4214

4214:                                             ; preds = %4213
  br label %4215

4215:                                             ; preds = %4214
  br label %4216

4216:                                             ; preds = %4215
  %4217 = load i32, ptr @test_count, align 4, !tbaa !5
  %4218 = add nsw i32 %4217, 1
  store i32 %4218, ptr @test_count, align 4, !tbaa !5
  %4219 = load ptr, ptr %39, align 8, !tbaa !9
  %4220 = getelementptr inbounds %struct.s2n_security_policy, ptr %4219, i32 0, i32 2
  %4221 = load ptr, ptr %4220, align 8, !tbaa !20
  %4222 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4221, i32 0, i32 2
  %4223 = load i8, ptr %4222, align 8, !tbaa !22
  %4224 = zext i8 %4223 to i32
  %4225 = icmp eq i32 0, %4224
  br i1 %4225, label %4279, label %4226

4226:                                             ; preds = %4216
  br label %4227

4227:                                             ; preds = %4226
  br label %4228

4228:                                             ; preds = %4227
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %4229 = call ptr @__errno_location() #11
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  store i32 %4230, ptr %87, align 4, !tbaa !5
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @s2n_print_stacktrace(ptr noundef %4231)
  %4233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4234 = trunc i8 %4233 to i1
  br i1 %4234, label %4235, label %4257

4235:                                             ; preds = %4228
  %4236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4237 = call i32 @fileno(ptr noundef %4236) #10
  %4238 = call i32 @isatty(i32 noundef %4237) #10
  %4239 = icmp ne i32 %4238, 0
  br i1 %4239, label %4240, label %4257

4240:                                             ; preds = %4235
  %4241 = load i32, ptr %87, align 4, !tbaa !5
  %4242 = call ptr @__errno_location() #11
  store i32 %4241, ptr %4242, align 4, !tbaa !5
  %4243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4244 = load i32, ptr @test_count, align 4, !tbaa !5
  %4245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call ptr @s2n_strerror(i32 noundef %4246, ptr noundef @.str.4)
  %4248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  %4250 = call ptr @s2n_strerror_debug(i32 noundef %4249, ptr noundef @.str.4)
  %4251 = call ptr @__errno_location() #11
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call ptr @strerror(i32 noundef %4252) #10
  %4254 = call ptr @__errno_location() #11
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4243, ptr noundef @.str.2, i32 noundef %4244, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 248, ptr noundef %4247, ptr noundef %4250, ptr noundef %4253, i32 noundef %4255) #10
  br label %4274

4257:                                             ; preds = %4235, %4228
  %4258 = load i32, ptr %87, align 4, !tbaa !5
  %4259 = call ptr @__errno_location() #11
  store i32 %4258, ptr %4259, align 4, !tbaa !5
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = load i32, ptr @test_count, align 4, !tbaa !5
  %4262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4263 = load i32, ptr %4262, align 4, !tbaa !5
  %4264 = call ptr @s2n_strerror(i32 noundef %4263, ptr noundef @.str.4)
  %4265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4266 = load i32, ptr %4265, align 4, !tbaa !5
  %4267 = call ptr @s2n_strerror_debug(i32 noundef %4266, ptr noundef @.str.4)
  %4268 = call ptr @__errno_location() #11
  %4269 = load i32, ptr %4268, align 4, !tbaa !5
  %4270 = call ptr @strerror(i32 noundef %4269) #10
  %4271 = call ptr @__errno_location() #11
  %4272 = load i32, ptr %4271, align 4, !tbaa !5
  %4273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4260, ptr noundef @.str.5, i32 noundef %4261, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 248, ptr noundef %4264, ptr noundef %4267, ptr noundef %4270, i32 noundef %4272) #10
  br label %4274

4274:                                             ; preds = %4257, %4240
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

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

4277:                                             ; No predecessors!
  br label %4278

4278:                                             ; preds = %4277
  br label %4279

4279:                                             ; preds = %4278, %4216
  br label %4280

4280:                                             ; preds = %4279
  br label %4281

4281:                                             ; preds = %4280
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %4282

4282:                                             ; preds = %4281
  %4283 = load i32, ptr @test_count, align 4, !tbaa !5
  %4284 = add nsw i32 %4283, 1
  store i32 %4284, ptr @test_count, align 4, !tbaa !5
  %4285 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.62, ptr noundef %39)
  %4286 = icmp eq i32 %4285, -1
  br i1 %4286, label %4287, label %4340

4287:                                             ; preds = %4282
  br label %4288

4288:                                             ; preds = %4287
  br label %4289

4289:                                             ; preds = %4288
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %4290 = call ptr @__errno_location() #11
  %4291 = load i32, ptr %4290, align 4, !tbaa !5
  store i32 %4291, ptr %88, align 4, !tbaa !5
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = call i32 @s2n_print_stacktrace(ptr noundef %4292)
  %4294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4295 = trunc i8 %4294 to i1
  br i1 %4295, label %4296, label %4318

4296:                                             ; preds = %4289
  %4297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4298 = call i32 @fileno(ptr noundef %4297) #10
  %4299 = call i32 @isatty(i32 noundef %4298) #10
  %4300 = icmp ne i32 %4299, 0
  br i1 %4300, label %4301, label %4318

4301:                                             ; preds = %4296
  %4302 = load i32, ptr %88, align 4, !tbaa !5
  %4303 = call ptr @__errno_location() #11
  store i32 %4302, ptr %4303, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call ptr @s2n_strerror(i32 noundef %4307, ptr noundef @.str.4)
  %4309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror_debug(i32 noundef %4310, ptr noundef @.str.4)
  %4312 = call ptr @__errno_location() #11
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call ptr @strerror(i32 noundef %4313) #10
  %4315 = call ptr @__errno_location() #11
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4304, ptr noundef @.str.2, i32 noundef %4305, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 251, ptr noundef %4308, ptr noundef %4311, ptr noundef %4314, i32 noundef %4316) #10
  br label %4335

4318:                                             ; preds = %4296, %4289
  %4319 = load i32, ptr %88, align 4, !tbaa !5
  %4320 = call ptr @__errno_location() #11
  store i32 %4319, ptr %4320, align 4, !tbaa !5
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = load i32, ptr @test_count, align 4, !tbaa !5
  %4323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call ptr @s2n_strerror(i32 noundef %4324, ptr noundef @.str.4)
  %4326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call ptr @s2n_strerror_debug(i32 noundef %4327, ptr noundef @.str.4)
  %4329 = call ptr @__errno_location() #11
  %4330 = load i32, ptr %4329, align 4, !tbaa !5
  %4331 = call ptr @strerror(i32 noundef %4330) #10
  %4332 = call ptr @__errno_location() #11
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4321, ptr noundef @.str.5, i32 noundef %4322, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 251, ptr noundef %4325, ptr noundef %4328, ptr noundef %4331, i32 noundef %4333) #10
  br label %4335

4335:                                             ; preds = %4318, %4301
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %4336

4336:                                             ; preds = %4335
  br label %4337

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

4338:                                             ; No predecessors!
  br label %4339

4339:                                             ; preds = %4338
  br label %4340

4340:                                             ; preds = %4339, %4282
  br label %4341

4341:                                             ; preds = %4340
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

4343:                                             ; preds = %4342
  %4344 = load i32, ptr @test_count, align 4, !tbaa !5
  %4345 = add nsw i32 %4344, 1
  store i32 %4345, ptr @test_count, align 4, !tbaa !5
  %4346 = load ptr, ptr %39, align 8, !tbaa !9
  %4347 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %4346)
  br i1 %4347, label %4401, label %4348

4348:                                             ; preds = %4343
  br label %4349

4349:                                             ; preds = %4348
  br label %4350

4350:                                             ; preds = %4349
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %4351 = call ptr @__errno_location() #11
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  store i32 %4352, ptr %89, align 4, !tbaa !5
  %4353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4354 = call i32 @s2n_print_stacktrace(ptr noundef %4353)
  %4355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4356 = trunc i8 %4355 to i1
  br i1 %4356, label %4357, label %4379

4357:                                             ; preds = %4350
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = call i32 @fileno(ptr noundef %4358) #10
  %4360 = call i32 @isatty(i32 noundef %4359) #10
  %4361 = icmp ne i32 %4360, 0
  br i1 %4361, label %4362, label %4379

4362:                                             ; preds = %4357
  %4363 = load i32, ptr %89, align 4, !tbaa !5
  %4364 = call ptr @__errno_location() #11
  store i32 %4363, ptr %4364, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = load i32, ptr @test_count, align 4, !tbaa !5
  %4367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror(i32 noundef %4368, ptr noundef @.str.4)
  %4370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror_debug(i32 noundef %4371, ptr noundef @.str.4)
  %4373 = call ptr @__errno_location() #11
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @strerror(i32 noundef %4374) #10
  %4376 = call ptr @__errno_location() #11
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4365, ptr noundef @.str.2, i32 noundef %4366, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 252, ptr noundef %4369, ptr noundef %4372, ptr noundef %4375, i32 noundef %4377) #10
  br label %4396

4379:                                             ; preds = %4357, %4350
  %4380 = load i32, ptr %89, align 4, !tbaa !5
  %4381 = call ptr @__errno_location() #11
  store i32 %4380, ptr %4381, align 4, !tbaa !5
  %4382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4383 = load i32, ptr @test_count, align 4, !tbaa !5
  %4384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4385 = load i32, ptr %4384, align 4, !tbaa !5
  %4386 = call ptr @s2n_strerror(i32 noundef %4385, ptr noundef @.str.4)
  %4387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4388 = load i32, ptr %4387, align 4, !tbaa !5
  %4389 = call ptr @s2n_strerror_debug(i32 noundef %4388, ptr noundef @.str.4)
  %4390 = call ptr @__errno_location() #11
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = call ptr @strerror(i32 noundef %4391) #10
  %4393 = call ptr @__errno_location() #11
  %4394 = load i32, ptr %4393, align 4, !tbaa !5
  %4395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4382, ptr noundef @.str.5, i32 noundef %4383, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 252, ptr noundef %4386, ptr noundef %4389, ptr noundef %4392, i32 noundef %4394) #10
  br label %4396

4396:                                             ; preds = %4379, %4362
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %4397

4397:                                             ; preds = %4396
  br label %4398

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

4399:                                             ; No predecessors!
  br label %4400

4400:                                             ; preds = %4399
  br label %4401

4401:                                             ; preds = %4400, %4343
  br label %4402

4402:                                             ; preds = %4401
  br label %4403

4403:                                             ; preds = %4402
  br label %4404

4404:                                             ; preds = %4403
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = add nsw i32 %4405, 1
  store i32 %4406, ptr @test_count, align 4, !tbaa !5
  %4407 = load ptr, ptr %39, align 8, !tbaa !9
  %4408 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %4407)
  br i1 %4408, label %4409, label %4462

4409:                                             ; preds = %4404
  br label %4410

4410:                                             ; preds = %4409
  br label %4411

4411:                                             ; preds = %4410
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %4412 = call ptr @__errno_location() #11
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  store i32 %4413, ptr %90, align 4, !tbaa !5
  %4414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4415 = call i32 @s2n_print_stacktrace(ptr noundef %4414)
  %4416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4417 = trunc i8 %4416 to i1
  br i1 %4417, label %4418, label %4440

4418:                                             ; preds = %4411
  %4419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4420 = call i32 @fileno(ptr noundef %4419) #10
  %4421 = call i32 @isatty(i32 noundef %4420) #10
  %4422 = icmp ne i32 %4421, 0
  br i1 %4422, label %4423, label %4440

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

4440:                                             ; preds = %4418, %4411
  %4441 = load i32, ptr %90, align 4, !tbaa !5
  %4442 = call ptr @__errno_location() #11
  store i32 %4441, ptr %4442, align 4, !tbaa !5
  %4443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4444 = load i32, ptr @test_count, align 4, !tbaa !5
  %4445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror(i32 noundef %4446, ptr noundef @.str.4)
  %4448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call ptr @s2n_strerror_debug(i32 noundef %4449, ptr noundef @.str.4)
  %4451 = call ptr @__errno_location() #11
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call ptr @strerror(i32 noundef %4452) #10
  %4454 = call ptr @__errno_location() #11
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4443, ptr noundef @.str.5, i32 noundef %4444, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4447, ptr noundef %4450, ptr noundef %4453, i32 noundef %4455) #10
  br label %4457

4457:                                             ; preds = %4440, %4423
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

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

4460:                                             ; No predecessors!
  br label %4461

4461:                                             ; preds = %4460
  br label %4462

4462:                                             ; preds = %4461, %4404
  br label %4463

4463:                                             ; preds = %4462
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

4465:                                             ; preds = %4464
  %4466 = load i32, ptr @test_count, align 4, !tbaa !5
  %4467 = add nsw i32 %4466, 1
  store i32 %4467, ptr @test_count, align 4, !tbaa !5
  %4468 = load ptr, ptr %39, align 8, !tbaa !9
  %4469 = getelementptr inbounds %struct.s2n_security_policy, ptr %4468, i32 0, i32 2
  %4470 = load ptr, ptr %4469, align 8, !tbaa !20
  %4471 = icmp eq ptr %4470, @kem_preferences_pq_tls_1_3_2023_06
  br i1 %4471, label %4525, label %4472

4472:                                             ; preds = %4465
  br label %4473

4473:                                             ; preds = %4472
  br label %4474

4474:                                             ; preds = %4473
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %4475 = call ptr @__errno_location() #11
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  store i32 %4476, ptr %91, align 4, !tbaa !5
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = call i32 @s2n_print_stacktrace(ptr noundef %4477)
  %4479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4480 = trunc i8 %4479 to i1
  br i1 %4480, label %4481, label %4503

4481:                                             ; preds = %4474
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = call i32 @fileno(ptr noundef %4482) #10
  %4484 = call i32 @isatty(i32 noundef %4483) #10
  %4485 = icmp ne i32 %4484, 0
  br i1 %4485, label %4486, label %4503

4486:                                             ; preds = %4481
  %4487 = load i32, ptr %91, align 4, !tbaa !5
  %4488 = call ptr @__errno_location() #11
  store i32 %4487, ptr %4488, align 4, !tbaa !5
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = load i32, ptr @test_count, align 4, !tbaa !5
  %4491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4492 = load i32, ptr %4491, align 4, !tbaa !5
  %4493 = call ptr @s2n_strerror(i32 noundef %4492, ptr noundef @.str.4)
  %4494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call ptr @s2n_strerror_debug(i32 noundef %4495, ptr noundef @.str.4)
  %4497 = call ptr @__errno_location() #11
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @strerror(i32 noundef %4498) #10
  %4500 = call ptr @__errno_location() #11
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4489, ptr noundef @.str.2, i32 noundef %4490, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4493, ptr noundef %4496, ptr noundef %4499, i32 noundef %4501) #10
  br label %4520

4503:                                             ; preds = %4481, %4474
  %4504 = load i32, ptr %91, align 4, !tbaa !5
  %4505 = call ptr @__errno_location() #11
  store i32 %4504, ptr %4505, align 4, !tbaa !5
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = load i32, ptr @test_count, align 4, !tbaa !5
  %4508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call ptr @s2n_strerror(i32 noundef %4509, ptr noundef @.str.4)
  %4511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4512 = load i32, ptr %4511, align 4, !tbaa !5
  %4513 = call ptr @s2n_strerror_debug(i32 noundef %4512, ptr noundef @.str.4)
  %4514 = call ptr @__errno_location() #11
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  %4516 = call ptr @strerror(i32 noundef %4515) #10
  %4517 = call ptr @__errno_location() #11
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4506, ptr noundef @.str.5, i32 noundef %4507, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4510, ptr noundef %4513, ptr noundef %4516, i32 noundef %4518) #10
  br label %4520

4520:                                             ; preds = %4503, %4486
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

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

4523:                                             ; No predecessors!
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

4525:                                             ; preds = %4524, %4465
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

4527:                                             ; preds = %4526
  br label %4528

4528:                                             ; preds = %4527
  %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 = load ptr, ptr %39, align 8, !tbaa !9
  %4532 = getelementptr inbounds %struct.s2n_security_policy, ptr %4531, i32 0, i32 2
  %4533 = load ptr, ptr %4532, align 8, !tbaa !20
  %4534 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4533, i32 0, i32 0
  %4535 = load i8, ptr %4534, align 8, !tbaa !50
  %4536 = zext i8 %4535 to i32
  %4537 = icmp eq i32 0, %4536
  br i1 %4537, label %4591, label %4538

4538:                                             ; preds = %4528
  br label %4539

4539:                                             ; preds = %4538
  br label %4540

4540:                                             ; preds = %4539
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %4541 = call ptr @__errno_location() #11
  %4542 = load i32, ptr %4541, align 4, !tbaa !5
  store i32 %4542, ptr %92, align 4, !tbaa !5
  %4543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4544 = call i32 @s2n_print_stacktrace(ptr noundef %4543)
  %4545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4546 = trunc i8 %4545 to i1
  br i1 %4546, label %4547, label %4569

4547:                                             ; preds = %4540
  %4548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4549 = call i32 @fileno(ptr noundef %4548) #10
  %4550 = call i32 @isatty(i32 noundef %4549) #10
  %4551 = icmp ne i32 %4550, 0
  br i1 %4551, label %4552, label %4569

4552:                                             ; preds = %4547
  %4553 = load i32, ptr %92, align 4, !tbaa !5
  %4554 = call ptr @__errno_location() #11
  store i32 %4553, ptr %4554, align 4, !tbaa !5
  %4555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4556 = load i32, ptr @test_count, align 4, !tbaa !5
  %4557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call ptr @s2n_strerror(i32 noundef %4558, ptr noundef @.str.4)
  %4560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  %4562 = call ptr @s2n_strerror_debug(i32 noundef %4561, ptr noundef @.str.4)
  %4563 = call ptr @__errno_location() #11
  %4564 = load i32, ptr %4563, align 4, !tbaa !5
  %4565 = call ptr @strerror(i32 noundef %4564) #10
  %4566 = call ptr @__errno_location() #11
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  %4568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4555, ptr noundef @.str.2, i32 noundef %4556, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4559, ptr noundef %4562, ptr noundef %4565, i32 noundef %4567) #10
  br label %4586

4569:                                             ; preds = %4547, %4540
  %4570 = load i32, ptr %92, align 4, !tbaa !5
  %4571 = call ptr @__errno_location() #11
  store i32 %4570, ptr %4571, align 4, !tbaa !5
  %4572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4573 = load i32, ptr @test_count, align 4, !tbaa !5
  %4574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @s2n_strerror(i32 noundef %4575, ptr noundef @.str.4)
  %4577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call ptr @s2n_strerror_debug(i32 noundef %4578, ptr noundef @.str.4)
  %4580 = call ptr @__errno_location() #11
  %4581 = load i32, ptr %4580, align 4, !tbaa !5
  %4582 = call ptr @strerror(i32 noundef %4581) #10
  %4583 = call ptr @__errno_location() #11
  %4584 = load i32, ptr %4583, align 4, !tbaa !5
  %4585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4572, ptr noundef @.str.5, i32 noundef %4573, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4576, ptr noundef %4579, ptr noundef %4582, i32 noundef %4584) #10
  br label %4586

4586:                                             ; preds = %4569, %4552
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

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

4589:                                             ; No predecessors!
  br label %4590

4590:                                             ; preds = %4589
  br label %4591

4591:                                             ; preds = %4590, %4528
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592
  br label %4594

4594:                                             ; preds = %4593
  %4595 = load i32, ptr @test_count, align 4, !tbaa !5
  %4596 = add nsw i32 %4595, 1
  store i32 %4596, ptr @test_count, align 4, !tbaa !5
  %4597 = load ptr, ptr %39, align 8, !tbaa !9
  %4598 = getelementptr inbounds %struct.s2n_security_policy, ptr %4597, i32 0, i32 2
  %4599 = load ptr, ptr %4598, align 8, !tbaa !20
  %4600 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4599, i32 0, i32 1
  %4601 = load ptr, ptr %4600, align 8, !tbaa !49
  %4602 = icmp eq ptr %4601, null
  br i1 %4602, label %4656, label %4603

4603:                                             ; preds = %4594
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

4605:                                             ; preds = %4604
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %4606 = call ptr @__errno_location() #11
  %4607 = load i32, ptr %4606, align 4, !tbaa !5
  store i32 %4607, ptr %93, align 4, !tbaa !5
  %4608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4609 = call i32 @s2n_print_stacktrace(ptr noundef %4608)
  %4610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4611 = trunc i8 %4610 to i1
  br i1 %4611, label %4612, label %4634

4612:                                             ; preds = %4605
  %4613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4614 = call i32 @fileno(ptr noundef %4613) #10
  %4615 = call i32 @isatty(i32 noundef %4614) #10
  %4616 = icmp ne i32 %4615, 0
  br i1 %4616, label %4617, label %4634

4617:                                             ; preds = %4612
  %4618 = load i32, ptr %93, align 4, !tbaa !5
  %4619 = call ptr @__errno_location() #11
  store i32 %4618, ptr %4619, align 4, !tbaa !5
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = load i32, ptr @test_count, align 4, !tbaa !5
  %4622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4623 = load i32, ptr %4622, align 4, !tbaa !5
  %4624 = call ptr @s2n_strerror(i32 noundef %4623, ptr noundef @.str.4)
  %4625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4626 = load i32, ptr %4625, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror_debug(i32 noundef %4626, ptr noundef @.str.4)
  %4628 = call ptr @__errno_location() #11
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  %4630 = call ptr @strerror(i32 noundef %4629) #10
  %4631 = call ptr @__errno_location() #11
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4620, ptr noundef @.str.2, i32 noundef %4621, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4624, ptr noundef %4627, ptr noundef %4630, i32 noundef %4632) #10
  br label %4651

4634:                                             ; preds = %4612, %4605
  %4635 = load i32, ptr %93, align 4, !tbaa !5
  %4636 = call ptr @__errno_location() #11
  store i32 %4635, ptr %4636, align 4, !tbaa !5
  %4637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4638 = load i32, ptr @test_count, align 4, !tbaa !5
  %4639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4640 = load i32, ptr %4639, align 4, !tbaa !5
  %4641 = call ptr @s2n_strerror(i32 noundef %4640, ptr noundef @.str.4)
  %4642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4643 = load i32, ptr %4642, align 4, !tbaa !5
  %4644 = call ptr @s2n_strerror_debug(i32 noundef %4643, ptr noundef @.str.4)
  %4645 = call ptr @__errno_location() #11
  %4646 = load i32, ptr %4645, align 4, !tbaa !5
  %4647 = call ptr @strerror(i32 noundef %4646) #10
  %4648 = call ptr @__errno_location() #11
  %4649 = load i32, ptr %4648, align 4, !tbaa !5
  %4650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4637, ptr noundef @.str.5, i32 noundef %4638, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4641, ptr noundef %4644, ptr noundef %4647, i32 noundef %4649) #10
  br label %4651

4651:                                             ; preds = %4634, %4617
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %4652

4652:                                             ; preds = %4651
  br label %4653

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

4654:                                             ; No predecessors!
  br label %4655

4655:                                             ; preds = %4654
  br label %4656

4656:                                             ; preds = %4655, %4594
  br label %4657

4657:                                             ; preds = %4656
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

4659:                                             ; preds = %4658
  %4660 = load i32, ptr @test_count, align 4, !tbaa !5
  %4661 = add nsw i32 %4660, 1
  store i32 %4661, ptr @test_count, align 4, !tbaa !5
  %4662 = load ptr, ptr %39, align 8, !tbaa !9
  %4663 = getelementptr inbounds %struct.s2n_security_policy, ptr %4662, i32 0, i32 2
  %4664 = load ptr, ptr %4663, align 8, !tbaa !20
  %4665 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4664, i32 0, i32 3
  %4666 = load ptr, ptr %4665, align 8, !tbaa !24
  %4667 = icmp eq ptr %4666, null
  br i1 %4667, label %4668, label %4721

4668:                                             ; preds = %4659
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %4671 = call ptr @__errno_location() #11
  %4672 = load i32, ptr %4671, align 4, !tbaa !5
  store i32 %4672, ptr %94, align 4, !tbaa !5
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = call i32 @s2n_print_stacktrace(ptr noundef %4673)
  %4675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4676 = trunc i8 %4675 to i1
  br i1 %4676, label %4677, label %4699

4677:                                             ; preds = %4670
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = call i32 @fileno(ptr noundef %4678) #10
  %4680 = call i32 @isatty(i32 noundef %4679) #10
  %4681 = icmp ne i32 %4680, 0
  br i1 %4681, label %4682, label %4699

4682:                                             ; preds = %4677
  %4683 = load i32, ptr %94, align 4, !tbaa !5
  %4684 = call ptr @__errno_location() #11
  store i32 %4683, ptr %4684, align 4, !tbaa !5
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror(i32 noundef %4688, ptr noundef @.str.4)
  %4690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror_debug(i32 noundef %4691, ptr noundef @.str.4)
  %4693 = call ptr @__errno_location() #11
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call ptr @strerror(i32 noundef %4694) #10
  %4696 = call ptr @__errno_location() #11
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4685, ptr noundef @.str.2, i32 noundef %4686, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 257, ptr noundef %4689, ptr noundef %4692, ptr noundef %4695, i32 noundef %4697) #10
  br label %4716

4699:                                             ; preds = %4677, %4670
  %4700 = load i32, ptr %94, align 4, !tbaa !5
  %4701 = call ptr @__errno_location() #11
  store i32 %4700, ptr %4701, align 4, !tbaa !5
  %4702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4703 = load i32, ptr @test_count, align 4, !tbaa !5
  %4704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4705 = load i32, ptr %4704, align 4, !tbaa !5
  %4706 = call ptr @s2n_strerror(i32 noundef %4705, ptr noundef @.str.4)
  %4707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror_debug(i32 noundef %4708, ptr noundef @.str.4)
  %4710 = call ptr @__errno_location() #11
  %4711 = load i32, ptr %4710, align 4, !tbaa !5
  %4712 = call ptr @strerror(i32 noundef %4711) #10
  %4713 = call ptr @__errno_location() #11
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4702, ptr noundef @.str.5, i32 noundef %4703, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 257, ptr noundef %4706, ptr noundef %4709, ptr noundef %4712, i32 noundef %4714) #10
  br label %4716

4716:                                             ; preds = %4699, %4682
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

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

4719:                                             ; No predecessors!
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720, %4659
  br label %4722

4722:                                             ; preds = %4721
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

4724:                                             ; preds = %4723
  %4725 = load i32, ptr @test_count, align 4, !tbaa !5
  %4726 = add nsw i32 %4725, 1
  store i32 %4726, ptr @test_count, align 4, !tbaa !5
  %4727 = load ptr, ptr %39, align 8, !tbaa !9
  %4728 = getelementptr inbounds %struct.s2n_security_policy, ptr %4727, i32 0, i32 2
  %4729 = load ptr, ptr %4728, align 8, !tbaa !20
  %4730 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4729, i32 0, i32 3
  %4731 = load ptr, ptr %4730, align 8, !tbaa !24
  %4732 = icmp eq ptr %4731, @pq_kem_groups_r3_2023_06
  br i1 %4732, label %4786, label %4733

4733:                                             ; preds = %4724
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

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

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

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

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

4781:                                             ; preds = %4764, %4747
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

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

4784:                                             ; No predecessors!
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785, %4724
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  br label %4789

4789:                                             ; preds = %4788
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = add nsw i32 %4790, 1
  store i32 %4791, ptr @test_count, align 4, !tbaa !5
  %4792 = load ptr, ptr %39, align 8, !tbaa !9
  %4793 = getelementptr inbounds %struct.s2n_security_policy, ptr %4792, i32 0, i32 2
  %4794 = load ptr, ptr %4793, align 8, !tbaa !20
  %4795 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4794, i32 0, i32 2
  %4796 = load i8, ptr %4795, align 8, !tbaa !22
  %4797 = zext i8 %4796 to i32
  %4798 = icmp eq i32 6, %4797
  br i1 %4798, label %4852, label %4799

4799:                                             ; preds = %4789
  br label %4800

4800:                                             ; preds = %4799
  br label %4801

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

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

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

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

4847:                                             ; preds = %4830, %4813
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

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

4850:                                             ; No predecessors!
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

4852:                                             ; preds = %4851, %4789
  br label %4853

4853:                                             ; preds = %4852
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

4855:                                             ; preds = %4854
  %4856 = load i32, ptr @test_count, align 4, !tbaa !5
  %4857 = add nsw i32 %4856, 1
  store i32 %4857, ptr @test_count, align 4, !tbaa !5
  %4858 = load ptr, ptr %39, align 8, !tbaa !9
  %4859 = getelementptr inbounds %struct.s2n_security_policy, ptr %4858, i32 0, i32 2
  %4860 = load ptr, ptr %4859, align 8, !tbaa !20
  %4861 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %4860, ptr noundef %73)
  %4862 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  store i32 %4861, ptr %4862, align 4
  %4863 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  %4864 = load i32, ptr %4863, align 4
  %4865 = call zeroext i1 @s2n_result_is_ok(i32 %4864)
  br i1 %4865, label %4919, label %4866

4866:                                             ; preds = %4855
  br label %4867

4867:                                             ; preds = %4866
  br label %4868

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

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

4880:                                             ; preds = %4875
  %4881 = load i32, ptr %98, align 4, !tbaa !5
  %4882 = call ptr @__errno_location() #11
  store i32 %4881, ptr %4882, align 4, !tbaa !5
  %4883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4884 = load i32, ptr @test_count, align 4, !tbaa !5
  %4885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4886 = load i32, ptr %4885, align 4, !tbaa !5
  %4887 = call ptr @s2n_strerror(i32 noundef %4886, ptr noundef @.str.4)
  %4888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4889 = load i32, ptr %4888, align 4, !tbaa !5
  %4890 = call ptr @s2n_strerror_debug(i32 noundef %4889, ptr noundef @.str.4)
  %4891 = call ptr @__errno_location() #11
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call ptr @strerror(i32 noundef %4892) #10
  %4894 = call ptr @__errno_location() #11
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4883, ptr noundef @.str.2, i32 noundef %4884, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 261, ptr noundef %4887, ptr noundef %4890, ptr noundef %4893, i32 noundef %4895) #10
  br label %4914

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

4914:                                             ; preds = %4897, %4880
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %4915

4915:                                             ; preds = %4914
  br label %4916

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

4917:                                             ; No predecessors!
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

4919:                                             ; preds = %4918, %4855
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

4921:                                             ; preds = %4920
  %4922 = call zeroext i1 @s2n_libcrypto_supports_evp_kem()
  br i1 %4922, label %4923, label %4988

4923:                                             ; preds = %4921
  %4924 = call i32 (...) @s2n_is_evp_apis_supported()
  %4925 = icmp ne i32 %4924, 0
  br i1 %4925, label %4926, label %4988

4926:                                             ; preds = %4923
  br label %4927

4927:                                             ; preds = %4926
  %4928 = load i32, ptr @test_count, align 4, !tbaa !5
  %4929 = add nsw i32 %4928, 1
  store i32 %4929, ptr @test_count, align 4, !tbaa !5
  %4930 = load i32, ptr %73, align 4, !tbaa !5
  %4931 = icmp eq i32 6, %4930
  br i1 %4931, label %4985, label %4932

4932:                                             ; preds = %4927
  br label %4933

4933:                                             ; preds = %4932
  br label %4934

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

4941:                                             ; preds = %4934
  %4942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4943 = call i32 @fileno(ptr noundef %4942) #10
  %4944 = call i32 @isatty(i32 noundef %4943) #10
  %4945 = icmp ne i32 %4944, 0
  br i1 %4945, label %4946, label %4963

4946:                                             ; preds = %4941
  %4947 = load i32, ptr %99, align 4, !tbaa !5
  %4948 = call ptr @__errno_location() #11
  store i32 %4947, ptr %4948, align 4, !tbaa !5
  %4949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4950 = load i32, ptr @test_count, align 4, !tbaa !5
  %4951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4952 = load i32, ptr %4951, align 4, !tbaa !5
  %4953 = call ptr @s2n_strerror(i32 noundef %4952, ptr noundef @.str.4)
  %4954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @s2n_strerror_debug(i32 noundef %4955, ptr noundef @.str.4)
  %4957 = call ptr @__errno_location() #11
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @strerror(i32 noundef %4958) #10
  %4960 = call ptr @__errno_location() #11
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4949, ptr noundef @.str.2, i32 noundef %4950, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 263, ptr noundef %4953, ptr noundef %4956, ptr noundef %4959, i32 noundef %4961) #10
  br label %4980

4963:                                             ; preds = %4941, %4934
  %4964 = load i32, ptr %99, align 4, !tbaa !5
  %4965 = call ptr @__errno_location() #11
  store i32 %4964, ptr %4965, align 4, !tbaa !5
  %4966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4967 = load i32, ptr @test_count, align 4, !tbaa !5
  %4968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror(i32 noundef %4969, ptr noundef @.str.4)
  %4971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @s2n_strerror_debug(i32 noundef %4972, ptr noundef @.str.4)
  %4974 = call ptr @__errno_location() #11
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call ptr @strerror(i32 noundef %4975) #10
  %4977 = call ptr @__errno_location() #11
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4966, ptr noundef @.str.5, i32 noundef %4967, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 263, ptr noundef %4970, ptr noundef %4973, ptr noundef %4976, i32 noundef %4978) #10
  br label %4980

4980:                                             ; preds = %4963, %4946
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

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

4983:                                             ; No predecessors!
  br label %4984

4984:                                             ; preds = %4983
  br label %4985

4985:                                             ; preds = %4984, %4927
  br label %4986

4986:                                             ; preds = %4985
  br label %4987

4987:                                             ; preds = %4986
  br label %5118

4988:                                             ; preds = %4923, %4921
  %4989 = call zeroext i1 @s2n_libcrypto_supports_evp_kem()
  br i1 %4989, label %4990, label %5055

4990:                                             ; preds = %4988
  %4991 = call i32 (...) @s2n_is_evp_apis_supported()
  %4992 = icmp ne i32 %4991, 0
  br i1 %4992, label %5055, label %4993

4993:                                             ; preds = %4990
  br label %4994

4994:                                             ; preds = %4993
  %4995 = load i32, ptr @test_count, align 4, !tbaa !5
  %4996 = add nsw i32 %4995, 1
  store i32 %4996, ptr @test_count, align 4, !tbaa !5
  %4997 = load i32, ptr %73, align 4, !tbaa !5
  %4998 = icmp eq i32 4, %4997
  br i1 %4998, label %5052, label %4999

4999:                                             ; preds = %4994
  br label %5000

5000:                                             ; preds = %4999
  br label %5001

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

5008:                                             ; preds = %5001
  %5009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5010 = call i32 @fileno(ptr noundef %5009) #10
  %5011 = call i32 @isatty(i32 noundef %5010) #10
  %5012 = icmp ne i32 %5011, 0
  br i1 %5012, label %5013, label %5030

5013:                                             ; preds = %5008
  %5014 = load i32, ptr %100, align 4, !tbaa !5
  %5015 = call ptr @__errno_location() #11
  store i32 %5014, ptr %5015, align 4, !tbaa !5
  %5016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5017 = load i32, ptr @test_count, align 4, !tbaa !5
  %5018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5019 = load i32, ptr %5018, align 4, !tbaa !5
  %5020 = call ptr @s2n_strerror(i32 noundef %5019, ptr noundef @.str.4)
  %5021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5022 = load i32, ptr %5021, align 4, !tbaa !5
  %5023 = call ptr @s2n_strerror_debug(i32 noundef %5022, ptr noundef @.str.4)
  %5024 = call ptr @__errno_location() #11
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call ptr @strerror(i32 noundef %5025) #10
  %5027 = call ptr @__errno_location() #11
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5016, ptr noundef @.str.2, i32 noundef %5017, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5020, ptr noundef %5023, ptr noundef %5026, i32 noundef %5028) #10
  br label %5047

5030:                                             ; preds = %5008, %5001
  %5031 = load i32, ptr %100, align 4, !tbaa !5
  %5032 = call ptr @__errno_location() #11
  store i32 %5031, ptr %5032, align 4, !tbaa !5
  %5033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5034 = load i32, ptr @test_count, align 4, !tbaa !5
  %5035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call ptr @s2n_strerror(i32 noundef %5036, ptr noundef @.str.4)
  %5038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5039 = load i32, ptr %5038, align 4, !tbaa !5
  %5040 = call ptr @s2n_strerror_debug(i32 noundef %5039, ptr noundef @.str.4)
  %5041 = call ptr @__errno_location() #11
  %5042 = load i32, ptr %5041, align 4, !tbaa !5
  %5043 = call ptr @strerror(i32 noundef %5042) #10
  %5044 = call ptr @__errno_location() #11
  %5045 = load i32, ptr %5044, align 4, !tbaa !5
  %5046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5033, ptr noundef @.str.5, i32 noundef %5034, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5037, ptr noundef %5040, ptr noundef %5043, i32 noundef %5045) #10
  br label %5047

5047:                                             ; preds = %5030, %5013
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %5048

5048:                                             ; preds = %5047
  br label %5049

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

5050:                                             ; No predecessors!
  br label %5051

5051:                                             ; preds = %5050
  br label %5052

5052:                                             ; preds = %5051, %4994
  br label %5053

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053
  br label %5117

5055:                                             ; preds = %4990, %4988
  br label %5056

5056:                                             ; preds = %5055
  %5057 = load i32, ptr @test_count, align 4, !tbaa !5
  %5058 = add nsw i32 %5057, 1
  store i32 %5058, ptr @test_count, align 4, !tbaa !5
  %5059 = load i32, ptr %73, align 4, !tbaa !5
  %5060 = icmp eq i32 0, %5059
  br i1 %5060, label %5114, label %5061

5061:                                             ; preds = %5056
  br label %5062

5062:                                             ; preds = %5061
  br label %5063

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

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

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

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

5109:                                             ; preds = %5092, %5075
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %5110

5110:                                             ; preds = %5109
  br label %5111

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

5112:                                             ; No predecessors!
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113, %5056
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115
  br label %5117

5117:                                             ; preds = %5116, %5054
  br label %5118

5118:                                             ; preds = %5117, %4987
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %5119

5119:                                             ; preds = %5118
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = add nsw i32 %5120, 1
  store i32 %5121, ptr @test_count, align 4, !tbaa !5
  %5122 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.68, ptr noundef %39)
  %5123 = icmp eq i32 %5122, -1
  br i1 %5123, label %5124, label %5177

5124:                                             ; preds = %5119
  br label %5125

5125:                                             ; preds = %5124
  br label %5126

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

5133:                                             ; preds = %5126
  %5134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5135 = call i32 @fileno(ptr noundef %5134) #10
  %5136 = call i32 @isatty(i32 noundef %5135) #10
  %5137 = icmp ne i32 %5136, 0
  br i1 %5137, label %5138, label %5155

5138:                                             ; preds = %5133
  %5139 = load i32, ptr %102, align 4, !tbaa !5
  %5140 = call ptr @__errno_location() #11
  store i32 %5139, ptr %5140, align 4, !tbaa !5
  %5141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5142 = load i32, ptr @test_count, align 4, !tbaa !5
  %5143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call ptr @s2n_strerror(i32 noundef %5144, ptr noundef @.str.4)
  %5146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @s2n_strerror_debug(i32 noundef %5147, ptr noundef @.str.4)
  %5149 = call ptr @__errno_location() #11
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @strerror(i32 noundef %5150) #10
  %5152 = call ptr @__errno_location() #11
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5141, ptr noundef @.str.2, i32 noundef %5142, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5145, ptr noundef %5148, ptr noundef %5151, i32 noundef %5153) #10
  br label %5172

5155:                                             ; preds = %5133, %5126
  %5156 = load i32, ptr %102, align 4, !tbaa !5
  %5157 = call ptr @__errno_location() #11
  store i32 %5156, ptr %5157, align 4, !tbaa !5
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = load i32, ptr @test_count, align 4, !tbaa !5
  %5160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call ptr @s2n_strerror(i32 noundef %5161, ptr noundef @.str.4)
  %5163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @s2n_strerror_debug(i32 noundef %5164, ptr noundef @.str.4)
  %5166 = call ptr @__errno_location() #11
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call ptr @strerror(i32 noundef %5167) #10
  %5169 = call ptr @__errno_location() #11
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  %5171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5158, ptr noundef @.str.5, i32 noundef %5159, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5162, ptr noundef %5165, ptr noundef %5168, i32 noundef %5170) #10
  br label %5172

5172:                                             ; preds = %5155, %5138
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %5173

5173:                                             ; preds = %5172
  br label %5174

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

5175:                                             ; No predecessors!
  br label %5176

5176:                                             ; preds = %5175
  br label %5177

5177:                                             ; preds = %5176, %5119
  br label %5178

5178:                                             ; preds = %5177
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  %5181 = load i32, ptr @test_count, align 4, !tbaa !5
  %5182 = add nsw i32 %5181, 1
  store i32 %5182, ptr @test_count, align 4, !tbaa !5
  %5183 = load ptr, ptr %39, align 8, !tbaa !9
  %5184 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %5183)
  br i1 %5184, label %5185, label %5238

5185:                                             ; preds = %5180
  br label %5186

5186:                                             ; preds = %5185
  br label %5187

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

5194:                                             ; preds = %5187
  %5195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5196 = call i32 @fileno(ptr noundef %5195) #10
  %5197 = call i32 @isatty(i32 noundef %5196) #10
  %5198 = icmp ne i32 %5197, 0
  br i1 %5198, label %5199, label %5216

5199:                                             ; preds = %5194
  %5200 = load i32, ptr %103, align 4, !tbaa !5
  %5201 = call ptr @__errno_location() #11
  store i32 %5200, ptr %5201, align 4, !tbaa !5
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = load i32, ptr @test_count, align 4, !tbaa !5
  %5204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  %5206 = call ptr @s2n_strerror(i32 noundef %5205, ptr noundef @.str.4)
  %5207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @s2n_strerror_debug(i32 noundef %5208, ptr noundef @.str.4)
  %5210 = call ptr @__errno_location() #11
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @strerror(i32 noundef %5211) #10
  %5213 = call ptr @__errno_location() #11
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5202, ptr noundef @.str.2, i32 noundef %5203, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5206, ptr noundef %5209, ptr noundef %5212, i32 noundef %5214) #10
  br label %5233

5216:                                             ; preds = %5194, %5187
  %5217 = load i32, ptr %103, align 4, !tbaa !5
  %5218 = call ptr @__errno_location() #11
  store i32 %5217, ptr %5218, align 4, !tbaa !5
  %5219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5220 = load i32, ptr @test_count, align 4, !tbaa !5
  %5221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5222 = load i32, ptr %5221, align 4, !tbaa !5
  %5223 = call ptr @s2n_strerror(i32 noundef %5222, ptr noundef @.str.4)
  %5224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5225 = load i32, ptr %5224, align 4, !tbaa !5
  %5226 = call ptr @s2n_strerror_debug(i32 noundef %5225, ptr noundef @.str.4)
  %5227 = call ptr @__errno_location() #11
  %5228 = load i32, ptr %5227, align 4, !tbaa !5
  %5229 = call ptr @strerror(i32 noundef %5228) #10
  %5230 = call ptr @__errno_location() #11
  %5231 = load i32, ptr %5230, align 4, !tbaa !5
  %5232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5219, ptr noundef @.str.5, i32 noundef %5220, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5223, ptr noundef %5226, ptr noundef %5229, i32 noundef %5231) #10
  br label %5233

5233:                                             ; preds = %5216, %5199
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %5234

5234:                                             ; preds = %5233
  br label %5235

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

5236:                                             ; No predecessors!
  br label %5237

5237:                                             ; preds = %5236
  br label %5238

5238:                                             ; preds = %5237, %5180
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239
  br label %5241

5241:                                             ; preds = %5240
  %5242 = load i32, ptr @test_count, align 4, !tbaa !5
  %5243 = add nsw i32 %5242, 1
  store i32 %5243, ptr @test_count, align 4, !tbaa !5
  %5244 = load ptr, ptr %39, align 8, !tbaa !9
  %5245 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %5244)
  br i1 %5245, label %5246, label %5299

5246:                                             ; preds = %5241
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

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

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

5260:                                             ; preds = %5255
  %5261 = load i32, ptr %104, align 4, !tbaa !5
  %5262 = call ptr @__errno_location() #11
  store i32 %5261, ptr %5262, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror(i32 noundef %5266, ptr noundef @.str.4)
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror_debug(i32 noundef %5269, ptr noundef @.str.4)
  %5271 = call ptr @__errno_location() #11
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #10
  %5274 = call ptr @__errno_location() #11
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5263, ptr noundef @.str.2, i32 noundef %5264, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5267, ptr noundef %5270, ptr noundef %5273, i32 noundef %5275) #10
  br label %5294

5277:                                             ; preds = %5255, %5248
  %5278 = load i32, ptr %104, align 4, !tbaa !5
  %5279 = call ptr @__errno_location() #11
  store i32 %5278, ptr %5279, align 4, !tbaa !5
  %5280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5281 = load i32, ptr @test_count, align 4, !tbaa !5
  %5282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @s2n_strerror(i32 noundef %5283, ptr noundef @.str.4)
  %5285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call ptr @s2n_strerror_debug(i32 noundef %5286, ptr noundef @.str.4)
  %5288 = call ptr @__errno_location() #11
  %5289 = load i32, ptr %5288, align 4, !tbaa !5
  %5290 = call ptr @strerror(i32 noundef %5289) #10
  %5291 = call ptr @__errno_location() #11
  %5292 = load i32, ptr %5291, align 4, !tbaa !5
  %5293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5280, ptr noundef @.str.5, i32 noundef %5281, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5284, ptr noundef %5287, ptr noundef %5290, i32 noundef %5292) #10
  br label %5294

5294:                                             ; preds = %5277, %5260
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

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

5297:                                             ; No predecessors!
  br label %5298

5298:                                             ; preds = %5297
  br label %5299

5299:                                             ; preds = %5298, %5241
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300
  br label %5302

5302:                                             ; preds = %5301
  %5303 = load i32, ptr @test_count, align 4, !tbaa !5
  %5304 = add nsw i32 %5303, 1
  store i32 %5304, ptr @test_count, align 4, !tbaa !5
  %5305 = load ptr, ptr %39, align 8, !tbaa !9
  %5306 = getelementptr inbounds %struct.s2n_security_policy, ptr %5305, i32 0, i32 2
  %5307 = load ptr, ptr %5306, align 8, !tbaa !20
  %5308 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5307, i32 0, i32 0
  %5309 = load i8, ptr %5308, align 8, !tbaa !50
  %5310 = zext i8 %5309 to i32
  %5311 = icmp eq i32 0, %5310
  br i1 %5311, label %5365, label %5312

5312:                                             ; preds = %5302
  br label %5313

5313:                                             ; preds = %5312
  br label %5314

5314:                                             ; preds = %5313
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %5315 = call ptr @__errno_location() #11
  %5316 = load i32, ptr %5315, align 4, !tbaa !5
  store i32 %5316, ptr %105, align 4, !tbaa !5
  %5317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5318 = call i32 @s2n_print_stacktrace(ptr noundef %5317)
  %5319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5320 = trunc i8 %5319 to i1
  br i1 %5320, label %5321, label %5343

5321:                                             ; preds = %5314
  %5322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5323 = call i32 @fileno(ptr noundef %5322) #10
  %5324 = call i32 @isatty(i32 noundef %5323) #10
  %5325 = icmp ne i32 %5324, 0
  br i1 %5325, label %5326, label %5343

5326:                                             ; preds = %5321
  %5327 = load i32, ptr %105, align 4, !tbaa !5
  %5328 = call ptr @__errno_location() #11
  store i32 %5327, ptr %5328, align 4, !tbaa !5
  %5329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5330 = load i32, ptr @test_count, align 4, !tbaa !5
  %5331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5332 = load i32, ptr %5331, align 4, !tbaa !5
  %5333 = call ptr @s2n_strerror(i32 noundef %5332, ptr noundef @.str.4)
  %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_debug(i32 noundef %5335, ptr noundef @.str.4)
  %5337 = call ptr @__errno_location() #11
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call ptr @strerror(i32 noundef %5338) #10
  %5340 = call ptr @__errno_location() #11
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5329, ptr noundef @.str.2, i32 noundef %5330, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 274, ptr noundef %5333, ptr noundef %5336, ptr noundef %5339, i32 noundef %5341) #10
  br label %5360

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

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

5361:                                             ; preds = %5360
  br label %5362

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

5363:                                             ; No predecessors!
  br label %5364

5364:                                             ; preds = %5363
  br label %5365

5365:                                             ; preds = %5364, %5302
  br label %5366

5366:                                             ; preds = %5365
  br label %5367

5367:                                             ; preds = %5366
  br label %5368

5368:                                             ; preds = %5367
  %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 = load ptr, ptr %39, align 8, !tbaa !9
  %5372 = getelementptr inbounds %struct.s2n_security_policy, ptr %5371, i32 0, i32 2
  %5373 = load ptr, ptr %5372, align 8, !tbaa !20
  %5374 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5373, i32 0, i32 1
  %5375 = load ptr, ptr %5374, align 8, !tbaa !49
  %5376 = icmp eq ptr %5375, null
  br i1 %5376, label %5430, label %5377

5377:                                             ; preds = %5368
  br label %5378

5378:                                             ; preds = %5377
  br label %5379

5379:                                             ; preds = %5378
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %5380 = call ptr @__errno_location() #11
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  store i32 %5381, ptr %106, align 4, !tbaa !5
  %5382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5383 = call i32 @s2n_print_stacktrace(ptr noundef %5382)
  %5384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5385 = trunc i8 %5384 to i1
  br i1 %5385, label %5386, label %5408

5386:                                             ; preds = %5379
  %5387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5388 = call i32 @fileno(ptr noundef %5387) #10
  %5389 = call i32 @isatty(i32 noundef %5388) #10
  %5390 = icmp ne i32 %5389, 0
  br i1 %5390, label %5391, label %5408

5391:                                             ; preds = %5386
  %5392 = load i32, ptr %106, align 4, !tbaa !5
  %5393 = call ptr @__errno_location() #11
  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() #11
  %5403 = load i32, ptr %5402, align 4, !tbaa !5
  %5404 = call ptr @strerror(i32 noundef %5403) #10
  %5405 = call ptr @__errno_location() #11
  %5406 = load i32, ptr %5405, align 4, !tbaa !5
  %5407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5394, ptr noundef @.str.2, i32 noundef %5395, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5398, ptr noundef %5401, ptr noundef %5404, i32 noundef %5406) #10
  br label %5425

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

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

5426:                                             ; preds = %5425
  br label %5427

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

5428:                                             ; No predecessors!
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

5430:                                             ; preds = %5429, %5368
  br label %5431

5431:                                             ; preds = %5430
  br label %5432

5432:                                             ; preds = %5431
  br label %5433

5433:                                             ; preds = %5432
  %5434 = load i32, ptr @test_count, align 4, !tbaa !5
  %5435 = add nsw i32 %5434, 1
  store i32 %5435, ptr @test_count, align 4, !tbaa !5
  %5436 = load ptr, ptr %39, align 8, !tbaa !9
  %5437 = getelementptr inbounds %struct.s2n_security_policy, ptr %5436, i32 0, i32 2
  %5438 = load ptr, ptr %5437, align 8, !tbaa !20
  %5439 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5438, i32 0, i32 3
  %5440 = load ptr, ptr %5439, align 8, !tbaa !24
  %5441 = icmp eq ptr %5440, null
  br i1 %5441, label %5495, label %5442

5442:                                             ; preds = %5433
  br label %5443

5443:                                             ; preds = %5442
  br label %5444

5444:                                             ; preds = %5443
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %5445 = call ptr @__errno_location() #11
  %5446 = load i32, ptr %5445, align 4, !tbaa !5
  store i32 %5446, ptr %107, align 4, !tbaa !5
  %5447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5448 = call i32 @s2n_print_stacktrace(ptr noundef %5447)
  %5449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5450 = trunc i8 %5449 to i1
  br i1 %5450, label %5451, label %5473

5451:                                             ; preds = %5444
  %5452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5453 = call i32 @fileno(ptr noundef %5452) #10
  %5454 = call i32 @isatty(i32 noundef %5453) #10
  %5455 = icmp ne i32 %5454, 0
  br i1 %5455, label %5456, label %5473

5456:                                             ; preds = %5451
  %5457 = load i32, ptr %107, align 4, !tbaa !5
  %5458 = call ptr @__errno_location() #11
  store i32 %5457, ptr %5458, align 4, !tbaa !5
  %5459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5460 = load i32, ptr @test_count, align 4, !tbaa !5
  %5461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call ptr @s2n_strerror(i32 noundef %5462, ptr noundef @.str.4)
  %5464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = call ptr @s2n_strerror_debug(i32 noundef %5465, ptr noundef @.str.4)
  %5467 = call ptr @__errno_location() #11
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @strerror(i32 noundef %5468) #10
  %5470 = call ptr @__errno_location() #11
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5459, ptr noundef @.str.2, i32 noundef %5460, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 276, ptr noundef %5463, ptr noundef %5466, ptr noundef %5469, i32 noundef %5471) #10
  br label %5490

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

5490:                                             ; preds = %5473, %5456
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %5491

5491:                                             ; preds = %5490
  br label %5492

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

5493:                                             ; No predecessors!
  br label %5494

5494:                                             ; preds = %5493
  br label %5495

5495:                                             ; preds = %5494, %5433
  br label %5496

5496:                                             ; preds = %5495
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  %5499 = load i32, ptr @test_count, align 4, !tbaa !5
  %5500 = add nsw i32 %5499, 1
  store i32 %5500, ptr @test_count, align 4, !tbaa !5
  %5501 = load ptr, ptr %39, align 8, !tbaa !9
  %5502 = getelementptr inbounds %struct.s2n_security_policy, ptr %5501, i32 0, i32 2
  %5503 = load ptr, ptr %5502, align 8, !tbaa !20
  %5504 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5503, i32 0, i32 2
  %5505 = load i8, ptr %5504, align 8, !tbaa !22
  %5506 = zext i8 %5505 to i32
  %5507 = icmp eq i32 0, %5506
  br i1 %5507, label %5561, label %5508

5508:                                             ; preds = %5498
  br label %5509

5509:                                             ; preds = %5508
  br label %5510

5510:                                             ; preds = %5509
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %5511 = call ptr @__errno_location() #11
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  store i32 %5512, ptr %108, align 4, !tbaa !5
  %5513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5514 = call i32 @s2n_print_stacktrace(ptr noundef %5513)
  %5515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5516 = trunc i8 %5515 to i1
  br i1 %5516, label %5517, label %5539

5517:                                             ; preds = %5510
  %5518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5519 = call i32 @fileno(ptr noundef %5518) #10
  %5520 = call i32 @isatty(i32 noundef %5519) #10
  %5521 = icmp ne i32 %5520, 0
  br i1 %5521, label %5522, label %5539

5522:                                             ; preds = %5517
  %5523 = load i32, ptr %108, align 4, !tbaa !5
  %5524 = call ptr @__errno_location() #11
  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() #11
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call ptr @strerror(i32 noundef %5534) #10
  %5536 = call ptr @__errno_location() #11
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5525, ptr noundef @.str.2, i32 noundef %5526, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5529, ptr noundef %5532, ptr noundef %5535, i32 noundef %5537) #10
  br label %5556

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

5556:                                             ; preds = %5539, %5522
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %5557

5557:                                             ; preds = %5556
  br label %5558

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

5559:                                             ; No predecessors!
  br label %5560

5560:                                             ; preds = %5559
  br label %5561

5561:                                             ; preds = %5560, %5498
  br label %5562

5562:                                             ; preds = %5561
  br label %5563

5563:                                             ; preds = %5562
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %5564

5564:                                             ; preds = %5563
  %5565 = load i32, ptr @test_count, align 4, !tbaa !5
  %5566 = add nsw i32 %5565, 1
  store i32 %5566, ptr @test_count, align 4, !tbaa !5
  %5567 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.71, ptr noundef %39)
  %5568 = icmp eq i32 %5567, -1
  br i1 %5568, label %5569, label %5622

5569:                                             ; preds = %5564
  br label %5570

5570:                                             ; preds = %5569
  br label %5571

5571:                                             ; preds = %5570
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %5572 = call ptr @__errno_location() #11
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  store i32 %5573, ptr %109, align 4, !tbaa !5
  %5574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5575 = call i32 @s2n_print_stacktrace(ptr noundef %5574)
  %5576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5577 = trunc i8 %5576 to i1
  br i1 %5577, label %5578, label %5600

5578:                                             ; preds = %5571
  %5579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5580 = call i32 @fileno(ptr noundef %5579) #10
  %5581 = call i32 @isatty(i32 noundef %5580) #10
  %5582 = icmp ne i32 %5581, 0
  br i1 %5582, label %5583, label %5600

5583:                                             ; preds = %5578
  %5584 = load i32, ptr %109, align 4, !tbaa !5
  %5585 = call ptr @__errno_location() #11
  store i32 %5584, ptr %5585, align 4, !tbaa !5
  %5586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5587 = load i32, ptr @test_count, align 4, !tbaa !5
  %5588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5589 = load i32, ptr %5588, align 4, !tbaa !5
  %5590 = call ptr @s2n_strerror(i32 noundef %5589, ptr noundef @.str.4)
  %5591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5592 = load i32, ptr %5591, align 4, !tbaa !5
  %5593 = call ptr @s2n_strerror_debug(i32 noundef %5592, ptr noundef @.str.4)
  %5594 = call ptr @__errno_location() #11
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call ptr @strerror(i32 noundef %5595) #10
  %5597 = call ptr @__errno_location() #11
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5586, ptr noundef @.str.2, i32 noundef %5587, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5590, ptr noundef %5593, ptr noundef %5596, i32 noundef %5598) #10
  br label %5617

5600:                                             ; preds = %5578, %5571
  %5601 = load i32, ptr %109, align 4, !tbaa !5
  %5602 = call ptr @__errno_location() #11
  store i32 %5601, ptr %5602, align 4, !tbaa !5
  %5603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5604 = load i32, ptr @test_count, align 4, !tbaa !5
  %5605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5606 = load i32, ptr %5605, align 4, !tbaa !5
  %5607 = call ptr @s2n_strerror(i32 noundef %5606, ptr noundef @.str.4)
  %5608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5609 = load i32, ptr %5608, align 4, !tbaa !5
  %5610 = call ptr @s2n_strerror_debug(i32 noundef %5609, ptr noundef @.str.4)
  %5611 = call ptr @__errno_location() #11
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  %5613 = call ptr @strerror(i32 noundef %5612) #10
  %5614 = call ptr @__errno_location() #11
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5603, ptr noundef @.str.5, i32 noundef %5604, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5607, ptr noundef %5610, ptr noundef %5613, i32 noundef %5615) #10
  br label %5617

5617:                                             ; preds = %5600, %5583
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %5618

5618:                                             ; preds = %5617
  br label %5619

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

5620:                                             ; No predecessors!
  br label %5621

5621:                                             ; preds = %5620
  br label %5622

5622:                                             ; preds = %5621, %5564
  br label %5623

5623:                                             ; preds = %5622
  br label %5624

5624:                                             ; preds = %5623
  br label %5625

5625:                                             ; preds = %5624
  %5626 = load i32, ptr @test_count, align 4, !tbaa !5
  %5627 = add nsw i32 %5626, 1
  store i32 %5627, ptr @test_count, align 4, !tbaa !5
  %5628 = load ptr, ptr %39, align 8, !tbaa !9
  %5629 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %5628)
  br i1 %5629, label %5683, label %5630

5630:                                             ; preds = %5625
  br label %5631

5631:                                             ; preds = %5630
  br label %5632

5632:                                             ; preds = %5631
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %5633 = call ptr @__errno_location() #11
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  store i32 %5634, ptr %110, align 4, !tbaa !5
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = call i32 @s2n_print_stacktrace(ptr noundef %5635)
  %5637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5638 = trunc i8 %5637 to i1
  br i1 %5638, label %5639, label %5661

5639:                                             ; preds = %5632
  %5640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5641 = call i32 @fileno(ptr noundef %5640) #10
  %5642 = call i32 @isatty(i32 noundef %5641) #10
  %5643 = icmp ne i32 %5642, 0
  br i1 %5643, label %5644, label %5661

5644:                                             ; preds = %5639
  %5645 = load i32, ptr %110, align 4, !tbaa !5
  %5646 = call ptr @__errno_location() #11
  store i32 %5645, ptr %5646, align 4, !tbaa !5
  %5647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5648 = load i32, ptr @test_count, align 4, !tbaa !5
  %5649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call ptr @s2n_strerror(i32 noundef %5650, ptr noundef @.str.4)
  %5652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5653 = load i32, ptr %5652, align 4, !tbaa !5
  %5654 = call ptr @s2n_strerror_debug(i32 noundef %5653, ptr noundef @.str.4)
  %5655 = call ptr @__errno_location() #11
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @strerror(i32 noundef %5656) #10
  %5658 = call ptr @__errno_location() #11
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5647, ptr noundef @.str.2, i32 noundef %5648, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5651, ptr noundef %5654, ptr noundef %5657, i32 noundef %5659) #10
  br label %5678

5661:                                             ; preds = %5639, %5632
  %5662 = load i32, ptr %110, align 4, !tbaa !5
  %5663 = call ptr @__errno_location() #11
  store i32 %5662, ptr %5663, align 4, !tbaa !5
  %5664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5665 = load i32, ptr @test_count, align 4, !tbaa !5
  %5666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call ptr @s2n_strerror(i32 noundef %5667, ptr noundef @.str.4)
  %5669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5670 = load i32, ptr %5669, align 4, !tbaa !5
  %5671 = call ptr @s2n_strerror_debug(i32 noundef %5670, ptr noundef @.str.4)
  %5672 = call ptr @__errno_location() #11
  %5673 = load i32, ptr %5672, align 4, !tbaa !5
  %5674 = call ptr @strerror(i32 noundef %5673) #10
  %5675 = call ptr @__errno_location() #11
  %5676 = load i32, ptr %5675, align 4, !tbaa !5
  %5677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5664, ptr noundef @.str.5, i32 noundef %5665, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5668, ptr noundef %5671, ptr noundef %5674, i32 noundef %5676) #10
  br label %5678

5678:                                             ; preds = %5661, %5644
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %5679

5679:                                             ; preds = %5678
  br label %5680

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

5681:                                             ; No predecessors!
  br label %5682

5682:                                             ; preds = %5681
  br label %5683

5683:                                             ; preds = %5682, %5625
  br label %5684

5684:                                             ; preds = %5683
  br label %5685

5685:                                             ; preds = %5684
  br label %5686

5686:                                             ; preds = %5685
  %5687 = load i32, ptr @test_count, align 4, !tbaa !5
  %5688 = add nsw i32 %5687, 1
  store i32 %5688, ptr @test_count, align 4, !tbaa !5
  %5689 = load ptr, ptr %39, align 8, !tbaa !9
  %5690 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %5689)
  br i1 %5690, label %5691, label %5744

5691:                                             ; preds = %5686
  br label %5692

5692:                                             ; preds = %5691
  br label %5693

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

5700:                                             ; preds = %5693
  %5701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5702 = call i32 @fileno(ptr noundef %5701) #10
  %5703 = call i32 @isatty(i32 noundef %5702) #10
  %5704 = icmp ne i32 %5703, 0
  br i1 %5704, label %5705, label %5722

5705:                                             ; preds = %5700
  %5706 = load i32, ptr %111, align 4, !tbaa !5
  %5707 = call ptr @__errno_location() #11
  store i32 %5706, ptr %5707, align 4, !tbaa !5
  %5708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5709 = load i32, ptr @test_count, align 4, !tbaa !5
  %5710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call ptr @s2n_strerror(i32 noundef %5711, ptr noundef @.str.4)
  %5713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror_debug(i32 noundef %5714, ptr noundef @.str.4)
  %5716 = call ptr @__errno_location() #11
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @strerror(i32 noundef %5717) #10
  %5719 = call ptr @__errno_location() #11
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5708, ptr noundef @.str.2, i32 noundef %5709, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5712, ptr noundef %5715, ptr noundef %5718, i32 noundef %5720) #10
  br label %5739

5722:                                             ; preds = %5700, %5693
  %5723 = load i32, ptr %111, align 4, !tbaa !5
  %5724 = call ptr @__errno_location() #11
  store i32 %5723, ptr %5724, align 4, !tbaa !5
  %5725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5726 = load i32, ptr @test_count, align 4, !tbaa !5
  %5727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call ptr @s2n_strerror(i32 noundef %5728, ptr noundef @.str.4)
  %5730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call ptr @s2n_strerror_debug(i32 noundef %5731, ptr noundef @.str.4)
  %5733 = call ptr @__errno_location() #11
  %5734 = load i32, ptr %5733, align 4, !tbaa !5
  %5735 = call ptr @strerror(i32 noundef %5734) #10
  %5736 = call ptr @__errno_location() #11
  %5737 = load i32, ptr %5736, align 4, !tbaa !5
  %5738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5725, ptr noundef @.str.5, i32 noundef %5726, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5729, ptr noundef %5732, ptr noundef %5735, i32 noundef %5737) #10
  br label %5739

5739:                                             ; preds = %5722, %5705
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %5740

5740:                                             ; preds = %5739
  br label %5741

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

5742:                                             ; No predecessors!
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

5744:                                             ; preds = %5743, %5686
  br label %5745

5745:                                             ; preds = %5744
  br label %5746

5746:                                             ; preds = %5745
  br label %5747

5747:                                             ; preds = %5746
  %5748 = load i32, ptr @test_count, align 4, !tbaa !5
  %5749 = add nsw i32 %5748, 1
  store i32 %5749, ptr @test_count, align 4, !tbaa !5
  %5750 = load ptr, ptr %39, align 8, !tbaa !9
  %5751 = getelementptr inbounds %struct.s2n_security_policy, ptr %5750, i32 0, i32 2
  %5752 = load ptr, ptr %5751, align 8, !tbaa !20
  %5753 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5752, i32 0, i32 0
  %5754 = load i8, ptr %5753, align 8, !tbaa !50
  %5755 = zext i8 %5754 to i32
  %5756 = icmp eq i32 0, %5755
  br i1 %5756, label %5810, label %5757

5757:                                             ; preds = %5747
  br label %5758

5758:                                             ; preds = %5757
  br label %5759

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

5766:                                             ; preds = %5759
  %5767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5768 = call i32 @fileno(ptr noundef %5767) #10
  %5769 = call i32 @isatty(i32 noundef %5768) #10
  %5770 = icmp ne i32 %5769, 0
  br i1 %5770, label %5771, label %5788

5771:                                             ; preds = %5766
  %5772 = load i32, ptr %112, align 4, !tbaa !5
  %5773 = call ptr @__errno_location() #11
  store i32 %5772, ptr %5773, align 4, !tbaa !5
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = load i32, ptr @test_count, align 4, !tbaa !5
  %5776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call ptr @s2n_strerror(i32 noundef %5777, ptr noundef @.str.4)
  %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_debug(i32 noundef %5780, ptr noundef @.str.4)
  %5782 = call ptr @__errno_location() #11
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @strerror(i32 noundef %5783) #10
  %5785 = call ptr @__errno_location() #11
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef @.str.2, i32 noundef %5775, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5778, ptr noundef %5781, ptr noundef %5784, i32 noundef %5786) #10
  br label %5805

5788:                                             ; preds = %5766, %5759
  %5789 = load i32, ptr %112, align 4, !tbaa !5
  %5790 = call ptr @__errno_location() #11
  store i32 %5789, ptr %5790, align 4, !tbaa !5
  %5791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5792 = load i32, ptr @test_count, align 4, !tbaa !5
  %5793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5794 = load i32, ptr %5793, align 4, !tbaa !5
  %5795 = call ptr @s2n_strerror(i32 noundef %5794, ptr noundef @.str.4)
  %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_debug(i32 noundef %5797, ptr noundef @.str.4)
  %5799 = call ptr @__errno_location() #11
  %5800 = load i32, ptr %5799, align 4, !tbaa !5
  %5801 = call ptr @strerror(i32 noundef %5800) #10
  %5802 = call ptr @__errno_location() #11
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5791, ptr noundef @.str.5, i32 noundef %5792, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5795, ptr noundef %5798, ptr noundef %5801, i32 noundef %5803) #10
  br label %5805

5805:                                             ; preds = %5788, %5771
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %5806

5806:                                             ; preds = %5805
  br label %5807

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

5808:                                             ; No predecessors!
  br label %5809

5809:                                             ; preds = %5808
  br label %5810

5810:                                             ; preds = %5809, %5747
  br label %5811

5811:                                             ; preds = %5810
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

5813:                                             ; preds = %5812
  %5814 = load i32, ptr @test_count, align 4, !tbaa !5
  %5815 = add nsw i32 %5814, 1
  store i32 %5815, ptr @test_count, align 4, !tbaa !5
  %5816 = load ptr, ptr %39, align 8, !tbaa !9
  %5817 = getelementptr inbounds %struct.s2n_security_policy, ptr %5816, i32 0, i32 2
  %5818 = load ptr, ptr %5817, align 8, !tbaa !20
  %5819 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5818, i32 0, i32 1
  %5820 = load ptr, ptr %5819, align 8, !tbaa !49
  %5821 = icmp eq ptr %5820, null
  br i1 %5821, label %5875, label %5822

5822:                                             ; preds = %5813
  br label %5823

5823:                                             ; preds = %5822
  br label %5824

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

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

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

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

5870:                                             ; preds = %5853, %5836
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %5871

5871:                                             ; preds = %5870
  br label %5872

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

5873:                                             ; No predecessors!
  br label %5874

5874:                                             ; preds = %5873
  br label %5875

5875:                                             ; preds = %5874, %5813
  br label %5876

5876:                                             ; preds = %5875
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

5878:                                             ; preds = %5877
  %5879 = load i32, ptr @test_count, align 4, !tbaa !5
  %5880 = add nsw i32 %5879, 1
  store i32 %5880, ptr @test_count, align 4, !tbaa !5
  %5881 = load ptr, ptr %39, align 8, !tbaa !9
  %5882 = getelementptr inbounds %struct.s2n_security_policy, ptr %5881, i32 0, i32 2
  %5883 = load ptr, ptr %5882, align 8, !tbaa !20
  %5884 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5883, i32 0, i32 3
  %5885 = load ptr, ptr %5884, align 8, !tbaa !24
  %5886 = icmp eq ptr %5885, null
  br i1 %5886, label %5940, label %5887

5887:                                             ; preds = %5878
  br label %5888

5888:                                             ; preds = %5887
  br label %5889

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

5896:                                             ; preds = %5889
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = call i32 @fileno(ptr noundef %5897) #10
  %5899 = call i32 @isatty(i32 noundef %5898) #10
  %5900 = icmp ne i32 %5899, 0
  br i1 %5900, label %5901, label %5918

5901:                                             ; preds = %5896
  %5902 = load i32, ptr %114, align 4, !tbaa !5
  %5903 = call ptr @__errno_location() #11
  store i32 %5902, ptr %5903, align 4, !tbaa !5
  %5904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5905 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5907, ptr noundef @.str.4)
  %5909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5910 = load i32, ptr %5909, align 4, !tbaa !5
  %5911 = call ptr @s2n_strerror_debug(i32 noundef %5910, ptr noundef @.str.4)
  %5912 = call ptr @__errno_location() #11
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call ptr @strerror(i32 noundef %5913) #10
  %5915 = call ptr @__errno_location() #11
  %5916 = load i32, ptr %5915, align 4, !tbaa !5
  %5917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5904, ptr noundef @.str.2, i32 noundef %5905, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5908, ptr noundef %5911, ptr noundef %5914, i32 noundef %5916) #10
  br label %5935

5918:                                             ; preds = %5896, %5889
  %5919 = load i32, ptr %114, align 4, !tbaa !5
  %5920 = call ptr @__errno_location() #11
  store i32 %5919, ptr %5920, align 4, !tbaa !5
  %5921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5922 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5924, ptr noundef @.str.4)
  %5926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @s2n_strerror_debug(i32 noundef %5927, ptr noundef @.str.4)
  %5929 = call ptr @__errno_location() #11
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @strerror(i32 noundef %5930) #10
  %5932 = call ptr @__errno_location() #11
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5921, ptr noundef @.str.5, i32 noundef %5922, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5925, ptr noundef %5928, ptr noundef %5931, i32 noundef %5933) #10
  br label %5935

5935:                                             ; preds = %5918, %5901
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %5936

5936:                                             ; preds = %5935
  br label %5937

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

5938:                                             ; No predecessors!
  br label %5939

5939:                                             ; preds = %5938
  br label %5940

5940:                                             ; preds = %5939, %5878
  br label %5941

5941:                                             ; preds = %5940
  br label %5942

5942:                                             ; preds = %5941
  br label %5943

5943:                                             ; preds = %5942
  %5944 = load i32, ptr @test_count, align 4, !tbaa !5
  %5945 = add nsw i32 %5944, 1
  store i32 %5945, ptr @test_count, align 4, !tbaa !5
  %5946 = load ptr, ptr %39, align 8, !tbaa !9
  %5947 = getelementptr inbounds %struct.s2n_security_policy, ptr %5946, i32 0, i32 2
  %5948 = load ptr, ptr %5947, align 8, !tbaa !20
  %5949 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5948, i32 0, i32 2
  %5950 = load i8, ptr %5949, align 8, !tbaa !22
  %5951 = zext i8 %5950 to i32
  %5952 = icmp eq i32 0, %5951
  br i1 %5952, label %6006, label %5953

5953:                                             ; preds = %5943
  br label %5954

5954:                                             ; preds = %5953
  br label %5955

5955:                                             ; preds = %5954
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %5956 = call ptr @__errno_location() #11
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  store i32 %5957, ptr %115, align 4, !tbaa !5
  %5958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5959 = call i32 @s2n_print_stacktrace(ptr noundef %5958)
  %5960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5961 = trunc i8 %5960 to i1
  br i1 %5961, label %5962, label %5984

5962:                                             ; preds = %5955
  %5963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5964 = call i32 @fileno(ptr noundef %5963) #10
  %5965 = call i32 @isatty(i32 noundef %5964) #10
  %5966 = icmp ne i32 %5965, 0
  br i1 %5966, label %5967, label %5984

5967:                                             ; preds = %5962
  %5968 = load i32, ptr %115, align 4, !tbaa !5
  %5969 = call ptr @__errno_location() #11
  store i32 %5968, ptr %5969, align 4, !tbaa !5
  %5970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5971 = load i32, ptr @test_count, align 4, !tbaa !5
  %5972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5973 = load i32, ptr %5972, align 4, !tbaa !5
  %5974 = call ptr @s2n_strerror(i32 noundef %5973, ptr noundef @.str.4)
  %5975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5976 = load i32, ptr %5975, align 4, !tbaa !5
  %5977 = call ptr @s2n_strerror_debug(i32 noundef %5976, ptr noundef @.str.4)
  %5978 = call ptr @__errno_location() #11
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call ptr @strerror(i32 noundef %5979) #10
  %5981 = call ptr @__errno_location() #11
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  %5983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5970, ptr noundef @.str.2, i32 noundef %5971, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5974, ptr noundef %5977, ptr noundef %5980, i32 noundef %5982) #10
  br label %6001

5984:                                             ; preds = %5962, %5955
  %5985 = load i32, ptr %115, align 4, !tbaa !5
  %5986 = call ptr @__errno_location() #11
  store i32 %5985, ptr %5986, align 4, !tbaa !5
  %5987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5988 = load i32, ptr @test_count, align 4, !tbaa !5
  %5989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5990 = load i32, ptr %5989, align 4, !tbaa !5
  %5991 = call ptr @s2n_strerror(i32 noundef %5990, ptr noundef @.str.4)
  %5992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call ptr @s2n_strerror_debug(i32 noundef %5993, ptr noundef @.str.4)
  %5995 = call ptr @__errno_location() #11
  %5996 = load i32, ptr %5995, align 4, !tbaa !5
  %5997 = call ptr @strerror(i32 noundef %5996) #10
  %5998 = call ptr @__errno_location() #11
  %5999 = load i32, ptr %5998, align 4, !tbaa !5
  %6000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5987, ptr noundef @.str.5, i32 noundef %5988, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5991, ptr noundef %5994, ptr noundef %5997, i32 noundef %5999) #10
  br label %6001

6001:                                             ; preds = %5984, %5967
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %6002

6002:                                             ; preds = %6001
  br label %6003

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

6004:                                             ; No predecessors!
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

6006:                                             ; preds = %6005, %5943
  br label %6007

6007:                                             ; preds = %6006
  br label %6008

6008:                                             ; preds = %6007
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  call void @llvm.lifetime.start.p0(i64 11475, ptr %116) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %116, ptr align 16 @__const.main.tls12_only_security_policy_strings, i64 11475, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #10
  store i64 0, ptr %117, align 8, !tbaa !15
  br label %6009

6009:                                             ; preds = %6139, %6008
  %6010 = load i64, ptr %117, align 8, !tbaa !15
  %6011 = icmp ult i64 %6010, 45
  br i1 %6011, label %6013, label %6012

6012:                                             ; preds = %6009
  store i32 552, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  br label %6142

6013:                                             ; preds = %6009
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %6014

6014:                                             ; preds = %6013
  %6015 = load i32, ptr @test_count, align 4, !tbaa !5
  %6016 = add nsw i32 %6015, 1
  store i32 %6016, ptr @test_count, align 4, !tbaa !5
  %6017 = load i64, ptr %117, align 8, !tbaa !15
  %6018 = getelementptr inbounds [45 x [255 x i8]], ptr %116, i64 0, i64 %6017
  %6019 = getelementptr inbounds [255 x i8], ptr %6018, i64 0, i64 0
  %6020 = call i32 @s2n_find_security_policy_from_version(ptr noundef %6019, ptr noundef %39)
  %6021 = icmp eq i32 %6020, -1
  br i1 %6021, label %6022, label %6075

6022:                                             ; preds = %6014
  br label %6023

6023:                                             ; preds = %6022
  br label %6024

6024:                                             ; preds = %6023
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %6025 = call ptr @__errno_location() #11
  %6026 = load i32, ptr %6025, align 4, !tbaa !5
  store i32 %6026, ptr %118, align 4, !tbaa !5
  %6027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6028 = call i32 @s2n_print_stacktrace(ptr noundef %6027)
  %6029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6030 = trunc i8 %6029 to i1
  br i1 %6030, label %6031, label %6053

6031:                                             ; preds = %6024
  %6032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6033 = call i32 @fileno(ptr noundef %6032) #10
  %6034 = call i32 @isatty(i32 noundef %6033) #10
  %6035 = icmp ne i32 %6034, 0
  br i1 %6035, label %6036, label %6053

6036:                                             ; preds = %6031
  %6037 = load i32, ptr %118, align 4, !tbaa !5
  %6038 = call ptr @__errno_location() #11
  store i32 %6037, ptr %6038, align 4, !tbaa !5
  %6039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6040 = load i32, ptr @test_count, align 4, !tbaa !5
  %6041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  %6043 = call ptr @s2n_strerror(i32 noundef %6042, ptr noundef @.str.4)
  %6044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call ptr @s2n_strerror_debug(i32 noundef %6045, ptr noundef @.str.4)
  %6047 = call ptr @__errno_location() #11
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  %6049 = call ptr @strerror(i32 noundef %6048) #10
  %6050 = call ptr @__errno_location() #11
  %6051 = load i32, ptr %6050, align 4, !tbaa !5
  %6052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6039, ptr noundef @.str.2, i32 noundef %6040, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6043, ptr noundef %6046, ptr noundef %6049, i32 noundef %6051) #10
  br label %6070

6053:                                             ; preds = %6031, %6024
  %6054 = load i32, ptr %118, align 4, !tbaa !5
  %6055 = call ptr @__errno_location() #11
  store i32 %6054, ptr %6055, align 4, !tbaa !5
  %6056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6057 = load i32, ptr @test_count, align 4, !tbaa !5
  %6058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6059 = load i32, ptr %6058, align 4, !tbaa !5
  %6060 = call ptr @s2n_strerror(i32 noundef %6059, ptr noundef @.str.4)
  %6061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6062 = load i32, ptr %6061, align 4, !tbaa !5
  %6063 = call ptr @s2n_strerror_debug(i32 noundef %6062, ptr noundef @.str.4)
  %6064 = call ptr @__errno_location() #11
  %6065 = load i32, ptr %6064, align 4, !tbaa !5
  %6066 = call ptr @strerror(i32 noundef %6065) #10
  %6067 = call ptr @__errno_location() #11
  %6068 = load i32, ptr %6067, align 4, !tbaa !5
  %6069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6056, ptr noundef @.str.5, i32 noundef %6057, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6060, ptr noundef %6063, ptr noundef %6066, i32 noundef %6068) #10
  br label %6070

6070:                                             ; preds = %6053, %6036
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %6071

6071:                                             ; preds = %6070
  br label %6072

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

6073:                                             ; No predecessors!
  br label %6074

6074:                                             ; preds = %6073
  br label %6075

6075:                                             ; preds = %6074, %6014
  br label %6076

6076:                                             ; preds = %6075
  br label %6077

6077:                                             ; preds = %6076
  br label %6078

6078:                                             ; preds = %6077
  %6079 = load i32, ptr @test_count, align 4, !tbaa !5
  %6080 = add nsw i32 %6079, 1
  store i32 %6080, ptr @test_count, align 4, !tbaa !5
  %6081 = load ptr, ptr %39, align 8, !tbaa !9
  %6082 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %6081)
  br i1 %6082, label %6083, label %6136

6083:                                             ; preds = %6078
  br label %6084

6084:                                             ; preds = %6083
  br label %6085

6085:                                             ; preds = %6084
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %6086 = call ptr @__errno_location() #11
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  store i32 %6087, ptr %119, align 4, !tbaa !5
  %6088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6089 = call i32 @s2n_print_stacktrace(ptr noundef %6088)
  %6090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6091 = trunc i8 %6090 to i1
  br i1 %6091, label %6092, label %6114

6092:                                             ; preds = %6085
  %6093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6094 = call i32 @fileno(ptr noundef %6093) #10
  %6095 = call i32 @isatty(i32 noundef %6094) #10
  %6096 = icmp ne i32 %6095, 0
  br i1 %6096, label %6097, label %6114

6097:                                             ; preds = %6092
  %6098 = load i32, ptr %119, align 4, !tbaa !5
  %6099 = call ptr @__errno_location() #11
  store i32 %6098, ptr %6099, align 4, !tbaa !5
  %6100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6101 = load i32, ptr @test_count, align 4, !tbaa !5
  %6102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  %6104 = call ptr @s2n_strerror(i32 noundef %6103, ptr noundef @.str.4)
  %6105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6106 = load i32, ptr %6105, align 4, !tbaa !5
  %6107 = call ptr @s2n_strerror_debug(i32 noundef %6106, ptr noundef @.str.4)
  %6108 = call ptr @__errno_location() #11
  %6109 = load i32, ptr %6108, align 4, !tbaa !5
  %6110 = call ptr @strerror(i32 noundef %6109) #10
  %6111 = call ptr @__errno_location() #11
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6100, ptr noundef @.str.2, i32 noundef %6101, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6104, ptr noundef %6107, ptr noundef %6110, i32 noundef %6112) #10
  br label %6131

6114:                                             ; preds = %6092, %6085
  %6115 = load i32, ptr %119, align 4, !tbaa !5
  %6116 = call ptr @__errno_location() #11
  store i32 %6115, ptr %6116, align 4, !tbaa !5
  %6117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6118 = load i32, ptr @test_count, align 4, !tbaa !5
  %6119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call ptr @s2n_strerror(i32 noundef %6120, ptr noundef @.str.4)
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror_debug(i32 noundef %6123, ptr noundef @.str.4)
  %6125 = call ptr @__errno_location() #11
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @strerror(i32 noundef %6126) #10
  %6128 = call ptr @__errno_location() #11
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6117, ptr noundef @.str.5, i32 noundef %6118, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6121, ptr noundef %6124, ptr noundef %6127, i32 noundef %6129) #10
  br label %6131

6131:                                             ; preds = %6114, %6097
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %6132

6132:                                             ; preds = %6131
  br label %6133

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

6134:                                             ; No predecessors!
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

6136:                                             ; preds = %6135, %6078
  br label %6137

6137:                                             ; preds = %6136
  br label %6138

6138:                                             ; preds = %6137
  br label %6139

6139:                                             ; preds = %6138
  %6140 = load i64, ptr %117, align 8, !tbaa !15
  %6141 = add i64 %6140, 1
  store i64 %6141, ptr %117, align 8, !tbaa !15
  br label %6009, !llvm.loop !51

6142:                                             ; preds = %6012
  call void @llvm.lifetime.start.p0(i64 8925, ptr %120) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %120, ptr align 16 @__const.main.tls13_security_policy_strings, i64 8925, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #10
  store i64 0, ptr %121, align 8, !tbaa !15
  br label %6143

6143:                                             ; preds = %6273, %6142
  %6144 = load i64, ptr %121, align 8, !tbaa !15
  %6145 = icmp ult i64 %6144, 35
  br i1 %6145, label %6147, label %6146

6146:                                             ; preds = %6143
  store i32 567, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  br label %6276

6147:                                             ; preds = %6143
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %6148

6148:                                             ; preds = %6147
  %6149 = load i32, ptr @test_count, align 4, !tbaa !5
  %6150 = add nsw i32 %6149, 1
  store i32 %6150, ptr @test_count, align 4, !tbaa !5
  %6151 = load i64, ptr %121, align 8, !tbaa !15
  %6152 = getelementptr inbounds [35 x [255 x i8]], ptr %120, i64 0, i64 %6151
  %6153 = getelementptr inbounds [255 x i8], ptr %6152, i64 0, i64 0
  %6154 = call i32 @s2n_find_security_policy_from_version(ptr noundef %6153, ptr noundef %39)
  %6155 = icmp eq i32 %6154, -1
  br i1 %6155, label %6156, label %6209

6156:                                             ; preds = %6148
  br label %6157

6157:                                             ; preds = %6156
  br label %6158

6158:                                             ; preds = %6157
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %6159 = call ptr @__errno_location() #11
  %6160 = load i32, ptr %6159, align 4, !tbaa !5
  store i32 %6160, ptr %122, align 4, !tbaa !5
  %6161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6162 = call i32 @s2n_print_stacktrace(ptr noundef %6161)
  %6163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6164 = trunc i8 %6163 to i1
  br i1 %6164, label %6165, label %6187

6165:                                             ; preds = %6158
  %6166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6167 = call i32 @fileno(ptr noundef %6166) #10
  %6168 = call i32 @isatty(i32 noundef %6167) #10
  %6169 = icmp ne i32 %6168, 0
  br i1 %6169, label %6170, label %6187

6170:                                             ; preds = %6165
  %6171 = load i32, ptr %122, align 4, !tbaa !5
  %6172 = call ptr @__errno_location() #11
  store i32 %6171, ptr %6172, align 4, !tbaa !5
  %6173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6174 = load i32, ptr @test_count, align 4, !tbaa !5
  %6175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6176 = load i32, ptr %6175, align 4, !tbaa !5
  %6177 = call ptr @s2n_strerror(i32 noundef %6176, ptr noundef @.str.4)
  %6178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6179 = load i32, ptr %6178, align 4, !tbaa !5
  %6180 = call ptr @s2n_strerror_debug(i32 noundef %6179, ptr noundef @.str.4)
  %6181 = call ptr @__errno_location() #11
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @strerror(i32 noundef %6182) #10
  %6184 = call ptr @__errno_location() #11
  %6185 = load i32, ptr %6184, align 4, !tbaa !5
  %6186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6173, ptr noundef @.str.2, i32 noundef %6174, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 387, ptr noundef %6177, ptr noundef %6180, ptr noundef %6183, i32 noundef %6185) #10
  br label %6204

6187:                                             ; preds = %6165, %6158
  %6188 = load i32, ptr %122, align 4, !tbaa !5
  %6189 = call ptr @__errno_location() #11
  store i32 %6188, ptr %6189, align 4, !tbaa !5
  %6190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6191 = load i32, ptr @test_count, align 4, !tbaa !5
  %6192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6193 = load i32, ptr %6192, align 4, !tbaa !5
  %6194 = call ptr @s2n_strerror(i32 noundef %6193, ptr noundef @.str.4)
  %6195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6196 = load i32, ptr %6195, align 4, !tbaa !5
  %6197 = call ptr @s2n_strerror_debug(i32 noundef %6196, ptr noundef @.str.4)
  %6198 = call ptr @__errno_location() #11
  %6199 = load i32, ptr %6198, align 4, !tbaa !5
  %6200 = call ptr @strerror(i32 noundef %6199) #10
  %6201 = call ptr @__errno_location() #11
  %6202 = load i32, ptr %6201, align 4, !tbaa !5
  %6203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6190, ptr noundef @.str.5, i32 noundef %6191, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 387, ptr noundef %6194, ptr noundef %6197, ptr noundef %6200, i32 noundef %6202) #10
  br label %6204

6204:                                             ; preds = %6187, %6170
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %6205

6205:                                             ; preds = %6204
  br label %6206

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

6207:                                             ; No predecessors!
  br label %6208

6208:                                             ; preds = %6207
  br label %6209

6209:                                             ; preds = %6208, %6148
  br label %6210

6210:                                             ; preds = %6209
  br label %6211

6211:                                             ; preds = %6210
  br label %6212

6212:                                             ; preds = %6211
  %6213 = load i32, ptr @test_count, align 4, !tbaa !5
  %6214 = add nsw i32 %6213, 1
  store i32 %6214, ptr @test_count, align 4, !tbaa !5
  %6215 = load ptr, ptr %39, align 8, !tbaa !9
  %6216 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %6215)
  br i1 %6216, label %6270, label %6217

6217:                                             ; preds = %6212
  br label %6218

6218:                                             ; preds = %6217
  br label %6219

6219:                                             ; preds = %6218
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %6220 = call ptr @__errno_location() #11
  %6221 = load i32, ptr %6220, align 4, !tbaa !5
  store i32 %6221, ptr %123, align 4, !tbaa !5
  %6222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6223 = call i32 @s2n_print_stacktrace(ptr noundef %6222)
  %6224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6225 = trunc i8 %6224 to i1
  br i1 %6225, label %6226, label %6248

6226:                                             ; preds = %6219
  %6227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6228 = call i32 @fileno(ptr noundef %6227) #10
  %6229 = call i32 @isatty(i32 noundef %6228) #10
  %6230 = icmp ne i32 %6229, 0
  br i1 %6230, label %6231, label %6248

6231:                                             ; preds = %6226
  %6232 = load i32, ptr %123, align 4, !tbaa !5
  %6233 = call ptr @__errno_location() #11
  store i32 %6232, ptr %6233, align 4, !tbaa !5
  %6234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6235 = load i32, ptr @test_count, align 4, !tbaa !5
  %6236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6237 = load i32, ptr %6236, align 4, !tbaa !5
  %6238 = call ptr @s2n_strerror(i32 noundef %6237, ptr noundef @.str.4)
  %6239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6240 = load i32, ptr %6239, align 4, !tbaa !5
  %6241 = call ptr @s2n_strerror_debug(i32 noundef %6240, ptr noundef @.str.4)
  %6242 = call ptr @__errno_location() #11
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  %6244 = call ptr @strerror(i32 noundef %6243) #10
  %6245 = call ptr @__errno_location() #11
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6234, ptr noundef @.str.2, i32 noundef %6235, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 388, ptr noundef %6238, ptr noundef %6241, ptr noundef %6244, i32 noundef %6246) #10
  br label %6265

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

6265:                                             ; preds = %6248, %6231
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %6266

6266:                                             ; preds = %6265
  br label %6267

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

6268:                                             ; No predecessors!
  br label %6269

6269:                                             ; preds = %6268
  br label %6270

6270:                                             ; preds = %6269, %6212
  br label %6271

6271:                                             ; preds = %6270
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

6273:                                             ; preds = %6272
  %6274 = load i64, ptr %121, align 8, !tbaa !15
  %6275 = add i64 %6274, 1
  store i64 %6275, ptr %121, align 8, !tbaa !15
  br label %6143, !llvm.loop !52

6276:                                             ; preds = %6146
  call void @llvm.lifetime.end.p0(i64 8925, ptr %120) #10
  call void @llvm.lifetime.end.p0(i64 11475, ptr %116) #10
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %6277

6277:                                             ; preds = %6276
  %6278 = load i32, ptr @test_count, align 4, !tbaa !5
  %6279 = add nsw i32 %6278, 1
  store i32 %6279, ptr @test_count, align 4, !tbaa !5
  %6280 = load ptr, ptr %39, align 8, !tbaa !9
  %6281 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %6280)
  br i1 %6281, label %6282, label %6335

6282:                                             ; preds = %6277
  br label %6283

6283:                                             ; preds = %6282
  br label %6284

6284:                                             ; preds = %6283
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %6285 = call ptr @__errno_location() #11
  %6286 = load i32, ptr %6285, align 4, !tbaa !5
  store i32 %6286, ptr %124, align 4, !tbaa !5
  %6287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6288 = call i32 @s2n_print_stacktrace(ptr noundef %6287)
  %6289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6290 = trunc i8 %6289 to i1
  br i1 %6290, label %6291, label %6313

6291:                                             ; preds = %6284
  %6292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6293 = call i32 @fileno(ptr noundef %6292) #10
  %6294 = call i32 @isatty(i32 noundef %6293) #10
  %6295 = icmp ne i32 %6294, 0
  br i1 %6295, label %6296, label %6313

6296:                                             ; preds = %6291
  %6297 = load i32, ptr %124, align 4, !tbaa !5
  %6298 = call ptr @__errno_location() #11
  store i32 %6297, ptr %6298, align 4, !tbaa !5
  %6299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6300 = load i32, ptr @test_count, align 4, !tbaa !5
  %6301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6302 = load i32, ptr %6301, align 4, !tbaa !5
  %6303 = call ptr @s2n_strerror(i32 noundef %6302, ptr noundef @.str.4)
  %6304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6305 = load i32, ptr %6304, align 4, !tbaa !5
  %6306 = call ptr @s2n_strerror_debug(i32 noundef %6305, ptr noundef @.str.4)
  %6307 = call ptr @__errno_location() #11
  %6308 = load i32, ptr %6307, align 4, !tbaa !5
  %6309 = call ptr @strerror(i32 noundef %6308) #10
  %6310 = call ptr @__errno_location() #11
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6299, ptr noundef @.str.2, i32 noundef %6300, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 395, ptr noundef %6303, ptr noundef %6306, ptr noundef %6309, i32 noundef %6311) #10
  br label %6330

6313:                                             ; preds = %6291, %6284
  %6314 = load i32, ptr %124, align 4, !tbaa !5
  %6315 = call ptr @__errno_location() #11
  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() #11
  %6325 = load i32, ptr %6324, align 4, !tbaa !5
  %6326 = call ptr @strerror(i32 noundef %6325) #10
  %6327 = call ptr @__errno_location() #11
  %6328 = load i32, ptr %6327, align 4, !tbaa !5
  %6329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6316, ptr noundef @.str.5, i32 noundef %6317, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 395, ptr noundef %6320, ptr noundef %6323, ptr noundef %6326, i32 noundef %6328) #10
  br label %6330

6330:                                             ; preds = %6313, %6296
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %6331

6331:                                             ; preds = %6330
  br label %6332

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

6333:                                             ; No predecessors!
  br label %6334

6334:                                             ; preds = %6333
  br label %6335

6335:                                             ; preds = %6334, %6277
  br label %6336

6336:                                             ; preds = %6335
  br label %6337

6337:                                             ; preds = %6336
  br label %6338

6338:                                             ; preds = %6337
  %6339 = load i32, ptr @test_count, align 4, !tbaa !5
  %6340 = add nsw i32 %6339, 1
  store i32 %6340, ptr @test_count, align 4, !tbaa !5
  %6341 = load ptr, ptr %39, align 8, !tbaa !9
  %6342 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %6341)
  br i1 %6342, label %6343, label %6396

6343:                                             ; preds = %6338
  br label %6344

6344:                                             ; preds = %6343
  br label %6345

6345:                                             ; preds = %6344
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %6346 = call ptr @__errno_location() #11
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  store i32 %6347, ptr %125, align 4, !tbaa !5
  %6348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6349 = call i32 @s2n_print_stacktrace(ptr noundef %6348)
  %6350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6351 = trunc i8 %6350 to i1
  br i1 %6351, label %6352, label %6374

6352:                                             ; preds = %6345
  %6353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6354 = call i32 @fileno(ptr noundef %6353) #10
  %6355 = call i32 @isatty(i32 noundef %6354) #10
  %6356 = icmp ne i32 %6355, 0
  br i1 %6356, label %6357, label %6374

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

6374:                                             ; preds = %6352, %6345
  %6375 = load i32, ptr %125, align 4, !tbaa !5
  %6376 = call ptr @__errno_location() #11
  store i32 %6375, ptr %6376, align 4, !tbaa !5
  %6377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6378 = load i32, ptr @test_count, align 4, !tbaa !5
  %6379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6380 = load i32, ptr %6379, align 4, !tbaa !5
  %6381 = call ptr @s2n_strerror(i32 noundef %6380, ptr noundef @.str.4)
  %6382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6383 = load i32, ptr %6382, align 4, !tbaa !5
  %6384 = call ptr @s2n_strerror_debug(i32 noundef %6383, ptr noundef @.str.4)
  %6385 = call ptr @__errno_location() #11
  %6386 = load i32, ptr %6385, align 4, !tbaa !5
  %6387 = call ptr @strerror(i32 noundef %6386) #10
  %6388 = call ptr @__errno_location() #11
  %6389 = load i32, ptr %6388, align 4, !tbaa !5
  %6390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6377, ptr noundef @.str.5, i32 noundef %6378, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 396, ptr noundef %6381, ptr noundef %6384, ptr noundef %6387, i32 noundef %6389) #10
  br label %6391

6391:                                             ; preds = %6374, %6357
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %6392

6392:                                             ; preds = %6391
  br label %6393

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

6394:                                             ; No predecessors!
  br label %6395

6395:                                             ; preds = %6394
  br label %6396

6396:                                             ; preds = %6395, %6338
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

6398:                                             ; preds = %6397
  br label %6399

6399:                                             ; preds = %6398
  %6400 = load i32, ptr @test_count, align 4, !tbaa !5
  %6401 = add nsw i32 %6400, 1
  store i32 %6401, ptr @test_count, align 4, !tbaa !5
  %6402 = load ptr, ptr %39, align 8, !tbaa !9
  %6403 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %6402)
  br i1 %6403, label %6404, label %6457

6404:                                             ; preds = %6399
  br label %6405

6405:                                             ; preds = %6404
  br label %6406

6406:                                             ; preds = %6405
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %6407 = call ptr @__errno_location() #11
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  store i32 %6408, ptr %126, align 4, !tbaa !5
  %6409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6410 = call i32 @s2n_print_stacktrace(ptr noundef %6409)
  %6411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6412 = trunc i8 %6411 to i1
  br i1 %6412, label %6413, label %6435

6413:                                             ; preds = %6406
  %6414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6415 = call i32 @fileno(ptr noundef %6414) #10
  %6416 = call i32 @isatty(i32 noundef %6415) #10
  %6417 = icmp ne i32 %6416, 0
  br i1 %6417, label %6418, label %6435

6418:                                             ; preds = %6413
  %6419 = load i32, ptr %126, align 4, !tbaa !5
  %6420 = call ptr @__errno_location() #11
  store i32 %6419, ptr %6420, align 4, !tbaa !5
  %6421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6422 = load i32, ptr @test_count, align 4, !tbaa !5
  %6423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  %6425 = call ptr @s2n_strerror(i32 noundef %6424, ptr noundef @.str.4)
  %6426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6427 = load i32, ptr %6426, align 4, !tbaa !5
  %6428 = call ptr @s2n_strerror_debug(i32 noundef %6427, ptr noundef @.str.4)
  %6429 = call ptr @__errno_location() #11
  %6430 = load i32, ptr %6429, align 4, !tbaa !5
  %6431 = call ptr @strerror(i32 noundef %6430) #10
  %6432 = call ptr @__errno_location() #11
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  %6434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6421, ptr noundef @.str.2, i32 noundef %6422, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 397, ptr noundef %6425, ptr noundef %6428, ptr noundef %6431, i32 noundef %6433) #10
  br label %6452

6435:                                             ; preds = %6413, %6406
  %6436 = load i32, ptr %126, align 4, !tbaa !5
  %6437 = call ptr @__errno_location() #11
  store i32 %6436, ptr %6437, align 4, !tbaa !5
  %6438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6439 = load i32, ptr @test_count, align 4, !tbaa !5
  %6440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6441 = load i32, ptr %6440, align 4, !tbaa !5
  %6442 = call ptr @s2n_strerror(i32 noundef %6441, ptr noundef @.str.4)
  %6443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6444 = load i32, ptr %6443, align 4, !tbaa !5
  %6445 = call ptr @s2n_strerror_debug(i32 noundef %6444, ptr noundef @.str.4)
  %6446 = call ptr @__errno_location() #11
  %6447 = load i32, ptr %6446, align 4, !tbaa !5
  %6448 = call ptr @strerror(i32 noundef %6447) #10
  %6449 = call ptr @__errno_location() #11
  %6450 = load i32, ptr %6449, align 4, !tbaa !5
  %6451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6438, ptr noundef @.str.5, i32 noundef %6439, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 397, ptr noundef %6442, ptr noundef %6445, ptr noundef %6448, i32 noundef %6450) #10
  br label %6452

6452:                                             ; preds = %6435, %6418
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %6453

6453:                                             ; preds = %6452
  br label %6454

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

6455:                                             ; No predecessors!
  br label %6456

6456:                                             ; preds = %6455
  br label %6457

6457:                                             ; preds = %6456, %6399
  br label %6458

6458:                                             ; preds = %6457
  br label %6459

6459:                                             ; preds = %6458
  %6460 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_chacha20_poly1305, i32 0, i32 3), align 8, !tbaa !53
  %6461 = call zeroext i1 %6460()
  br i1 %6461, label %6462, label %6762

6462:                                             ; preds = %6459
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  store i64 0, ptr %127, align 8, !tbaa !15
  br label %6463

6463:                                             ; preds = %6758, %6462
  %6464 = load i64, ptr %127, align 8, !tbaa !15
  %6465 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %6464
  %6466 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %6465, i32 0, i32 0
  %6467 = load ptr, ptr %6466, align 8, !tbaa !17
  %6468 = icmp ne ptr %6467, null
  br i1 %6468, label %6470, label %6469

6469:                                             ; preds = %6463
  store i32 600, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  br label %6761

6470:                                             ; preds = %6463
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %6471 = load i64, ptr %127, align 8, !tbaa !15
  %6472 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %6471
  %6473 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %6472, i32 0, i32 1
  %6474 = load ptr, ptr %6473, align 8, !tbaa !19
  store ptr %6474, ptr %128, align 8, !tbaa !9
  br label %6475

6475:                                             ; preds = %6470
  %6476 = load i32, ptr @test_count, align 4, !tbaa !5
  %6477 = add nsw i32 %6476, 1
  store i32 %6477, ptr @test_count, align 4, !tbaa !5
  %6478 = load ptr, ptr %128, align 8, !tbaa !9
  %6479 = icmp eq ptr %6478, null
  br i1 %6479, label %6480, label %6533

6480:                                             ; preds = %6475
  br label %6481

6481:                                             ; preds = %6480
  br label %6482

6482:                                             ; preds = %6481
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %6483 = call ptr @__errno_location() #11
  %6484 = load i32, ptr %6483, align 4, !tbaa !5
  store i32 %6484, ptr %129, align 4, !tbaa !5
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = call i32 @s2n_print_stacktrace(ptr noundef %6485)
  %6487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6488 = trunc i8 %6487 to i1
  br i1 %6488, label %6489, label %6511

6489:                                             ; preds = %6482
  %6490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6491 = call i32 @fileno(ptr noundef %6490) #10
  %6492 = call i32 @isatty(i32 noundef %6491) #10
  %6493 = icmp ne i32 %6492, 0
  br i1 %6493, label %6494, label %6511

6494:                                             ; preds = %6489
  %6495 = load i32, ptr %129, align 4, !tbaa !5
  %6496 = call ptr @__errno_location() #11
  store i32 %6495, ptr %6496, align 4, !tbaa !5
  %6497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6498 = load i32, ptr @test_count, align 4, !tbaa !5
  %6499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  %6501 = call ptr @s2n_strerror(i32 noundef %6500, ptr noundef @.str.4)
  %6502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6503 = load i32, ptr %6502, align 4, !tbaa !5
  %6504 = call ptr @s2n_strerror_debug(i32 noundef %6503, ptr noundef @.str.4)
  %6505 = call ptr @__errno_location() #11
  %6506 = load i32, ptr %6505, align 4, !tbaa !5
  %6507 = call ptr @strerror(i32 noundef %6506) #10
  %6508 = call ptr @__errno_location() #11
  %6509 = load i32, ptr %6508, align 4, !tbaa !5
  %6510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6497, ptr noundef @.str.2, i32 noundef %6498, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 404, ptr noundef %6501, ptr noundef %6504, ptr noundef %6507, i32 noundef %6509) #10
  br label %6528

6511:                                             ; preds = %6489, %6482
  %6512 = load i32, ptr %129, align 4, !tbaa !5
  %6513 = call ptr @__errno_location() #11
  store i32 %6512, ptr %6513, align 4, !tbaa !5
  %6514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6515 = load i32, ptr @test_count, align 4, !tbaa !5
  %6516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6517 = load i32, ptr %6516, align 4, !tbaa !5
  %6518 = call ptr @s2n_strerror(i32 noundef %6517, ptr noundef @.str.4)
  %6519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6520 = load i32, ptr %6519, align 4, !tbaa !5
  %6521 = call ptr @s2n_strerror_debug(i32 noundef %6520, ptr noundef @.str.4)
  %6522 = call ptr @__errno_location() #11
  %6523 = load i32, ptr %6522, align 4, !tbaa !5
  %6524 = call ptr @strerror(i32 noundef %6523) #10
  %6525 = call ptr @__errno_location() #11
  %6526 = load i32, ptr %6525, align 4, !tbaa !5
  %6527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6514, ptr noundef @.str.5, i32 noundef %6515, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 404, ptr noundef %6518, ptr noundef %6521, ptr noundef %6524, i32 noundef %6526) #10
  br label %6528

6528:                                             ; preds = %6511, %6494
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %6529

6529:                                             ; preds = %6528
  br label %6530

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

6531:                                             ; No predecessors!
  br label %6532

6532:                                             ; preds = %6531
  br label %6533

6533:                                             ; preds = %6532, %6475
  br label %6534

6534:                                             ; preds = %6533
  br label %6535

6535:                                             ; preds = %6534
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #10
  %6536 = load ptr, ptr %128, align 8, !tbaa !9
  %6537 = getelementptr inbounds %struct.s2n_security_policy, ptr %6536, i32 0, i32 1
  %6538 = load ptr, ptr %6537, align 8, !tbaa !31
  store ptr %6538, ptr %130, align 8, !tbaa !9
  br label %6539

6539:                                             ; preds = %6535
  %6540 = load i32, ptr @test_count, align 4, !tbaa !5
  %6541 = add nsw i32 %6540, 1
  store i32 %6541, ptr @test_count, align 4, !tbaa !5
  %6542 = load ptr, ptr %130, align 8, !tbaa !9
  %6543 = icmp eq ptr %6542, null
  br i1 %6543, label %6544, label %6597

6544:                                             ; preds = %6539
  br label %6545

6545:                                             ; preds = %6544
  br label %6546

6546:                                             ; preds = %6545
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %6547 = call ptr @__errno_location() #11
  %6548 = load i32, ptr %6547, align 4, !tbaa !5
  store i32 %6548, ptr %131, align 4, !tbaa !5
  %6549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6550 = call i32 @s2n_print_stacktrace(ptr noundef %6549)
  %6551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6552 = trunc i8 %6551 to i1
  br i1 %6552, label %6553, label %6575

6553:                                             ; preds = %6546
  %6554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6555 = call i32 @fileno(ptr noundef %6554) #10
  %6556 = call i32 @isatty(i32 noundef %6555) #10
  %6557 = icmp ne i32 %6556, 0
  br i1 %6557, label %6558, label %6575

6558:                                             ; preds = %6553
  %6559 = load i32, ptr %131, align 4, !tbaa !5
  %6560 = call ptr @__errno_location() #11
  store i32 %6559, ptr %6560, align 4, !tbaa !5
  %6561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6562 = load i32, ptr @test_count, align 4, !tbaa !5
  %6563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6564 = load i32, ptr %6563, align 4, !tbaa !5
  %6565 = call ptr @s2n_strerror(i32 noundef %6564, ptr noundef @.str.4)
  %6566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call ptr @s2n_strerror_debug(i32 noundef %6567, ptr noundef @.str.4)
  %6569 = call ptr @__errno_location() #11
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @strerror(i32 noundef %6570) #10
  %6572 = call ptr @__errno_location() #11
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6561, ptr noundef @.str.2, i32 noundef %6562, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 406, ptr noundef %6565, ptr noundef %6568, ptr noundef %6571, i32 noundef %6573) #10
  br label %6592

6575:                                             ; preds = %6553, %6546
  %6576 = load i32, ptr %131, align 4, !tbaa !5
  %6577 = call ptr @__errno_location() #11
  store i32 %6576, ptr %6577, align 4, !tbaa !5
  %6578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6579 = load i32, ptr @test_count, align 4, !tbaa !5
  %6580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6581 = load i32, ptr %6580, align 4, !tbaa !5
  %6582 = call ptr @s2n_strerror(i32 noundef %6581, ptr noundef @.str.4)
  %6583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6584 = load i32, ptr %6583, align 4, !tbaa !5
  %6585 = call ptr @s2n_strerror_debug(i32 noundef %6584, ptr noundef @.str.4)
  %6586 = call ptr @__errno_location() #11
  %6587 = load i32, ptr %6586, align 4, !tbaa !5
  %6588 = call ptr @strerror(i32 noundef %6587) #10
  %6589 = call ptr @__errno_location() #11
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  %6591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6578, ptr noundef @.str.5, i32 noundef %6579, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 406, ptr noundef %6582, ptr noundef %6585, ptr noundef %6588, i32 noundef %6590) #10
  br label %6592

6592:                                             ; preds = %6575, %6558
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %6593

6593:                                             ; preds = %6592
  br label %6594

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

6595:                                             ; No predecessors!
  br label %6596

6596:                                             ; preds = %6595
  br label %6597

6597:                                             ; preds = %6596, %6539
  br label %6598

6598:                                             ; preds = %6597
  br label %6599

6599:                                             ; preds = %6598
  %6600 = load ptr, ptr %130, align 8, !tbaa !9
  %6601 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %6600, i32 0, i32 2
  %6602 = load i8, ptr %6601, align 8, !tbaa !55, !range !13, !noundef !14
  %6603 = trunc i8 %6602 to i1
  br i1 %6603, label %6605, label %6604

6604:                                             ; preds = %6599
  store i32 602, ptr %21, align 4
  br label %6755

6605:                                             ; preds = %6599
  call void @llvm.lifetime.start.p0(i64 1, ptr %132) #10
  store i8 0, ptr %132, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  store i64 0, ptr %133, align 8, !tbaa !15
  br label %6606

6606:                                             ; preds = %6689, %6605
  %6607 = load i64, ptr %133, align 8, !tbaa !15
  %6608 = load ptr, ptr %130, align 8, !tbaa !9
  %6609 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %6608, i32 0, i32 0
  %6610 = load i16, ptr %6609, align 8, !tbaa !32
  %6611 = zext i16 %6610 to i64
  %6612 = icmp ult i64 %6607, %6611
  br i1 %6612, label %6614, label %6613

6613:                                             ; preds = %6606
  store i32 615, ptr %21, align 4
  br label %6692

6614:                                             ; preds = %6606
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #10
  %6615 = load ptr, ptr %130, align 8, !tbaa !9
  %6616 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %6615, i32 0, i32 1
  %6617 = load ptr, ptr %6616, align 8, !tbaa !34
  %6618 = load i64, ptr %133, align 8, !tbaa !15
  %6619 = getelementptr inbounds ptr, ptr %6617, i64 %6618
  %6620 = load ptr, ptr %6619, align 8, !tbaa !9
  store ptr %6620, ptr %134, align 8, !tbaa !9
  br label %6621

6621:                                             ; preds = %6614
  %6622 = load i32, ptr @test_count, align 4, !tbaa !5
  %6623 = add nsw i32 %6622, 1
  store i32 %6623, ptr @test_count, align 4, !tbaa !5
  %6624 = load ptr, ptr %134, align 8, !tbaa !9
  %6625 = icmp eq ptr %6624, null
  br i1 %6625, label %6626, label %6679

6626:                                             ; preds = %6621
  br label %6627

6627:                                             ; preds = %6626
  br label %6628

6628:                                             ; preds = %6627
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %6629 = call ptr @__errno_location() #11
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  store i32 %6630, ptr %135, align 4, !tbaa !5
  %6631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6632 = call i32 @s2n_print_stacktrace(ptr noundef %6631)
  %6633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6634 = trunc i8 %6633 to i1
  br i1 %6634, label %6635, label %6657

6635:                                             ; preds = %6628
  %6636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6637 = call i32 @fileno(ptr noundef %6636) #10
  %6638 = call i32 @isatty(i32 noundef %6637) #10
  %6639 = icmp ne i32 %6638, 0
  br i1 %6639, label %6640, label %6657

6640:                                             ; preds = %6635
  %6641 = load i32, ptr %135, align 4, !tbaa !5
  %6642 = call ptr @__errno_location() #11
  store i32 %6641, ptr %6642, align 4, !tbaa !5
  %6643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6644 = load i32, ptr @test_count, align 4, !tbaa !5
  %6645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call ptr @s2n_strerror(i32 noundef %6646, ptr noundef @.str.4)
  %6648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  %6650 = call ptr @s2n_strerror_debug(i32 noundef %6649, ptr noundef @.str.4)
  %6651 = call ptr @__errno_location() #11
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  %6653 = call ptr @strerror(i32 noundef %6652) #10
  %6654 = call ptr @__errno_location() #11
  %6655 = load i32, ptr %6654, align 4, !tbaa !5
  %6656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6643, ptr noundef @.str.2, i32 noundef %6644, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 418, ptr noundef %6647, ptr noundef %6650, ptr noundef %6653, i32 noundef %6655) #10
  br label %6674

6657:                                             ; preds = %6635, %6628
  %6658 = load i32, ptr %135, align 4, !tbaa !5
  %6659 = call ptr @__errno_location() #11
  store i32 %6658, ptr %6659, align 4, !tbaa !5
  %6660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6661 = load i32, ptr @test_count, align 4, !tbaa !5
  %6662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6663 = load i32, ptr %6662, align 4, !tbaa !5
  %6664 = call ptr @s2n_strerror(i32 noundef %6663, ptr noundef @.str.4)
  %6665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6666 = load i32, ptr %6665, align 4, !tbaa !5
  %6667 = call ptr @s2n_strerror_debug(i32 noundef %6666, ptr noundef @.str.4)
  %6668 = call ptr @__errno_location() #11
  %6669 = load i32, ptr %6668, align 4, !tbaa !5
  %6670 = call ptr @strerror(i32 noundef %6669) #10
  %6671 = call ptr @__errno_location() #11
  %6672 = load i32, ptr %6671, align 4, !tbaa !5
  %6673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6660, ptr noundef @.str.5, i32 noundef %6661, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 418, ptr noundef %6664, ptr noundef %6667, ptr noundef %6670, i32 noundef %6672) #10
  br label %6674

6674:                                             ; preds = %6657, %6640
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %6675

6675:                                             ; preds = %6674
  br label %6676

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

6677:                                             ; No predecessors!
  br label %6678

6678:                                             ; preds = %6677
  br label %6679

6679:                                             ; preds = %6678, %6621
  br label %6680

6680:                                             ; preds = %6679
  br label %6681

6681:                                             ; preds = %6680
  %6682 = load ptr, ptr %134, align 8, !tbaa !9
  %6683 = call zeroext i1 @s2n_cipher_suite_uses_chacha20_alg(ptr noundef %6682)
  br i1 %6683, label %6684, label %6685

6684:                                             ; preds = %6681
  store i8 1, ptr %132, align 1, !tbaa !11
  store i32 615, ptr %21, align 4
  br label %6686

6685:                                             ; preds = %6681
  store i32 0, ptr %21, align 4
  br label %6686

6686:                                             ; preds = %6685, %6684
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #10
  %6687 = load i32, ptr %21, align 4
  switch i32 %6687, label %6692 [
    i32 0, label %6688
  ]

6688:                                             ; preds = %6686
  br label %6689

6689:                                             ; preds = %6688
  %6690 = load i64, ptr %133, align 8, !tbaa !15
  %6691 = add i64 %6690, 1
  store i64 %6691, ptr %133, align 8, !tbaa !15
  br label %6606, !llvm.loop !56

6692:                                             ; preds = %6686, %6613
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  br label %6693

6693:                                             ; preds = %6692
  br label %6694

6694:                                             ; preds = %6693
  %6695 = load i32, ptr @test_count, align 4, !tbaa !5
  %6696 = add nsw i32 %6695, 1
  store i32 %6696, ptr @test_count, align 4, !tbaa !5
  %6697 = load i8, ptr %132, align 1, !tbaa !11, !range !13, !noundef !14
  %6698 = trunc i8 %6697 to i1
  br i1 %6698, label %6752, label %6699

6699:                                             ; preds = %6694
  br label %6700

6700:                                             ; preds = %6699
  br label %6701

6701:                                             ; preds = %6700
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %6702 = call ptr @__errno_location() #11
  %6703 = load i32, ptr %6702, align 4, !tbaa !5
  store i32 %6703, ptr %136, align 4, !tbaa !5
  %6704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6705 = call i32 @s2n_print_stacktrace(ptr noundef %6704)
  %6706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6707 = trunc i8 %6706 to i1
  br i1 %6707, label %6708, label %6730

6708:                                             ; preds = %6701
  %6709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6710 = call i32 @fileno(ptr noundef %6709) #10
  %6711 = call i32 @isatty(i32 noundef %6710) #10
  %6712 = icmp ne i32 %6711, 0
  br i1 %6712, label %6713, label %6730

6713:                                             ; preds = %6708
  %6714 = load i32, ptr %136, align 4, !tbaa !5
  %6715 = call ptr @__errno_location() #11
  store i32 %6714, ptr %6715, align 4, !tbaa !5
  %6716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6717 = load i32, ptr @test_count, align 4, !tbaa !5
  %6718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6719 = load i32, ptr %6718, align 4, !tbaa !5
  %6720 = call ptr @s2n_strerror(i32 noundef %6719, ptr noundef @.str.4)
  %6721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6722 = load i32, ptr %6721, align 4, !tbaa !5
  %6723 = call ptr @s2n_strerror_debug(i32 noundef %6722, ptr noundef @.str.4)
  %6724 = call ptr @__errno_location() #11
  %6725 = load i32, ptr %6724, align 4, !tbaa !5
  %6726 = call ptr @strerror(i32 noundef %6725) #10
  %6727 = call ptr @__errno_location() #11
  %6728 = load i32, ptr %6727, align 4, !tbaa !5
  %6729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6716, ptr noundef @.str.2, i32 noundef %6717, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 427, ptr noundef %6720, ptr noundef %6723, ptr noundef %6726, i32 noundef %6728) #10
  br label %6747

6730:                                             ; preds = %6708, %6701
  %6731 = load i32, ptr %136, align 4, !tbaa !5
  %6732 = call ptr @__errno_location() #11
  store i32 %6731, ptr %6732, align 4, !tbaa !5
  %6733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6734 = load i32, ptr @test_count, align 4, !tbaa !5
  %6735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6736 = load i32, ptr %6735, align 4, !tbaa !5
  %6737 = call ptr @s2n_strerror(i32 noundef %6736, ptr noundef @.str.4)
  %6738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6739 = load i32, ptr %6738, align 4, !tbaa !5
  %6740 = call ptr @s2n_strerror_debug(i32 noundef %6739, ptr noundef @.str.4)
  %6741 = call ptr @__errno_location() #11
  %6742 = load i32, ptr %6741, align 4, !tbaa !5
  %6743 = call ptr @strerror(i32 noundef %6742) #10
  %6744 = call ptr @__errno_location() #11
  %6745 = load i32, ptr %6744, align 4, !tbaa !5
  %6746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6733, ptr noundef @.str.5, i32 noundef %6734, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 427, ptr noundef %6737, ptr noundef %6740, ptr noundef %6743, i32 noundef %6745) #10
  br label %6747

6747:                                             ; preds = %6730, %6713
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %6748

6748:                                             ; preds = %6747
  br label %6749

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

6750:                                             ; No predecessors!
  br label %6751

6751:                                             ; preds = %6750
  br label %6752

6752:                                             ; preds = %6751, %6694
  br label %6753

6753:                                             ; preds = %6752
  br label %6754

6754:                                             ; preds = %6753
  call void @llvm.lifetime.end.p0(i64 1, ptr %132) #10
  store i32 0, ptr %21, align 4
  br label %6755

6755:                                             ; preds = %6754, %6604
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  %6756 = load i32, ptr %21, align 4
  switch i32 %6756, label %19578 [
    i32 0, label %6757
    i32 602, label %6758
  ]

6757:                                             ; preds = %6755
  br label %6758

6758:                                             ; preds = %6757, %6755
  %6759 = load i64, ptr %127, align 8, !tbaa !15
  %6760 = add i64 %6759, 1
  store i64 %6760, ptr %127, align 8, !tbaa !15
  br label %6463, !llvm.loop !57

6761:                                             ; preds = %6469
  br label %6762

6762:                                             ; preds = %6761, %6459
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %137, ptr align 8 @__const.main.fake_suites, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %138) #10
  %6763 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %138, i32 0, i32 0
  store i16 1, ptr %6763, align 8, !tbaa !32
  %6764 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %138, i32 0, i32 1
  %6765 = getelementptr inbounds [1 x ptr], ptr %137, i64 0, i64 0
  store ptr %6765, ptr %6764, align 8, !tbaa !34
  %6766 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %138, i32 0, i32 2
  store i8 0, ptr %6766, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 40, ptr %139) #10
  call void @llvm.memset.p0.i64(ptr align 8 %139, i8 0, i64 40, i1 false)
  %6767 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %139, i32 0, i32 0
  store i8 1, ptr %6767, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %140) #10
  %6768 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 0
  store i8 31, ptr %6768, align 8, !tbaa !58
  %6769 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 1
  store ptr %138, ptr %6769, align 8, !tbaa !31
  %6770 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 2
  store ptr %139, ptr %6770, align 8, !tbaa !20
  %6771 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 3
  store ptr null, ptr %6771, align 8, !tbaa !38
  %6772 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 4
  store ptr null, ptr %6772, align 8, !tbaa !59
  %6773 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 5
  store ptr null, ptr %6773, align 8, !tbaa !60
  %6774 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 6
  store ptr null, ptr %6774, align 8, !tbaa !61
  %6775 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 7
  store i8 0, ptr %6775, align 8, !tbaa !62
  %6776 = getelementptr inbounds %struct.s2n_security_policy, ptr %140, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %6776, i8 0, i64 2, i1 false)
  store ptr %140, ptr %39, align 8, !tbaa !9
  br label %6777

6777:                                             ; preds = %6762
  %6778 = load i32, ptr @test_count, align 4, !tbaa !5
  %6779 = add nsw i32 %6778, 1
  store i32 %6779, ptr @test_count, align 4, !tbaa !5
  %6780 = load ptr, ptr %39, align 8, !tbaa !9
  %6781 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %6780)
  br i1 %6781, label %6835, label %6782

6782:                                             ; preds = %6777
  br label %6783

6783:                                             ; preds = %6782
  br label %6784

6784:                                             ; preds = %6783
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #10
  %6785 = call ptr @__errno_location() #11
  %6786 = load i32, ptr %6785, align 4, !tbaa !5
  store i32 %6786, ptr %141, align 4, !tbaa !5
  %6787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6788 = call i32 @s2n_print_stacktrace(ptr noundef %6787)
  %6789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6790 = trunc i8 %6789 to i1
  br i1 %6790, label %6791, label %6813

6791:                                             ; preds = %6784
  %6792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6793 = call i32 @fileno(ptr noundef %6792) #10
  %6794 = call i32 @isatty(i32 noundef %6793) #10
  %6795 = icmp ne i32 %6794, 0
  br i1 %6795, label %6796, label %6813

6796:                                             ; preds = %6791
  %6797 = load i32, ptr %141, align 4, !tbaa !5
  %6798 = call ptr @__errno_location() #11
  store i32 %6797, ptr %6798, align 4, !tbaa !5
  %6799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6800 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6802, ptr noundef @.str.4)
  %6804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call ptr @s2n_strerror_debug(i32 noundef %6805, ptr noundef @.str.4)
  %6807 = call ptr @__errno_location() #11
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  %6809 = call ptr @strerror(i32 noundef %6808) #10
  %6810 = call ptr @__errno_location() #11
  %6811 = load i32, ptr %6810, align 4, !tbaa !5
  %6812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6799, ptr noundef @.str.2, i32 noundef %6800, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 454, ptr noundef %6803, ptr noundef %6806, ptr noundef %6809, i32 noundef %6811) #10
  br label %6830

6813:                                             ; preds = %6791, %6784
  %6814 = load i32, ptr %141, align 4, !tbaa !5
  %6815 = call ptr @__errno_location() #11
  store i32 %6814, ptr %6815, align 4, !tbaa !5
  %6816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6817 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6819, ptr noundef @.str.4)
  %6821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call ptr @s2n_strerror_debug(i32 noundef %6822, ptr noundef @.str.4)
  %6824 = call ptr @__errno_location() #11
  %6825 = load i32, ptr %6824, align 4, !tbaa !5
  %6826 = call ptr @strerror(i32 noundef %6825) #10
  %6827 = call ptr @__errno_location() #11
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6816, ptr noundef @.str.5, i32 noundef %6817, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 454, ptr noundef %6820, ptr noundef %6823, ptr noundef %6826, i32 noundef %6828) #10
  br label %6830

6830:                                             ; preds = %6813, %6796
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #10
  br label %6831

6831:                                             ; preds = %6830
  br label %6832

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

6833:                                             ; No predecessors!
  br label %6834

6834:                                             ; preds = %6833
  br label %6835

6835:                                             ; preds = %6834, %6777
  br label %6836

6836:                                             ; preds = %6835
  br label %6837

6837:                                             ; preds = %6836
  br label %6838

6838:                                             ; preds = %6837
  %6839 = load i32, ptr @test_count, align 4, !tbaa !5
  %6840 = add nsw i32 %6839, 1
  store i32 %6840, ptr @test_count, align 4, !tbaa !5
  %6841 = load ptr, ptr %39, align 8, !tbaa !9
  %6842 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %6841)
  br i1 %6842, label %6843, label %6896

6843:                                             ; preds = %6838
  br label %6844

6844:                                             ; preds = %6843
  br label %6845

6845:                                             ; preds = %6844
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %6846 = call ptr @__errno_location() #11
  %6847 = load i32, ptr %6846, align 4, !tbaa !5
  store i32 %6847, ptr %142, align 4, !tbaa !5
  %6848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6849 = call i32 @s2n_print_stacktrace(ptr noundef %6848)
  %6850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6851 = trunc i8 %6850 to i1
  br i1 %6851, label %6852, label %6874

6852:                                             ; preds = %6845
  %6853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6854 = call i32 @fileno(ptr noundef %6853) #10
  %6855 = call i32 @isatty(i32 noundef %6854) #10
  %6856 = icmp ne i32 %6855, 0
  br i1 %6856, label %6857, label %6874

6857:                                             ; preds = %6852
  %6858 = load i32, ptr %142, align 4, !tbaa !5
  %6859 = call ptr @__errno_location() #11
  store i32 %6858, ptr %6859, align 4, !tbaa !5
  %6860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6861 = load i32, ptr @test_count, align 4, !tbaa !5
  %6862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6863 = load i32, ptr %6862, align 4, !tbaa !5
  %6864 = call ptr @s2n_strerror(i32 noundef %6863, ptr noundef @.str.4)
  %6865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6866 = load i32, ptr %6865, align 4, !tbaa !5
  %6867 = call ptr @s2n_strerror_debug(i32 noundef %6866, ptr noundef @.str.4)
  %6868 = call ptr @__errno_location() #11
  %6869 = load i32, ptr %6868, align 4, !tbaa !5
  %6870 = call ptr @strerror(i32 noundef %6869) #10
  %6871 = call ptr @__errno_location() #11
  %6872 = load i32, ptr %6871, align 4, !tbaa !5
  %6873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6860, ptr noundef @.str.2, i32 noundef %6861, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6864, ptr noundef %6867, ptr noundef %6870, i32 noundef %6872) #10
  br label %6891

6874:                                             ; preds = %6852, %6845
  %6875 = load i32, ptr %142, align 4, !tbaa !5
  %6876 = call ptr @__errno_location() #11
  store i32 %6875, ptr %6876, align 4, !tbaa !5
  %6877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6878 = load i32, ptr @test_count, align 4, !tbaa !5
  %6879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6880 = load i32, ptr %6879, align 4, !tbaa !5
  %6881 = call ptr @s2n_strerror(i32 noundef %6880, ptr noundef @.str.4)
  %6882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  %6884 = call ptr @s2n_strerror_debug(i32 noundef %6883, ptr noundef @.str.4)
  %6885 = call ptr @__errno_location() #11
  %6886 = load i32, ptr %6885, align 4, !tbaa !5
  %6887 = call ptr @strerror(i32 noundef %6886) #10
  %6888 = call ptr @__errno_location() #11
  %6889 = load i32, ptr %6888, align 4, !tbaa !5
  %6890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6877, ptr noundef @.str.5, i32 noundef %6878, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 455, ptr noundef %6881, ptr noundef %6884, ptr noundef %6887, i32 noundef %6889) #10
  br label %6891

6891:                                             ; preds = %6874, %6857
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %6892

6892:                                             ; preds = %6891
  br label %6893

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

6894:                                             ; No predecessors!
  br label %6895

6895:                                             ; preds = %6894
  br label %6896

6896:                                             ; preds = %6895, %6838
  br label %6897

6897:                                             ; preds = %6896
  br label %6898

6898:                                             ; preds = %6897
  br label %6899

6899:                                             ; preds = %6898
  %6900 = load i32, ptr @test_count, align 4, !tbaa !5
  %6901 = add nsw i32 %6900, 1
  store i32 %6901, ptr @test_count, align 4, !tbaa !5
  %6902 = load ptr, ptr %39, align 8, !tbaa !9
  %6903 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %6902)
  br i1 %6903, label %6957, label %6904

6904:                                             ; preds = %6899
  br label %6905

6905:                                             ; preds = %6904
  br label %6906

6906:                                             ; preds = %6905
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #10
  %6907 = call ptr @__errno_location() #11
  %6908 = load i32, ptr %6907, align 4, !tbaa !5
  store i32 %6908, ptr %143, align 4, !tbaa !5
  %6909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6910 = call i32 @s2n_print_stacktrace(ptr noundef %6909)
  %6911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6912 = trunc i8 %6911 to i1
  br i1 %6912, label %6913, label %6935

6913:                                             ; preds = %6906
  %6914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6915 = call i32 @fileno(ptr noundef %6914) #10
  %6916 = call i32 @isatty(i32 noundef %6915) #10
  %6917 = icmp ne i32 %6916, 0
  br i1 %6917, label %6918, label %6935

6918:                                             ; preds = %6913
  %6919 = load i32, ptr %143, align 4, !tbaa !5
  %6920 = call ptr @__errno_location() #11
  store i32 %6919, ptr %6920, align 4, !tbaa !5
  %6921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6922 = load i32, ptr @test_count, align 4, !tbaa !5
  %6923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = call ptr @s2n_strerror(i32 noundef %6924, ptr noundef @.str.4)
  %6926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6927 = load i32, ptr %6926, align 4, !tbaa !5
  %6928 = call ptr @s2n_strerror_debug(i32 noundef %6927, ptr noundef @.str.4)
  %6929 = call ptr @__errno_location() #11
  %6930 = load i32, ptr %6929, align 4, !tbaa !5
  %6931 = call ptr @strerror(i32 noundef %6930) #10
  %6932 = call ptr @__errno_location() #11
  %6933 = load i32, ptr %6932, align 4, !tbaa !5
  %6934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6921, ptr noundef @.str.2, i32 noundef %6922, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 456, ptr noundef %6925, ptr noundef %6928, ptr noundef %6931, i32 noundef %6933) #10
  br label %6952

6935:                                             ; preds = %6913, %6906
  %6936 = load i32, ptr %143, align 4, !tbaa !5
  %6937 = call ptr @__errno_location() #11
  store i32 %6936, ptr %6937, align 4, !tbaa !5
  %6938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6939 = load i32, ptr @test_count, align 4, !tbaa !5
  %6940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @s2n_strerror(i32 noundef %6941, ptr noundef @.str.4)
  %6943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call ptr @s2n_strerror_debug(i32 noundef %6944, ptr noundef @.str.4)
  %6946 = call ptr @__errno_location() #11
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  %6948 = call ptr @strerror(i32 noundef %6947) #10
  %6949 = call ptr @__errno_location() #11
  %6950 = load i32, ptr %6949, align 4, !tbaa !5
  %6951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6938, ptr noundef @.str.5, i32 noundef %6939, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 456, ptr noundef %6942, ptr noundef %6945, ptr noundef %6948, i32 noundef %6950) #10
  br label %6952

6952:                                             ; preds = %6935, %6918
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %6953

6953:                                             ; preds = %6952
  br label %6954

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

6955:                                             ; No predecessors!
  br label %6956

6956:                                             ; preds = %6955
  br label %6957

6957:                                             ; preds = %6956, %6899
  br label %6958

6958:                                             ; preds = %6957
  br label %6959

6959:                                             ; preds = %6958
  call void @llvm.lifetime.end.p0(i64 64, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %139) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %138) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #10
  %6960 = call ptr @s2n_config_new()
  store ptr %6960, ptr %144, align 8, !tbaa !9
  br label %6961

6961:                                             ; preds = %6959
  %6962 = load i32, ptr @test_count, align 4, !tbaa !5
  %6963 = add nsw i32 %6962, 1
  store i32 %6963, ptr @test_count, align 4, !tbaa !5
  %6964 = load ptr, ptr %144, align 8, !tbaa !9
  %6965 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6964, ptr noundef @.str.79)
  %6966 = icmp eq i32 %6965, -1
  br i1 %6966, label %6967, label %7020

6967:                                             ; preds = %6961
  br label %6968

6968:                                             ; preds = %6967
  br label %6969

6969:                                             ; preds = %6968
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #10
  %6970 = call ptr @__errno_location() #11
  %6971 = load i32, ptr %6970, align 4, !tbaa !5
  store i32 %6971, ptr %145, align 4, !tbaa !5
  %6972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6973 = call i32 @s2n_print_stacktrace(ptr noundef %6972)
  %6974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6975 = trunc i8 %6974 to i1
  br i1 %6975, label %6976, label %6998

6976:                                             ; preds = %6969
  %6977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6978 = call i32 @fileno(ptr noundef %6977) #10
  %6979 = call i32 @isatty(i32 noundef %6978) #10
  %6980 = icmp ne i32 %6979, 0
  br i1 %6980, label %6981, label %6998

6981:                                             ; preds = %6976
  %6982 = load i32, ptr %145, align 4, !tbaa !5
  %6983 = call ptr @__errno_location() #11
  store i32 %6982, ptr %6983, align 4, !tbaa !5
  %6984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6985 = load i32, ptr @test_count, align 4, !tbaa !5
  %6986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6987 = load i32, ptr %6986, align 4, !tbaa !5
  %6988 = call ptr @s2n_strerror(i32 noundef %6987, ptr noundef @.str.4)
  %6989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6990 = load i32, ptr %6989, align 4, !tbaa !5
  %6991 = call ptr @s2n_strerror_debug(i32 noundef %6990, ptr noundef @.str.4)
  %6992 = call ptr @__errno_location() #11
  %6993 = load i32, ptr %6992, align 4, !tbaa !5
  %6994 = call ptr @strerror(i32 noundef %6993) #10
  %6995 = call ptr @__errno_location() #11
  %6996 = load i32, ptr %6995, align 4, !tbaa !5
  %6997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6984, ptr noundef @.str.2, i32 noundef %6985, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 461, ptr noundef %6988, ptr noundef %6991, ptr noundef %6994, i32 noundef %6996) #10
  br label %7015

6998:                                             ; preds = %6976, %6969
  %6999 = load i32, ptr %145, align 4, !tbaa !5
  %7000 = call ptr @__errno_location() #11
  store i32 %6999, ptr %7000, align 4, !tbaa !5
  %7001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7002 = load i32, ptr @test_count, align 4, !tbaa !5
  %7003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7004 = load i32, ptr %7003, align 4, !tbaa !5
  %7005 = call ptr @s2n_strerror(i32 noundef %7004, ptr noundef @.str.4)
  %7006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7007 = load i32, ptr %7006, align 4, !tbaa !5
  %7008 = call ptr @s2n_strerror_debug(i32 noundef %7007, ptr noundef @.str.4)
  %7009 = call ptr @__errno_location() #11
  %7010 = load i32, ptr %7009, align 4, !tbaa !5
  %7011 = call ptr @strerror(i32 noundef %7010) #10
  %7012 = call ptr @__errno_location() #11
  %7013 = load i32, ptr %7012, align 4, !tbaa !5
  %7014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7001, ptr noundef @.str.5, i32 noundef %7002, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 461, ptr noundef %7005, ptr noundef %7008, ptr noundef %7011, i32 noundef %7013) #10
  br label %7015

7015:                                             ; preds = %6998, %6981
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %7016

7016:                                             ; preds = %7015
  br label %7017

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

7018:                                             ; No predecessors!
  br label %7019

7019:                                             ; preds = %7018
  br label %7020

7020:                                             ; preds = %7019, %6961
  br label %7021

7021:                                             ; preds = %7020
  br label %7022

7022:                                             ; preds = %7021
  br label %7023

7023:                                             ; preds = %7022
  %7024 = load i32, ptr @test_count, align 4, !tbaa !5
  %7025 = add nsw i32 %7024, 1
  store i32 %7025, ptr @test_count, align 4, !tbaa !5
  %7026 = load ptr, ptr %144, align 8, !tbaa !9
  %7027 = getelementptr inbounds %struct.s2n_config, ptr %7026, i32 0, i32 7
  %7028 = load ptr, ptr %7027, align 8, !tbaa !63
  %7029 = icmp eq ptr %7028, @security_policy_20170210
  br i1 %7029, label %7083, label %7030

7030:                                             ; preds = %7023
  br label %7031

7031:                                             ; preds = %7030
  br label %7032

7032:                                             ; preds = %7031
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  %7033 = call ptr @__errno_location() #11
  %7034 = load i32, ptr %7033, align 4, !tbaa !5
  store i32 %7034, ptr %146, align 4, !tbaa !5
  %7035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7036 = call i32 @s2n_print_stacktrace(ptr noundef %7035)
  %7037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7038 = trunc i8 %7037 to i1
  br i1 %7038, label %7039, label %7061

7039:                                             ; preds = %7032
  %7040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7041 = call i32 @fileno(ptr noundef %7040) #10
  %7042 = call i32 @isatty(i32 noundef %7041) #10
  %7043 = icmp ne i32 %7042, 0
  br i1 %7043, label %7044, label %7061

7044:                                             ; preds = %7039
  %7045 = load i32, ptr %146, align 4, !tbaa !5
  %7046 = call ptr @__errno_location() #11
  store i32 %7045, ptr %7046, align 4, !tbaa !5
  %7047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7048 = load i32, ptr @test_count, align 4, !tbaa !5
  %7049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7050 = load i32, ptr %7049, align 4, !tbaa !5
  %7051 = call ptr @s2n_strerror(i32 noundef %7050, ptr noundef @.str.4)
  %7052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7053 = load i32, ptr %7052, align 4, !tbaa !5
  %7054 = call ptr @s2n_strerror_debug(i32 noundef %7053, ptr noundef @.str.4)
  %7055 = call ptr @__errno_location() #11
  %7056 = load i32, ptr %7055, align 4, !tbaa !5
  %7057 = call ptr @strerror(i32 noundef %7056) #10
  %7058 = call ptr @__errno_location() #11
  %7059 = load i32, ptr %7058, align 4, !tbaa !5
  %7060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7047, ptr noundef @.str.2, i32 noundef %7048, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 462, ptr noundef %7051, ptr noundef %7054, ptr noundef %7057, i32 noundef %7059) #10
  br label %7078

7061:                                             ; preds = %7039, %7032
  %7062 = load i32, ptr %146, align 4, !tbaa !5
  %7063 = call ptr @__errno_location() #11
  store i32 %7062, ptr %7063, align 4, !tbaa !5
  %7064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7065 = load i32, ptr @test_count, align 4, !tbaa !5
  %7066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7067 = load i32, ptr %7066, align 4, !tbaa !5
  %7068 = call ptr @s2n_strerror(i32 noundef %7067, ptr noundef @.str.4)
  %7069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call ptr @s2n_strerror_debug(i32 noundef %7070, ptr noundef @.str.4)
  %7072 = call ptr @__errno_location() #11
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call ptr @strerror(i32 noundef %7073) #10
  %7075 = call ptr @__errno_location() #11
  %7076 = load i32, ptr %7075, align 4, !tbaa !5
  %7077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7064, ptr noundef @.str.5, i32 noundef %7065, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 462, ptr noundef %7068, ptr noundef %7071, ptr noundef %7074, i32 noundef %7076) #10
  br label %7078

7078:                                             ; preds = %7061, %7044
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %7079

7079:                                             ; preds = %7078
  br label %7080

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

7081:                                             ; No predecessors!
  br label %7082

7082:                                             ; preds = %7081
  br label %7083

7083:                                             ; preds = %7082, %7023
  br label %7084

7084:                                             ; preds = %7083
  br label %7085

7085:                                             ; preds = %7084
  br label %7086

7086:                                             ; preds = %7085
  %7087 = load i32, ptr @test_count, align 4, !tbaa !5
  %7088 = add nsw i32 %7087, 1
  store i32 %7088, ptr @test_count, align 4, !tbaa !5
  %7089 = load ptr, ptr %144, align 8, !tbaa !9
  %7090 = getelementptr inbounds %struct.s2n_config, ptr %7089, i32 0, i32 7
  %7091 = load ptr, ptr %7090, align 8, !tbaa !63
  %7092 = getelementptr inbounds %struct.s2n_security_policy, ptr %7091, i32 0, i32 1
  %7093 = load ptr, ptr %7092, align 8, !tbaa !31
  %7094 = icmp eq ptr %7093, @cipher_preferences_20170210
  br i1 %7094, label %7148, label %7095

7095:                                             ; preds = %7086
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %7098 = call ptr @__errno_location() #11
  %7099 = load i32, ptr %7098, align 4, !tbaa !5
  store i32 %7099, ptr %147, align 4, !tbaa !5
  %7100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7101 = call i32 @s2n_print_stacktrace(ptr noundef %7100)
  %7102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7103 = trunc i8 %7102 to i1
  br i1 %7103, label %7104, label %7126

7104:                                             ; preds = %7097
  %7105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7106 = call i32 @fileno(ptr noundef %7105) #10
  %7107 = call i32 @isatty(i32 noundef %7106) #10
  %7108 = icmp ne i32 %7107, 0
  br i1 %7108, label %7109, label %7126

7109:                                             ; preds = %7104
  %7110 = load i32, ptr %147, align 4, !tbaa !5
  %7111 = call ptr @__errno_location() #11
  store i32 %7110, ptr %7111, align 4, !tbaa !5
  %7112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7113 = load i32, ptr @test_count, align 4, !tbaa !5
  %7114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7115 = load i32, ptr %7114, align 4, !tbaa !5
  %7116 = call ptr @s2n_strerror(i32 noundef %7115, ptr noundef @.str.4)
  %7117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7118 = load i32, ptr %7117, align 4, !tbaa !5
  %7119 = call ptr @s2n_strerror_debug(i32 noundef %7118, ptr noundef @.str.4)
  %7120 = call ptr @__errno_location() #11
  %7121 = load i32, ptr %7120, align 4, !tbaa !5
  %7122 = call ptr @strerror(i32 noundef %7121) #10
  %7123 = call ptr @__errno_location() #11
  %7124 = load i32, ptr %7123, align 4, !tbaa !5
  %7125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7112, ptr noundef @.str.2, i32 noundef %7113, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 463, ptr noundef %7116, ptr noundef %7119, ptr noundef %7122, i32 noundef %7124) #10
  br label %7143

7126:                                             ; preds = %7104, %7097
  %7127 = load i32, ptr %147, align 4, !tbaa !5
  %7128 = call ptr @__errno_location() #11
  store i32 %7127, ptr %7128, align 4, !tbaa !5
  %7129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7130 = load i32, ptr @test_count, align 4, !tbaa !5
  %7131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call ptr @s2n_strerror(i32 noundef %7132, ptr noundef @.str.4)
  %7134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call ptr @s2n_strerror_debug(i32 noundef %7135, ptr noundef @.str.4)
  %7137 = call ptr @__errno_location() #11
  %7138 = load i32, ptr %7137, align 4, !tbaa !5
  %7139 = call ptr @strerror(i32 noundef %7138) #10
  %7140 = call ptr @__errno_location() #11
  %7141 = load i32, ptr %7140, align 4, !tbaa !5
  %7142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7129, ptr noundef @.str.5, i32 noundef %7130, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 463, ptr noundef %7133, ptr noundef %7136, ptr noundef %7139, i32 noundef %7141) #10
  br label %7143

7143:                                             ; preds = %7126, %7109
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %7144

7144:                                             ; preds = %7143
  br label %7145

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

7146:                                             ; No predecessors!
  br label %7147

7147:                                             ; preds = %7146
  br label %7148

7148:                                             ; preds = %7147, %7086
  br label %7149

7149:                                             ; preds = %7148
  br label %7150

7150:                                             ; preds = %7149
  br label %7151

7151:                                             ; preds = %7150
  %7152 = load i32, ptr @test_count, align 4, !tbaa !5
  %7153 = add nsw i32 %7152, 1
  store i32 %7153, ptr @test_count, align 4, !tbaa !5
  %7154 = load ptr, ptr %144, align 8, !tbaa !9
  %7155 = getelementptr inbounds %struct.s2n_config, ptr %7154, i32 0, i32 7
  %7156 = load ptr, ptr %7155, align 8, !tbaa !63
  %7157 = getelementptr inbounds %struct.s2n_security_policy, ptr %7156, i32 0, i32 2
  %7158 = load ptr, ptr %7157, align 8, !tbaa !20
  %7159 = icmp eq ptr %7158, @kem_preferences_null
  br i1 %7159, label %7213, label %7160

7160:                                             ; preds = %7151
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

7162:                                             ; preds = %7161
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %7163 = call ptr @__errno_location() #11
  %7164 = load i32, ptr %7163, align 4, !tbaa !5
  store i32 %7164, ptr %148, align 4, !tbaa !5
  %7165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7166 = call i32 @s2n_print_stacktrace(ptr noundef %7165)
  %7167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7168 = trunc i8 %7167 to i1
  br i1 %7168, label %7169, label %7191

7169:                                             ; preds = %7162
  %7170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7171 = call i32 @fileno(ptr noundef %7170) #10
  %7172 = call i32 @isatty(i32 noundef %7171) #10
  %7173 = icmp ne i32 %7172, 0
  br i1 %7173, label %7174, label %7191

7174:                                             ; preds = %7169
  %7175 = load i32, ptr %148, align 4, !tbaa !5
  %7176 = call ptr @__errno_location() #11
  store i32 %7175, ptr %7176, align 4, !tbaa !5
  %7177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7178 = load i32, ptr @test_count, align 4, !tbaa !5
  %7179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7180 = load i32, ptr %7179, align 4, !tbaa !5
  %7181 = call ptr @s2n_strerror(i32 noundef %7180, ptr noundef @.str.4)
  %7182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7183 = load i32, ptr %7182, align 4, !tbaa !5
  %7184 = call ptr @s2n_strerror_debug(i32 noundef %7183, ptr noundef @.str.4)
  %7185 = call ptr @__errno_location() #11
  %7186 = load i32, ptr %7185, align 4, !tbaa !5
  %7187 = call ptr @strerror(i32 noundef %7186) #10
  %7188 = call ptr @__errno_location() #11
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  %7190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7177, ptr noundef @.str.2, i32 noundef %7178, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 464, ptr noundef %7181, ptr noundef %7184, ptr noundef %7187, i32 noundef %7189) #10
  br label %7208

7191:                                             ; preds = %7169, %7162
  %7192 = load i32, ptr %148, align 4, !tbaa !5
  %7193 = call ptr @__errno_location() #11
  store i32 %7192, ptr %7193, align 4, !tbaa !5
  %7194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7195 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7197, ptr noundef @.str.4)
  %7199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call ptr @s2n_strerror_debug(i32 noundef %7200, ptr noundef @.str.4)
  %7202 = call ptr @__errno_location() #11
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call ptr @strerror(i32 noundef %7203) #10
  %7205 = call ptr @__errno_location() #11
  %7206 = load i32, ptr %7205, align 4, !tbaa !5
  %7207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7194, ptr noundef @.str.5, i32 noundef %7195, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 464, ptr noundef %7198, ptr noundef %7201, ptr noundef %7204, i32 noundef %7206) #10
  br label %7208

7208:                                             ; preds = %7191, %7174
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %7209

7209:                                             ; preds = %7208
  br label %7210

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

7211:                                             ; No predecessors!
  br label %7212

7212:                                             ; preds = %7211
  br label %7213

7213:                                             ; preds = %7212, %7151
  br label %7214

7214:                                             ; preds = %7213
  br label %7215

7215:                                             ; preds = %7214
  br label %7216

7216:                                             ; preds = %7215
  %7217 = load i32, ptr @test_count, align 4, !tbaa !5
  %7218 = add nsw i32 %7217, 1
  store i32 %7218, ptr @test_count, align 4, !tbaa !5
  %7219 = load ptr, ptr %144, align 8, !tbaa !9
  %7220 = getelementptr inbounds %struct.s2n_config, ptr %7219, i32 0, i32 7
  %7221 = load ptr, ptr %7220, align 8, !tbaa !63
  %7222 = getelementptr inbounds %struct.s2n_security_policy, ptr %7221, i32 0, i32 3
  %7223 = load ptr, ptr %7222, align 8, !tbaa !38
  %7224 = icmp eq ptr %7223, @s2n_signature_preferences_20140601
  br i1 %7224, label %7278, label %7225

7225:                                             ; preds = %7216
  br label %7226

7226:                                             ; preds = %7225
  br label %7227

7227:                                             ; preds = %7226
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %7228 = call ptr @__errno_location() #11
  %7229 = load i32, ptr %7228, align 4, !tbaa !5
  store i32 %7229, ptr %149, align 4, !tbaa !5
  %7230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7231 = call i32 @s2n_print_stacktrace(ptr noundef %7230)
  %7232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7233 = trunc i8 %7232 to i1
  br i1 %7233, label %7234, label %7256

7234:                                             ; preds = %7227
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = call i32 @fileno(ptr noundef %7235) #10
  %7237 = call i32 @isatty(i32 noundef %7236) #10
  %7238 = icmp ne i32 %7237, 0
  br i1 %7238, label %7239, label %7256

7239:                                             ; preds = %7234
  %7240 = load i32, ptr %149, align 4, !tbaa !5
  %7241 = call ptr @__errno_location() #11
  store i32 %7240, ptr %7241, align 4, !tbaa !5
  %7242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7243 = load i32, ptr @test_count, align 4, !tbaa !5
  %7244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7245 = load i32, ptr %7244, align 4, !tbaa !5
  %7246 = call ptr @s2n_strerror(i32 noundef %7245, ptr noundef @.str.4)
  %7247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7248 = load i32, ptr %7247, align 4, !tbaa !5
  %7249 = call ptr @s2n_strerror_debug(i32 noundef %7248, ptr noundef @.str.4)
  %7250 = call ptr @__errno_location() #11
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call ptr @strerror(i32 noundef %7251) #10
  %7253 = call ptr @__errno_location() #11
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7242, ptr noundef @.str.2, i32 noundef %7243, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 465, ptr noundef %7246, ptr noundef %7249, ptr noundef %7252, i32 noundef %7254) #10
  br label %7273

7256:                                             ; preds = %7234, %7227
  %7257 = load i32, ptr %149, align 4, !tbaa !5
  %7258 = call ptr @__errno_location() #11
  store i32 %7257, ptr %7258, align 4, !tbaa !5
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = load i32, ptr @test_count, align 4, !tbaa !5
  %7261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7262 = load i32, ptr %7261, align 4, !tbaa !5
  %7263 = call ptr @s2n_strerror(i32 noundef %7262, ptr noundef @.str.4)
  %7264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7265 = load i32, ptr %7264, align 4, !tbaa !5
  %7266 = call ptr @s2n_strerror_debug(i32 noundef %7265, ptr noundef @.str.4)
  %7267 = call ptr @__errno_location() #11
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @strerror(i32 noundef %7268) #10
  %7270 = call ptr @__errno_location() #11
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7259, ptr noundef @.str.5, i32 noundef %7260, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 465, ptr noundef %7263, ptr noundef %7266, ptr noundef %7269, i32 noundef %7271) #10
  br label %7273

7273:                                             ; preds = %7256, %7239
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %7274

7274:                                             ; preds = %7273
  br label %7275

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

7276:                                             ; No predecessors!
  br label %7277

7277:                                             ; preds = %7276
  br label %7278

7278:                                             ; preds = %7277, %7216
  br label %7279

7279:                                             ; preds = %7278
  br label %7280

7280:                                             ; preds = %7279
  br label %7281

7281:                                             ; preds = %7280
  %7282 = load i32, ptr @test_count, align 4, !tbaa !5
  %7283 = add nsw i32 %7282, 1
  store i32 %7283, ptr @test_count, align 4, !tbaa !5
  %7284 = load ptr, ptr %144, align 8, !tbaa !9
  %7285 = getelementptr inbounds %struct.s2n_config, ptr %7284, i32 0, i32 7
  %7286 = load ptr, ptr %7285, align 8, !tbaa !63
  %7287 = getelementptr inbounds %struct.s2n_security_policy, ptr %7286, i32 0, i32 5
  %7288 = load ptr, ptr %7287, align 8, !tbaa !60
  %7289 = icmp eq ptr %7288, @s2n_ecc_preferences_20140601
  br i1 %7289, label %7343, label %7290

7290:                                             ; preds = %7281
  br label %7291

7291:                                             ; preds = %7290
  br label %7292

7292:                                             ; preds = %7291
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #10
  %7293 = call ptr @__errno_location() #11
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  store i32 %7294, ptr %150, align 4, !tbaa !5
  %7295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7296 = call i32 @s2n_print_stacktrace(ptr noundef %7295)
  %7297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7298 = trunc i8 %7297 to i1
  br i1 %7298, label %7299, label %7321

7299:                                             ; preds = %7292
  %7300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7301 = call i32 @fileno(ptr noundef %7300) #10
  %7302 = call i32 @isatty(i32 noundef %7301) #10
  %7303 = icmp ne i32 %7302, 0
  br i1 %7303, label %7304, label %7321

7304:                                             ; preds = %7299
  %7305 = load i32, ptr %150, align 4, !tbaa !5
  %7306 = call ptr @__errno_location() #11
  store i32 %7305, ptr %7306, align 4, !tbaa !5
  %7307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7308 = load i32, ptr @test_count, align 4, !tbaa !5
  %7309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror(i32 noundef %7310, ptr noundef @.str.4)
  %7312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @s2n_strerror_debug(i32 noundef %7313, ptr noundef @.str.4)
  %7315 = call ptr @__errno_location() #11
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call ptr @strerror(i32 noundef %7316) #10
  %7318 = call ptr @__errno_location() #11
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  %7320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7307, ptr noundef @.str.2, i32 noundef %7308, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 466, ptr noundef %7311, ptr noundef %7314, ptr noundef %7317, i32 noundef %7319) #10
  br label %7338

7321:                                             ; preds = %7299, %7292
  %7322 = load i32, ptr %150, align 4, !tbaa !5
  %7323 = call ptr @__errno_location() #11
  store i32 %7322, ptr %7323, align 4, !tbaa !5
  %7324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7325 = load i32, ptr @test_count, align 4, !tbaa !5
  %7326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @s2n_strerror(i32 noundef %7327, ptr noundef @.str.4)
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror_debug(i32 noundef %7330, ptr noundef @.str.4)
  %7332 = call ptr @__errno_location() #11
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @strerror(i32 noundef %7333) #10
  %7335 = call ptr @__errno_location() #11
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7324, ptr noundef @.str.5, i32 noundef %7325, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 466, ptr noundef %7328, ptr noundef %7331, ptr noundef %7334, i32 noundef %7336) #10
  br label %7338

7338:                                             ; preds = %7321, %7304
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #10
  br label %7339

7339:                                             ; preds = %7338
  br label %7340

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

7341:                                             ; No predecessors!
  br label %7342

7342:                                             ; preds = %7341
  br label %7343

7343:                                             ; preds = %7342, %7281
  br label %7344

7344:                                             ; preds = %7343
  br label %7345

7345:                                             ; preds = %7344
  br label %7346

7346:                                             ; preds = %7345
  %7347 = load i32, ptr @test_count, align 4, !tbaa !5
  %7348 = add nsw i32 %7347, 1
  store i32 %7348, ptr @test_count, align 4, !tbaa !5
  %7349 = load ptr, ptr %144, align 8, !tbaa !9
  %7350 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %7349, ptr noundef @.str.86)
  %7351 = icmp eq i32 %7350, -1
  br i1 %7351, label %7352, label %7405

7352:                                             ; preds = %7346
  br label %7353

7353:                                             ; preds = %7352
  br label %7354

7354:                                             ; preds = %7353
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %7355 = call ptr @__errno_location() #11
  %7356 = load i32, ptr %7355, align 4, !tbaa !5
  store i32 %7356, ptr %151, align 4, !tbaa !5
  %7357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7358 = call i32 @s2n_print_stacktrace(ptr noundef %7357)
  %7359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7360 = trunc i8 %7359 to i1
  br i1 %7360, label %7361, label %7383

7361:                                             ; preds = %7354
  %7362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7363 = call i32 @fileno(ptr noundef %7362) #10
  %7364 = call i32 @isatty(i32 noundef %7363) #10
  %7365 = icmp ne i32 %7364, 0
  br i1 %7365, label %7366, label %7383

7366:                                             ; preds = %7361
  %7367 = load i32, ptr %151, align 4, !tbaa !5
  %7368 = call ptr @__errno_location() #11
  store i32 %7367, ptr %7368, align 4, !tbaa !5
  %7369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7370 = load i32, ptr @test_count, align 4, !tbaa !5
  %7371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7372 = load i32, ptr %7371, align 4, !tbaa !5
  %7373 = call ptr @s2n_strerror(i32 noundef %7372, ptr noundef @.str.4)
  %7374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call ptr @s2n_strerror_debug(i32 noundef %7375, ptr noundef @.str.4)
  %7377 = call ptr @__errno_location() #11
  %7378 = load i32, ptr %7377, align 4, !tbaa !5
  %7379 = call ptr @strerror(i32 noundef %7378) #10
  %7380 = call ptr @__errno_location() #11
  %7381 = load i32, ptr %7380, align 4, !tbaa !5
  %7382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7369, ptr noundef @.str.2, i32 noundef %7370, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 468, ptr noundef %7373, ptr noundef %7376, ptr noundef %7379, i32 noundef %7381) #10
  br label %7400

7383:                                             ; preds = %7361, %7354
  %7384 = load i32, ptr %151, align 4, !tbaa !5
  %7385 = call ptr @__errno_location() #11
  store i32 %7384, ptr %7385, align 4, !tbaa !5
  %7386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7387 = load i32, ptr @test_count, align 4, !tbaa !5
  %7388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  %7390 = call ptr @s2n_strerror(i32 noundef %7389, ptr noundef @.str.4)
  %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_debug(i32 noundef %7392, ptr noundef @.str.4)
  %7394 = call ptr @__errno_location() #11
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call ptr @strerror(i32 noundef %7395) #10
  %7397 = call ptr @__errno_location() #11
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7386, ptr noundef @.str.5, i32 noundef %7387, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 468, ptr noundef %7390, ptr noundef %7393, ptr noundef %7396, i32 noundef %7398) #10
  br label %7400

7400:                                             ; preds = %7383, %7366
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %7401

7401:                                             ; preds = %7400
  br label %7402

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

7403:                                             ; No predecessors!
  br label %7404

7404:                                             ; preds = %7403
  br label %7405

7405:                                             ; preds = %7404, %7346
  br label %7406

7406:                                             ; preds = %7405
  br label %7407

7407:                                             ; preds = %7406
  br label %7408

7408:                                             ; preds = %7407
  %7409 = load i32, ptr @test_count, align 4, !tbaa !5
  %7410 = add nsw i32 %7409, 1
  store i32 %7410, ptr @test_count, align 4, !tbaa !5
  %7411 = load ptr, ptr %144, align 8, !tbaa !9
  %7412 = getelementptr inbounds %struct.s2n_config, ptr %7411, i32 0, i32 7
  %7413 = load ptr, ptr %7412, align 8, !tbaa !63
  %7414 = icmp eq ptr %7413, @security_policy_20190801
  br i1 %7414, label %7468, label %7415

7415:                                             ; preds = %7408
  br label %7416

7416:                                             ; preds = %7415
  br label %7417

7417:                                             ; preds = %7416
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  %7418 = call ptr @__errno_location() #11
  %7419 = load i32, ptr %7418, align 4, !tbaa !5
  store i32 %7419, ptr %152, align 4, !tbaa !5
  %7420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7421 = call i32 @s2n_print_stacktrace(ptr noundef %7420)
  %7422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7423 = trunc i8 %7422 to i1
  br i1 %7423, label %7424, label %7446

7424:                                             ; preds = %7417
  %7425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7426 = call i32 @fileno(ptr noundef %7425) #10
  %7427 = call i32 @isatty(i32 noundef %7426) #10
  %7428 = icmp ne i32 %7427, 0
  br i1 %7428, label %7429, label %7446

7429:                                             ; preds = %7424
  %7430 = load i32, ptr %152, align 4, !tbaa !5
  %7431 = call ptr @__errno_location() #11
  store i32 %7430, ptr %7431, align 4, !tbaa !5
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = load i32, ptr @test_count, align 4, !tbaa !5
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror(i32 noundef %7435, ptr noundef @.str.4)
  %7437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror_debug(i32 noundef %7438, ptr noundef @.str.4)
  %7440 = call ptr @__errno_location() #11
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @strerror(i32 noundef %7441) #10
  %7443 = call ptr @__errno_location() #11
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.2, i32 noundef %7433, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 469, ptr noundef %7436, ptr noundef %7439, ptr noundef %7442, i32 noundef %7444) #10
  br label %7463

7446:                                             ; preds = %7424, %7417
  %7447 = load i32, ptr %152, align 4, !tbaa !5
  %7448 = call ptr @__errno_location() #11
  store i32 %7447, ptr %7448, align 4, !tbaa !5
  %7449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7450 = load i32, ptr @test_count, align 4, !tbaa !5
  %7451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call ptr @s2n_strerror(i32 noundef %7452, ptr noundef @.str.4)
  %7454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7455 = load i32, ptr %7454, align 4, !tbaa !5
  %7456 = call ptr @s2n_strerror_debug(i32 noundef %7455, ptr noundef @.str.4)
  %7457 = call ptr @__errno_location() #11
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  %7459 = call ptr @strerror(i32 noundef %7458) #10
  %7460 = call ptr @__errno_location() #11
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7449, ptr noundef @.str.5, i32 noundef %7450, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 469, ptr noundef %7453, ptr noundef %7456, ptr noundef %7459, i32 noundef %7461) #10
  br label %7463

7463:                                             ; preds = %7446, %7429
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %7464

7464:                                             ; preds = %7463
  br label %7465

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

7466:                                             ; No predecessors!
  br label %7467

7467:                                             ; preds = %7466
  br label %7468

7468:                                             ; preds = %7467, %7408
  br label %7469

7469:                                             ; preds = %7468
  br label %7470

7470:                                             ; preds = %7469
  br label %7471

7471:                                             ; preds = %7470
  %7472 = load i32, ptr @test_count, align 4, !tbaa !5
  %7473 = add nsw i32 %7472, 1
  store i32 %7473, ptr @test_count, align 4, !tbaa !5
  %7474 = load ptr, ptr %144, align 8, !tbaa !9
  %7475 = getelementptr inbounds %struct.s2n_config, ptr %7474, i32 0, i32 7
  %7476 = load ptr, ptr %7475, align 8, !tbaa !63
  %7477 = getelementptr inbounds %struct.s2n_security_policy, ptr %7476, i32 0, i32 1
  %7478 = load ptr, ptr %7477, align 8, !tbaa !31
  %7479 = icmp eq ptr %7478, @cipher_preferences_20190801
  br i1 %7479, label %7533, label %7480

7480:                                             ; preds = %7471
  br label %7481

7481:                                             ; preds = %7480
  br label %7482

7482:                                             ; preds = %7481
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %7483 = call ptr @__errno_location() #11
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  store i32 %7484, ptr %153, align 4, !tbaa !5
  %7485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7486 = call i32 @s2n_print_stacktrace(ptr noundef %7485)
  %7487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7488 = trunc i8 %7487 to i1
  br i1 %7488, label %7489, label %7511

7489:                                             ; preds = %7482
  %7490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7491 = call i32 @fileno(ptr noundef %7490) #10
  %7492 = call i32 @isatty(i32 noundef %7491) #10
  %7493 = icmp ne i32 %7492, 0
  br i1 %7493, label %7494, label %7511

7494:                                             ; preds = %7489
  %7495 = load i32, ptr %153, align 4, !tbaa !5
  %7496 = call ptr @__errno_location() #11
  store i32 %7495, ptr %7496, align 4, !tbaa !5
  %7497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7498 = load i32, ptr @test_count, align 4, !tbaa !5
  %7499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call ptr @s2n_strerror(i32 noundef %7500, ptr noundef @.str.4)
  %7502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7503 = load i32, ptr %7502, align 4, !tbaa !5
  %7504 = call ptr @s2n_strerror_debug(i32 noundef %7503, ptr noundef @.str.4)
  %7505 = call ptr @__errno_location() #11
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  %7507 = call ptr @strerror(i32 noundef %7506) #10
  %7508 = call ptr @__errno_location() #11
  %7509 = load i32, ptr %7508, align 4, !tbaa !5
  %7510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7497, ptr noundef @.str.2, i32 noundef %7498, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 470, ptr noundef %7501, ptr noundef %7504, ptr noundef %7507, i32 noundef %7509) #10
  br label %7528

7511:                                             ; preds = %7489, %7482
  %7512 = load i32, ptr %153, align 4, !tbaa !5
  %7513 = call ptr @__errno_location() #11
  store i32 %7512, ptr %7513, align 4, !tbaa !5
  %7514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7515 = load i32, ptr @test_count, align 4, !tbaa !5
  %7516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  %7518 = call ptr @s2n_strerror(i32 noundef %7517, ptr noundef @.str.4)
  %7519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7520 = load i32, ptr %7519, align 4, !tbaa !5
  %7521 = call ptr @s2n_strerror_debug(i32 noundef %7520, ptr noundef @.str.4)
  %7522 = call ptr @__errno_location() #11
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call ptr @strerror(i32 noundef %7523) #10
  %7525 = call ptr @__errno_location() #11
  %7526 = load i32, ptr %7525, align 4, !tbaa !5
  %7527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7514, ptr noundef @.str.5, i32 noundef %7515, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 470, ptr noundef %7518, ptr noundef %7521, ptr noundef %7524, i32 noundef %7526) #10
  br label %7528

7528:                                             ; preds = %7511, %7494
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %7529

7529:                                             ; preds = %7528
  br label %7530

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

7531:                                             ; No predecessors!
  br label %7532

7532:                                             ; preds = %7531
  br label %7533

7533:                                             ; preds = %7532, %7471
  br label %7534

7534:                                             ; preds = %7533
  br label %7535

7535:                                             ; preds = %7534
  br label %7536

7536:                                             ; preds = %7535
  %7537 = load i32, ptr @test_count, align 4, !tbaa !5
  %7538 = add nsw i32 %7537, 1
  store i32 %7538, ptr @test_count, align 4, !tbaa !5
  %7539 = load ptr, ptr %144, align 8, !tbaa !9
  %7540 = getelementptr inbounds %struct.s2n_config, ptr %7539, i32 0, i32 7
  %7541 = load ptr, ptr %7540, align 8, !tbaa !63
  %7542 = getelementptr inbounds %struct.s2n_security_policy, ptr %7541, i32 0, i32 2
  %7543 = load ptr, ptr %7542, align 8, !tbaa !20
  %7544 = icmp eq ptr %7543, @kem_preferences_null
  br i1 %7544, label %7598, label %7545

7545:                                             ; preds = %7536
  br label %7546

7546:                                             ; preds = %7545
  br label %7547

7547:                                             ; preds = %7546
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %7548 = call ptr @__errno_location() #11
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  store i32 %7549, ptr %154, align 4, !tbaa !5
  %7550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7551 = call i32 @s2n_print_stacktrace(ptr noundef %7550)
  %7552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7553 = trunc i8 %7552 to i1
  br i1 %7553, label %7554, label %7576

7554:                                             ; preds = %7547
  %7555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7556 = call i32 @fileno(ptr noundef %7555) #10
  %7557 = call i32 @isatty(i32 noundef %7556) #10
  %7558 = icmp ne i32 %7557, 0
  br i1 %7558, label %7559, label %7576

7559:                                             ; preds = %7554
  %7560 = load i32, ptr %154, align 4, !tbaa !5
  %7561 = call ptr @__errno_location() #11
  store i32 %7560, ptr %7561, align 4, !tbaa !5
  %7562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7563 = load i32, ptr @test_count, align 4, !tbaa !5
  %7564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7565 = load i32, ptr %7564, align 4, !tbaa !5
  %7566 = call ptr @s2n_strerror(i32 noundef %7565, ptr noundef @.str.4)
  %7567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7568 = load i32, ptr %7567, align 4, !tbaa !5
  %7569 = call ptr @s2n_strerror_debug(i32 noundef %7568, ptr noundef @.str.4)
  %7570 = call ptr @__errno_location() #11
  %7571 = load i32, ptr %7570, align 4, !tbaa !5
  %7572 = call ptr @strerror(i32 noundef %7571) #10
  %7573 = call ptr @__errno_location() #11
  %7574 = load i32, ptr %7573, align 4, !tbaa !5
  %7575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7562, ptr noundef @.str.2, i32 noundef %7563, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 471, ptr noundef %7566, ptr noundef %7569, ptr noundef %7572, i32 noundef %7574) #10
  br label %7593

7576:                                             ; preds = %7554, %7547
  %7577 = load i32, ptr %154, align 4, !tbaa !5
  %7578 = call ptr @__errno_location() #11
  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() #11
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call ptr @strerror(i32 noundef %7588) #10
  %7590 = call ptr @__errno_location() #11
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  %7592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7579, ptr noundef @.str.5, i32 noundef %7580, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 471, ptr noundef %7583, ptr noundef %7586, ptr noundef %7589, i32 noundef %7591) #10
  br label %7593

7593:                                             ; preds = %7576, %7559
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %7594

7594:                                             ; preds = %7593
  br label %7595

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

7596:                                             ; No predecessors!
  br label %7597

7597:                                             ; preds = %7596
  br label %7598

7598:                                             ; preds = %7597, %7536
  br label %7599

7599:                                             ; preds = %7598
  br label %7600

7600:                                             ; preds = %7599
  br label %7601

7601:                                             ; preds = %7600
  %7602 = load i32, ptr @test_count, align 4, !tbaa !5
  %7603 = add nsw i32 %7602, 1
  store i32 %7603, ptr @test_count, align 4, !tbaa !5
  %7604 = load ptr, ptr %144, align 8, !tbaa !9
  %7605 = getelementptr inbounds %struct.s2n_config, ptr %7604, i32 0, i32 7
  %7606 = load ptr, ptr %7605, align 8, !tbaa !63
  %7607 = getelementptr inbounds %struct.s2n_security_policy, ptr %7606, i32 0, i32 3
  %7608 = load ptr, ptr %7607, align 8, !tbaa !38
  %7609 = icmp eq ptr %7608, @s2n_signature_preferences_20200207
  br i1 %7609, label %7663, label %7610

7610:                                             ; preds = %7601
  br label %7611

7611:                                             ; preds = %7610
  br label %7612

7612:                                             ; preds = %7611
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #10
  %7613 = call ptr @__errno_location() #11
  %7614 = load i32, ptr %7613, align 4, !tbaa !5
  store i32 %7614, ptr %155, align 4, !tbaa !5
  %7615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7616 = call i32 @s2n_print_stacktrace(ptr noundef %7615)
  %7617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7618 = trunc i8 %7617 to i1
  br i1 %7618, label %7619, label %7641

7619:                                             ; preds = %7612
  %7620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7621 = call i32 @fileno(ptr noundef %7620) #10
  %7622 = call i32 @isatty(i32 noundef %7621) #10
  %7623 = icmp ne i32 %7622, 0
  br i1 %7623, label %7624, label %7641

7624:                                             ; preds = %7619
  %7625 = load i32, ptr %155, align 4, !tbaa !5
  %7626 = call ptr @__errno_location() #11
  store i32 %7625, ptr %7626, align 4, !tbaa !5
  %7627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7628 = load i32, ptr @test_count, align 4, !tbaa !5
  %7629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  %7631 = call ptr @s2n_strerror(i32 noundef %7630, ptr noundef @.str.4)
  %7632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call ptr @s2n_strerror_debug(i32 noundef %7633, ptr noundef @.str.4)
  %7635 = call ptr @__errno_location() #11
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call ptr @strerror(i32 noundef %7636) #10
  %7638 = call ptr @__errno_location() #11
  %7639 = load i32, ptr %7638, align 4, !tbaa !5
  %7640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7627, ptr noundef @.str.2, i32 noundef %7628, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 472, ptr noundef %7631, ptr noundef %7634, ptr noundef %7637, i32 noundef %7639) #10
  br label %7658

7641:                                             ; preds = %7619, %7612
  %7642 = load i32, ptr %155, align 4, !tbaa !5
  %7643 = call ptr @__errno_location() #11
  store i32 %7642, ptr %7643, align 4, !tbaa !5
  %7644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7645 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7647, ptr noundef @.str.4)
  %7649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call ptr @s2n_strerror_debug(i32 noundef %7650, ptr noundef @.str.4)
  %7652 = call ptr @__errno_location() #11
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call ptr @strerror(i32 noundef %7653) #10
  %7655 = call ptr @__errno_location() #11
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7644, ptr noundef @.str.5, i32 noundef %7645, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 472, ptr noundef %7648, ptr noundef %7651, ptr noundef %7654, i32 noundef %7656) #10
  br label %7658

7658:                                             ; preds = %7641, %7624
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #10
  br label %7659

7659:                                             ; preds = %7658
  br label %7660

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

7661:                                             ; No predecessors!
  br label %7662

7662:                                             ; preds = %7661
  br label %7663

7663:                                             ; preds = %7662, %7601
  br label %7664

7664:                                             ; preds = %7663
  br label %7665

7665:                                             ; preds = %7664
  br label %7666

7666:                                             ; preds = %7665
  %7667 = load i32, ptr @test_count, align 4, !tbaa !5
  %7668 = add nsw i32 %7667, 1
  store i32 %7668, ptr @test_count, align 4, !tbaa !5
  %7669 = load ptr, ptr %144, align 8, !tbaa !9
  %7670 = getelementptr inbounds %struct.s2n_config, ptr %7669, i32 0, i32 7
  %7671 = load ptr, ptr %7670, align 8, !tbaa !63
  %7672 = getelementptr inbounds %struct.s2n_security_policy, ptr %7671, i32 0, i32 5
  %7673 = load ptr, ptr %7672, align 8, !tbaa !60
  %7674 = icmp eq ptr %7673, @s2n_ecc_preferences_20200310
  br i1 %7674, label %7728, label %7675

7675:                                             ; preds = %7666
  br label %7676

7676:                                             ; preds = %7675
  br label %7677

7677:                                             ; preds = %7676
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %7678 = call ptr @__errno_location() #11
  %7679 = load i32, ptr %7678, align 4, !tbaa !5
  store i32 %7679, ptr %156, align 4, !tbaa !5
  %7680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7681 = call i32 @s2n_print_stacktrace(ptr noundef %7680)
  %7682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7683 = trunc i8 %7682 to i1
  br i1 %7683, label %7684, label %7706

7684:                                             ; preds = %7677
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = call i32 @fileno(ptr noundef %7685) #10
  %7687 = call i32 @isatty(i32 noundef %7686) #10
  %7688 = icmp ne i32 %7687, 0
  br i1 %7688, label %7689, label %7706

7689:                                             ; preds = %7684
  %7690 = load i32, ptr %156, align 4, !tbaa !5
  %7691 = call ptr @__errno_location() #11
  store i32 %7690, ptr %7691, align 4, !tbaa !5
  %7692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7693 = load i32, ptr @test_count, align 4, !tbaa !5
  %7694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7695 = load i32, ptr %7694, align 4, !tbaa !5
  %7696 = call ptr @s2n_strerror(i32 noundef %7695, ptr noundef @.str.4)
  %7697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  %7699 = call ptr @s2n_strerror_debug(i32 noundef %7698, ptr noundef @.str.4)
  %7700 = call ptr @__errno_location() #11
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  %7702 = call ptr @strerror(i32 noundef %7701) #10
  %7703 = call ptr @__errno_location() #11
  %7704 = load i32, ptr %7703, align 4, !tbaa !5
  %7705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7692, ptr noundef @.str.2, i32 noundef %7693, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 473, ptr noundef %7696, ptr noundef %7699, ptr noundef %7702, i32 noundef %7704) #10
  br label %7723

7706:                                             ; preds = %7684, %7677
  %7707 = load i32, ptr %156, align 4, !tbaa !5
  %7708 = call ptr @__errno_location() #11
  store i32 %7707, ptr %7708, align 4, !tbaa !5
  %7709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7710 = load i32, ptr @test_count, align 4, !tbaa !5
  %7711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7712 = load i32, ptr %7711, align 4, !tbaa !5
  %7713 = call ptr @s2n_strerror(i32 noundef %7712, ptr noundef @.str.4)
  %7714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7715 = load i32, ptr %7714, align 4, !tbaa !5
  %7716 = call ptr @s2n_strerror_debug(i32 noundef %7715, ptr noundef @.str.4)
  %7717 = call ptr @__errno_location() #11
  %7718 = load i32, ptr %7717, align 4, !tbaa !5
  %7719 = call ptr @strerror(i32 noundef %7718) #10
  %7720 = call ptr @__errno_location() #11
  %7721 = load i32, ptr %7720, align 4, !tbaa !5
  %7722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7709, ptr noundef @.str.5, i32 noundef %7710, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 473, ptr noundef %7713, ptr noundef %7716, ptr noundef %7719, i32 noundef %7721) #10
  br label %7723

7723:                                             ; preds = %7706, %7689
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

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

7726:                                             ; No predecessors!
  br label %7727

7727:                                             ; preds = %7726
  br label %7728

7728:                                             ; preds = %7727, %7666
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

7730:                                             ; preds = %7729
  br label %7731

7731:                                             ; preds = %7730
  %7732 = load i32, ptr @test_count, align 4, !tbaa !5
  %7733 = add nsw i32 %7732, 1
  store i32 %7733, ptr @test_count, align 4, !tbaa !5
  %7734 = load ptr, ptr %144, align 8, !tbaa !9
  %7735 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %7734, ptr noundef @.str.92)
  %7736 = icmp eq i32 %7735, -1
  br i1 %7736, label %7737, label %7790

7737:                                             ; preds = %7731
  br label %7738

7738:                                             ; preds = %7737
  br label %7739

7739:                                             ; preds = %7738
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %7740 = call ptr @__errno_location() #11
  %7741 = load i32, ptr %7740, align 4, !tbaa !5
  store i32 %7741, ptr %157, align 4, !tbaa !5
  %7742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7743 = call i32 @s2n_print_stacktrace(ptr noundef %7742)
  %7744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7745 = trunc i8 %7744 to i1
  br i1 %7745, label %7746, label %7768

7746:                                             ; preds = %7739
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = call i32 @fileno(ptr noundef %7747) #10
  %7749 = call i32 @isatty(i32 noundef %7748) #10
  %7750 = icmp ne i32 %7749, 0
  br i1 %7750, label %7751, label %7768

7751:                                             ; preds = %7746
  %7752 = load i32, ptr %157, align 4, !tbaa !5
  %7753 = call ptr @__errno_location() #11
  store i32 %7752, ptr %7753, align 4, !tbaa !5
  %7754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7755 = load i32, ptr @test_count, align 4, !tbaa !5
  %7756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7757 = load i32, ptr %7756, align 4, !tbaa !5
  %7758 = call ptr @s2n_strerror(i32 noundef %7757, ptr noundef @.str.4)
  %7759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call ptr @s2n_strerror_debug(i32 noundef %7760, ptr noundef @.str.4)
  %7762 = call ptr @__errno_location() #11
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call ptr @strerror(i32 noundef %7763) #10
  %7765 = call ptr @__errno_location() #11
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7754, ptr noundef @.str.2, i32 noundef %7755, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 475, ptr noundef %7758, ptr noundef %7761, ptr noundef %7764, i32 noundef %7766) #10
  br label %7785

7768:                                             ; preds = %7746, %7739
  %7769 = load i32, ptr %157, align 4, !tbaa !5
  %7770 = call ptr @__errno_location() #11
  store i32 %7769, ptr %7770, align 4, !tbaa !5
  %7771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7772 = load i32, ptr @test_count, align 4, !tbaa !5
  %7773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7774 = load i32, ptr %7773, align 4, !tbaa !5
  %7775 = call ptr @s2n_strerror(i32 noundef %7774, ptr noundef @.str.4)
  %7776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7777 = load i32, ptr %7776, align 4, !tbaa !5
  %7778 = call ptr @s2n_strerror_debug(i32 noundef %7777, ptr noundef @.str.4)
  %7779 = call ptr @__errno_location() #11
  %7780 = load i32, ptr %7779, align 4, !tbaa !5
  %7781 = call ptr @strerror(i32 noundef %7780) #10
  %7782 = call ptr @__errno_location() #11
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  %7784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7771, ptr noundef @.str.5, i32 noundef %7772, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 475, ptr noundef %7775, ptr noundef %7778, ptr noundef %7781, i32 noundef %7783) #10
  br label %7785

7785:                                             ; preds = %7768, %7751
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %7786

7786:                                             ; preds = %7785
  br label %7787

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

7788:                                             ; No predecessors!
  br label %7789

7789:                                             ; preds = %7788
  br label %7790

7790:                                             ; preds = %7789, %7731
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791
  br label %7793

7793:                                             ; preds = %7792
  %7794 = load i32, ptr @test_count, align 4, !tbaa !5
  %7795 = add nsw i32 %7794, 1
  store i32 %7795, ptr @test_count, align 4, !tbaa !5
  %7796 = load ptr, ptr %144, align 8, !tbaa !9
  %7797 = getelementptr inbounds %struct.s2n_config, ptr %7796, i32 0, i32 7
  %7798 = load ptr, ptr %7797, align 8, !tbaa !63
  %7799 = icmp eq ptr %7798, @security_policy_null
  br i1 %7799, label %7853, label %7800

7800:                                             ; preds = %7793
  br label %7801

7801:                                             ; preds = %7800
  br label %7802

7802:                                             ; preds = %7801
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %7803 = call ptr @__errno_location() #11
  %7804 = load i32, ptr %7803, align 4, !tbaa !5
  store i32 %7804, ptr %158, align 4, !tbaa !5
  %7805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7806 = call i32 @s2n_print_stacktrace(ptr noundef %7805)
  %7807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7808 = trunc i8 %7807 to i1
  br i1 %7808, label %7809, label %7831

7809:                                             ; preds = %7802
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = call i32 @fileno(ptr noundef %7810) #10
  %7812 = call i32 @isatty(i32 noundef %7811) #10
  %7813 = icmp ne i32 %7812, 0
  br i1 %7813, label %7814, label %7831

7814:                                             ; preds = %7809
  %7815 = load i32, ptr %158, align 4, !tbaa !5
  %7816 = call ptr @__errno_location() #11
  store i32 %7815, ptr %7816, align 4, !tbaa !5
  %7817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7818 = load i32, ptr @test_count, align 4, !tbaa !5
  %7819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7820 = load i32, ptr %7819, align 4, !tbaa !5
  %7821 = call ptr @s2n_strerror(i32 noundef %7820, ptr noundef @.str.4)
  %7822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  %7824 = call ptr @s2n_strerror_debug(i32 noundef %7823, ptr noundef @.str.4)
  %7825 = call ptr @__errno_location() #11
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call ptr @strerror(i32 noundef %7826) #10
  %7828 = call ptr @__errno_location() #11
  %7829 = load i32, ptr %7828, align 4, !tbaa !5
  %7830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7817, ptr noundef @.str.2, i32 noundef %7818, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 476, ptr noundef %7821, ptr noundef %7824, ptr noundef %7827, i32 noundef %7829) #10
  br label %7848

7831:                                             ; preds = %7809, %7802
  %7832 = load i32, ptr %158, align 4, !tbaa !5
  %7833 = call ptr @__errno_location() #11
  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() #11
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  %7844 = call ptr @strerror(i32 noundef %7843) #10
  %7845 = call ptr @__errno_location() #11
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  %7847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7834, ptr noundef @.str.5, i32 noundef %7835, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 476, ptr noundef %7838, ptr noundef %7841, ptr noundef %7844, i32 noundef %7846) #10
  br label %7848

7848:                                             ; preds = %7831, %7814
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %7849

7849:                                             ; preds = %7848
  br label %7850

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

7851:                                             ; No predecessors!
  br label %7852

7852:                                             ; preds = %7851
  br label %7853

7853:                                             ; preds = %7852, %7793
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

7855:                                             ; preds = %7854
  br label %7856

7856:                                             ; preds = %7855
  %7857 = load i32, ptr @test_count, align 4, !tbaa !5
  %7858 = add nsw i32 %7857, 1
  store i32 %7858, ptr @test_count, align 4, !tbaa !5
  %7859 = load ptr, ptr %144, align 8, !tbaa !9
  %7860 = getelementptr inbounds %struct.s2n_config, ptr %7859, i32 0, i32 7
  %7861 = load ptr, ptr %7860, align 8, !tbaa !63
  %7862 = getelementptr inbounds %struct.s2n_security_policy, ptr %7861, i32 0, i32 1
  %7863 = load ptr, ptr %7862, align 8, !tbaa !31
  %7864 = icmp eq ptr %7863, @cipher_preferences_null
  br i1 %7864, label %7918, label %7865

7865:                                             ; preds = %7856
  br label %7866

7866:                                             ; preds = %7865
  br label %7867

7867:                                             ; preds = %7866
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %7868 = call ptr @__errno_location() #11
  %7869 = load i32, ptr %7868, align 4, !tbaa !5
  store i32 %7869, ptr %159, align 4, !tbaa !5
  %7870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7871 = call i32 @s2n_print_stacktrace(ptr noundef %7870)
  %7872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7873 = trunc i8 %7872 to i1
  br i1 %7873, label %7874, label %7896

7874:                                             ; preds = %7867
  %7875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7876 = call i32 @fileno(ptr noundef %7875) #10
  %7877 = call i32 @isatty(i32 noundef %7876) #10
  %7878 = icmp ne i32 %7877, 0
  br i1 %7878, label %7879, label %7896

7879:                                             ; preds = %7874
  %7880 = load i32, ptr %159, align 4, !tbaa !5
  %7881 = call ptr @__errno_location() #11
  store i32 %7880, ptr %7881, align 4, !tbaa !5
  %7882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7883 = load i32, ptr @test_count, align 4, !tbaa !5
  %7884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call ptr @s2n_strerror(i32 noundef %7885, ptr noundef @.str.4)
  %7887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call ptr @s2n_strerror_debug(i32 noundef %7888, ptr noundef @.str.4)
  %7890 = call ptr @__errno_location() #11
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call ptr @strerror(i32 noundef %7891) #10
  %7893 = call ptr @__errno_location() #11
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  %7895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7882, ptr noundef @.str.2, i32 noundef %7883, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 477, ptr noundef %7886, ptr noundef %7889, ptr noundef %7892, i32 noundef %7894) #10
  br label %7913

7896:                                             ; preds = %7874, %7867
  %7897 = load i32, ptr %159, align 4, !tbaa !5
  %7898 = call ptr @__errno_location() #11
  store i32 %7897, ptr %7898, align 4, !tbaa !5
  %7899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7900 = load i32, ptr @test_count, align 4, !tbaa !5
  %7901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = call ptr @s2n_strerror(i32 noundef %7902, ptr noundef @.str.4)
  %7904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7905 = load i32, ptr %7904, align 4, !tbaa !5
  %7906 = call ptr @s2n_strerror_debug(i32 noundef %7905, ptr noundef @.str.4)
  %7907 = call ptr @__errno_location() #11
  %7908 = load i32, ptr %7907, align 4, !tbaa !5
  %7909 = call ptr @strerror(i32 noundef %7908) #10
  %7910 = call ptr @__errno_location() #11
  %7911 = load i32, ptr %7910, align 4, !tbaa !5
  %7912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7899, ptr noundef @.str.5, i32 noundef %7900, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 477, ptr noundef %7903, ptr noundef %7906, ptr noundef %7909, i32 noundef %7911) #10
  br label %7913

7913:                                             ; preds = %7896, %7879
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %7914

7914:                                             ; preds = %7913
  br label %7915

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

7916:                                             ; No predecessors!
  br label %7917

7917:                                             ; preds = %7916
  br label %7918

7918:                                             ; preds = %7917, %7856
  br label %7919

7919:                                             ; preds = %7918
  br label %7920

7920:                                             ; preds = %7919
  br label %7921

7921:                                             ; preds = %7920
  %7922 = load i32, ptr @test_count, align 4, !tbaa !5
  %7923 = add nsw i32 %7922, 1
  store i32 %7923, ptr @test_count, align 4, !tbaa !5
  %7924 = load ptr, ptr %144, align 8, !tbaa !9
  %7925 = getelementptr inbounds %struct.s2n_config, ptr %7924, i32 0, i32 7
  %7926 = load ptr, ptr %7925, align 8, !tbaa !63
  %7927 = getelementptr inbounds %struct.s2n_security_policy, ptr %7926, i32 0, i32 2
  %7928 = load ptr, ptr %7927, align 8, !tbaa !20
  %7929 = icmp eq ptr %7928, @kem_preferences_null
  br i1 %7929, label %7983, label %7930

7930:                                             ; preds = %7921
  br label %7931

7931:                                             ; preds = %7930
  br label %7932

7932:                                             ; preds = %7931
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %7933 = call ptr @__errno_location() #11
  %7934 = load i32, ptr %7933, align 4, !tbaa !5
  store i32 %7934, ptr %160, align 4, !tbaa !5
  %7935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7936 = call i32 @s2n_print_stacktrace(ptr noundef %7935)
  %7937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7938 = trunc i8 %7937 to i1
  br i1 %7938, label %7939, label %7961

7939:                                             ; preds = %7932
  %7940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7941 = call i32 @fileno(ptr noundef %7940) #10
  %7942 = call i32 @isatty(i32 noundef %7941) #10
  %7943 = icmp ne i32 %7942, 0
  br i1 %7943, label %7944, label %7961

7944:                                             ; preds = %7939
  %7945 = load i32, ptr %160, align 4, !tbaa !5
  %7946 = call ptr @__errno_location() #11
  store i32 %7945, ptr %7946, align 4, !tbaa !5
  %7947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7948 = load i32, ptr @test_count, align 4, !tbaa !5
  %7949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @s2n_strerror(i32 noundef %7950, ptr noundef @.str.4)
  %7952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call ptr @s2n_strerror_debug(i32 noundef %7953, ptr noundef @.str.4)
  %7955 = call ptr @__errno_location() #11
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @strerror(i32 noundef %7956) #10
  %7958 = call ptr @__errno_location() #11
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7947, ptr noundef @.str.2, i32 noundef %7948, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7951, ptr noundef %7954, ptr noundef %7957, i32 noundef %7959) #10
  br label %7978

7961:                                             ; preds = %7939, %7932
  %7962 = load i32, ptr %160, align 4, !tbaa !5
  %7963 = call ptr @__errno_location() #11
  store i32 %7962, ptr %7963, align 4, !tbaa !5
  %7964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7965 = load i32, ptr @test_count, align 4, !tbaa !5
  %7966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7967 = load i32, ptr %7966, align 4, !tbaa !5
  %7968 = call ptr @s2n_strerror(i32 noundef %7967, ptr noundef @.str.4)
  %7969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7970 = load i32, ptr %7969, align 4, !tbaa !5
  %7971 = call ptr @s2n_strerror_debug(i32 noundef %7970, ptr noundef @.str.4)
  %7972 = call ptr @__errno_location() #11
  %7973 = load i32, ptr %7972, align 4, !tbaa !5
  %7974 = call ptr @strerror(i32 noundef %7973) #10
  %7975 = call ptr @__errno_location() #11
  %7976 = load i32, ptr %7975, align 4, !tbaa !5
  %7977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7964, ptr noundef @.str.5, i32 noundef %7965, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 478, ptr noundef %7968, ptr noundef %7971, ptr noundef %7974, i32 noundef %7976) #10
  br label %7978

7978:                                             ; preds = %7961, %7944
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %7979

7979:                                             ; preds = %7978
  br label %7980

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

7981:                                             ; No predecessors!
  br label %7982

7982:                                             ; preds = %7981
  br label %7983

7983:                                             ; preds = %7982, %7921
  br label %7984

7984:                                             ; preds = %7983
  br label %7985

7985:                                             ; preds = %7984
  br label %7986

7986:                                             ; preds = %7985
  %7987 = load i32, ptr @test_count, align 4, !tbaa !5
  %7988 = add nsw i32 %7987, 1
  store i32 %7988, ptr @test_count, align 4, !tbaa !5
  %7989 = load ptr, ptr %144, align 8, !tbaa !9
  %7990 = getelementptr inbounds %struct.s2n_config, ptr %7989, i32 0, i32 7
  %7991 = load ptr, ptr %7990, align 8, !tbaa !63
  %7992 = getelementptr inbounds %struct.s2n_security_policy, ptr %7991, i32 0, i32 3
  %7993 = load ptr, ptr %7992, align 8, !tbaa !38
  %7994 = icmp eq ptr %7993, @s2n_signature_preferences_null
  br i1 %7994, label %8048, label %7995

7995:                                             ; preds = %7986
  br label %7996

7996:                                             ; preds = %7995
  br label %7997

7997:                                             ; preds = %7996
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #10
  %7998 = call ptr @__errno_location() #11
  %7999 = load i32, ptr %7998, align 4, !tbaa !5
  store i32 %7999, ptr %161, align 4, !tbaa !5
  %8000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8001 = call i32 @s2n_print_stacktrace(ptr noundef %8000)
  %8002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8003 = trunc i8 %8002 to i1
  br i1 %8003, label %8004, label %8026

8004:                                             ; preds = %7997
  %8005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8006 = call i32 @fileno(ptr noundef %8005) #10
  %8007 = call i32 @isatty(i32 noundef %8006) #10
  %8008 = icmp ne i32 %8007, 0
  br i1 %8008, label %8009, label %8026

8009:                                             ; preds = %8004
  %8010 = load i32, ptr %161, align 4, !tbaa !5
  %8011 = call ptr @__errno_location() #11
  store i32 %8010, ptr %8011, align 4, !tbaa !5
  %8012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8013 = load i32, ptr @test_count, align 4, !tbaa !5
  %8014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8015 = load i32, ptr %8014, align 4, !tbaa !5
  %8016 = call ptr @s2n_strerror(i32 noundef %8015, ptr noundef @.str.4)
  %8017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8018 = load i32, ptr %8017, align 4, !tbaa !5
  %8019 = call ptr @s2n_strerror_debug(i32 noundef %8018, ptr noundef @.str.4)
  %8020 = call ptr @__errno_location() #11
  %8021 = load i32, ptr %8020, align 4, !tbaa !5
  %8022 = call ptr @strerror(i32 noundef %8021) #10
  %8023 = call ptr @__errno_location() #11
  %8024 = load i32, ptr %8023, align 4, !tbaa !5
  %8025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8012, ptr noundef @.str.2, i32 noundef %8013, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 479, ptr noundef %8016, ptr noundef %8019, ptr noundef %8022, i32 noundef %8024) #10
  br label %8043

8026:                                             ; preds = %8004, %7997
  %8027 = load i32, ptr %161, align 4, !tbaa !5
  %8028 = call ptr @__errno_location() #11
  store i32 %8027, ptr %8028, align 4, !tbaa !5
  %8029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8030 = load i32, ptr @test_count, align 4, !tbaa !5
  %8031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  %8033 = call ptr @s2n_strerror(i32 noundef %8032, ptr noundef @.str.4)
  %8034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8035 = load i32, ptr %8034, align 4, !tbaa !5
  %8036 = call ptr @s2n_strerror_debug(i32 noundef %8035, ptr noundef @.str.4)
  %8037 = call ptr @__errno_location() #11
  %8038 = load i32, ptr %8037, align 4, !tbaa !5
  %8039 = call ptr @strerror(i32 noundef %8038) #10
  %8040 = call ptr @__errno_location() #11
  %8041 = load i32, ptr %8040, align 4, !tbaa !5
  %8042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8029, ptr noundef @.str.5, i32 noundef %8030, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 479, ptr noundef %8033, ptr noundef %8036, ptr noundef %8039, i32 noundef %8041) #10
  br label %8043

8043:                                             ; preds = %8026, %8009
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #10
  br label %8044

8044:                                             ; preds = %8043
  br label %8045

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

8046:                                             ; No predecessors!
  br label %8047

8047:                                             ; preds = %8046
  br label %8048

8048:                                             ; preds = %8047, %7986
  br label %8049

8049:                                             ; preds = %8048
  br label %8050

8050:                                             ; preds = %8049
  br label %8051

8051:                                             ; preds = %8050
  %8052 = load i32, ptr @test_count, align 4, !tbaa !5
  %8053 = add nsw i32 %8052, 1
  store i32 %8053, ptr @test_count, align 4, !tbaa !5
  %8054 = load ptr, ptr %144, align 8, !tbaa !9
  %8055 = getelementptr inbounds %struct.s2n_config, ptr %8054, i32 0, i32 7
  %8056 = load ptr, ptr %8055, align 8, !tbaa !63
  %8057 = getelementptr inbounds %struct.s2n_security_policy, ptr %8056, i32 0, i32 5
  %8058 = load ptr, ptr %8057, align 8, !tbaa !60
  %8059 = icmp eq ptr %8058, @s2n_ecc_preferences_null
  br i1 %8059, label %8113, label %8060

8060:                                             ; preds = %8051
  br label %8061

8061:                                             ; preds = %8060
  br label %8062

8062:                                             ; preds = %8061
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #10
  %8063 = call ptr @__errno_location() #11
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  store i32 %8064, ptr %162, align 4, !tbaa !5
  %8065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8066 = call i32 @s2n_print_stacktrace(ptr noundef %8065)
  %8067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8068 = trunc i8 %8067 to i1
  br i1 %8068, label %8069, label %8091

8069:                                             ; preds = %8062
  %8070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8071 = call i32 @fileno(ptr noundef %8070) #10
  %8072 = call i32 @isatty(i32 noundef %8071) #10
  %8073 = icmp ne i32 %8072, 0
  br i1 %8073, label %8074, label %8091

8074:                                             ; preds = %8069
  %8075 = load i32, ptr %162, align 4, !tbaa !5
  %8076 = call ptr @__errno_location() #11
  store i32 %8075, ptr %8076, align 4, !tbaa !5
  %8077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8078 = load i32, ptr @test_count, align 4, !tbaa !5
  %8079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8080 = load i32, ptr %8079, align 4, !tbaa !5
  %8081 = call ptr @s2n_strerror(i32 noundef %8080, ptr noundef @.str.4)
  %8082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8083 = load i32, ptr %8082, align 4, !tbaa !5
  %8084 = call ptr @s2n_strerror_debug(i32 noundef %8083, ptr noundef @.str.4)
  %8085 = call ptr @__errno_location() #11
  %8086 = load i32, ptr %8085, align 4, !tbaa !5
  %8087 = call ptr @strerror(i32 noundef %8086) #10
  %8088 = call ptr @__errno_location() #11
  %8089 = load i32, ptr %8088, align 4, !tbaa !5
  %8090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8077, ptr noundef @.str.2, i32 noundef %8078, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 480, ptr noundef %8081, ptr noundef %8084, ptr noundef %8087, i32 noundef %8089) #10
  br label %8108

8091:                                             ; preds = %8069, %8062
  %8092 = load i32, ptr %162, align 4, !tbaa !5
  %8093 = call ptr @__errno_location() #11
  store i32 %8092, ptr %8093, align 4, !tbaa !5
  %8094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8095 = load i32, ptr @test_count, align 4, !tbaa !5
  %8096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8097 = load i32, ptr %8096, align 4, !tbaa !5
  %8098 = call ptr @s2n_strerror(i32 noundef %8097, ptr noundef @.str.4)
  %8099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8100 = load i32, ptr %8099, align 4, !tbaa !5
  %8101 = call ptr @s2n_strerror_debug(i32 noundef %8100, ptr noundef @.str.4)
  %8102 = call ptr @__errno_location() #11
  %8103 = load i32, ptr %8102, align 4, !tbaa !5
  %8104 = call ptr @strerror(i32 noundef %8103) #10
  %8105 = call ptr @__errno_location() #11
  %8106 = load i32, ptr %8105, align 4, !tbaa !5
  %8107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8094, ptr noundef @.str.5, i32 noundef %8095, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 480, ptr noundef %8098, ptr noundef %8101, ptr noundef %8104, i32 noundef %8106) #10
  br label %8108

8108:                                             ; preds = %8091, %8074
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #10
  br label %8109

8109:                                             ; preds = %8108
  br label %8110

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

8111:                                             ; No predecessors!
  br label %8112

8112:                                             ; preds = %8111
  br label %8113

8113:                                             ; preds = %8112, %8051
  br label %8114

8114:                                             ; preds = %8113
  br label %8115

8115:                                             ; preds = %8114
  br label %8116

8116:                                             ; preds = %8115
  %8117 = load i32, ptr @test_count, align 4, !tbaa !5
  %8118 = add nsw i32 %8117, 1
  store i32 %8118, ptr @test_count, align 4, !tbaa !5
  %8119 = load ptr, ptr %144, align 8, !tbaa !9
  %8120 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %8119, ptr noundef @.str.50)
  %8121 = icmp eq i32 %8120, -1
  br i1 %8121, label %8122, label %8175

8122:                                             ; preds = %8116
  br label %8123

8123:                                             ; preds = %8122
  br label %8124

8124:                                             ; preds = %8123
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %8125 = call ptr @__errno_location() #11
  %8126 = load i32, ptr %8125, align 4, !tbaa !5
  store i32 %8126, ptr %163, align 4, !tbaa !5
  %8127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8128 = call i32 @s2n_print_stacktrace(ptr noundef %8127)
  %8129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8130 = trunc i8 %8129 to i1
  br i1 %8130, label %8131, label %8153

8131:                                             ; preds = %8124
  %8132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8133 = call i32 @fileno(ptr noundef %8132) #10
  %8134 = call i32 @isatty(i32 noundef %8133) #10
  %8135 = icmp ne i32 %8134, 0
  br i1 %8135, label %8136, label %8153

8136:                                             ; preds = %8131
  %8137 = load i32, ptr %163, align 4, !tbaa !5
  %8138 = call ptr @__errno_location() #11
  store i32 %8137, ptr %8138, align 4, !tbaa !5
  %8139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8140 = load i32, ptr @test_count, align 4, !tbaa !5
  %8141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  %8143 = call ptr @s2n_strerror(i32 noundef %8142, ptr noundef @.str.4)
  %8144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8145 = load i32, ptr %8144, align 4, !tbaa !5
  %8146 = call ptr @s2n_strerror_debug(i32 noundef %8145, ptr noundef @.str.4)
  %8147 = call ptr @__errno_location() #11
  %8148 = load i32, ptr %8147, align 4, !tbaa !5
  %8149 = call ptr @strerror(i32 noundef %8148) #10
  %8150 = call ptr @__errno_location() #11
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  %8152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8139, ptr noundef @.str.2, i32 noundef %8140, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 482, ptr noundef %8143, ptr noundef %8146, ptr noundef %8149, i32 noundef %8151) #10
  br label %8170

8153:                                             ; preds = %8131, %8124
  %8154 = load i32, ptr %163, align 4, !tbaa !5
  %8155 = call ptr @__errno_location() #11
  store i32 %8154, ptr %8155, align 4, !tbaa !5
  %8156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8157 = load i32, ptr @test_count, align 4, !tbaa !5
  %8158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8159 = load i32, ptr %8158, align 4, !tbaa !5
  %8160 = call ptr @s2n_strerror(i32 noundef %8159, ptr noundef @.str.4)
  %8161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8162 = load i32, ptr %8161, align 4, !tbaa !5
  %8163 = call ptr @s2n_strerror_debug(i32 noundef %8162, ptr noundef @.str.4)
  %8164 = call ptr @__errno_location() #11
  %8165 = load i32, ptr %8164, align 4, !tbaa !5
  %8166 = call ptr @strerror(i32 noundef %8165) #10
  %8167 = call ptr @__errno_location() #11
  %8168 = load i32, ptr %8167, align 4, !tbaa !5
  %8169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8156, ptr noundef @.str.5, i32 noundef %8157, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 482, ptr noundef %8160, ptr noundef %8163, ptr noundef %8166, i32 noundef %8168) #10
  br label %8170

8170:                                             ; preds = %8153, %8136
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %8171

8171:                                             ; preds = %8170
  br label %8172

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

8173:                                             ; No predecessors!
  br label %8174

8174:                                             ; preds = %8173
  br label %8175

8175:                                             ; preds = %8174, %8116
  br label %8176

8176:                                             ; preds = %8175
  br label %8177

8177:                                             ; preds = %8176
  br label %8178

8178:                                             ; preds = %8177
  %8179 = load i32, ptr @test_count, align 4, !tbaa !5
  %8180 = add nsw i32 %8179, 1
  store i32 %8180, ptr @test_count, align 4, !tbaa !5
  %8181 = load ptr, ptr %144, align 8, !tbaa !9
  %8182 = getelementptr inbounds %struct.s2n_config, ptr %8181, i32 0, i32 7
  %8183 = load ptr, ptr %8182, align 8, !tbaa !63
  %8184 = icmp eq ptr %8183, @security_policy_test_all
  br i1 %8184, label %8238, label %8185

8185:                                             ; preds = %8178
  br label %8186

8186:                                             ; preds = %8185
  br label %8187

8187:                                             ; preds = %8186
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #10
  %8188 = call ptr @__errno_location() #11
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  store i32 %8189, ptr %164, align 4, !tbaa !5
  %8190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8191 = call i32 @s2n_print_stacktrace(ptr noundef %8190)
  %8192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8193 = trunc i8 %8192 to i1
  br i1 %8193, label %8194, label %8216

8194:                                             ; preds = %8187
  %8195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8196 = call i32 @fileno(ptr noundef %8195) #10
  %8197 = call i32 @isatty(i32 noundef %8196) #10
  %8198 = icmp ne i32 %8197, 0
  br i1 %8198, label %8199, label %8216

8199:                                             ; preds = %8194
  %8200 = load i32, ptr %164, align 4, !tbaa !5
  %8201 = call ptr @__errno_location() #11
  store i32 %8200, ptr %8201, align 4, !tbaa !5
  %8202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8203 = load i32, ptr @test_count, align 4, !tbaa !5
  %8204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8205 = load i32, ptr %8204, align 4, !tbaa !5
  %8206 = call ptr @s2n_strerror(i32 noundef %8205, ptr noundef @.str.4)
  %8207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8208 = load i32, ptr %8207, align 4, !tbaa !5
  %8209 = call ptr @s2n_strerror_debug(i32 noundef %8208, ptr noundef @.str.4)
  %8210 = call ptr @__errno_location() #11
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call ptr @strerror(i32 noundef %8211) #10
  %8213 = call ptr @__errno_location() #11
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8202, ptr noundef @.str.2, i32 noundef %8203, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 483, ptr noundef %8206, ptr noundef %8209, ptr noundef %8212, i32 noundef %8214) #10
  br label %8233

8216:                                             ; preds = %8194, %8187
  %8217 = load i32, ptr %164, align 4, !tbaa !5
  %8218 = call ptr @__errno_location() #11
  store i32 %8217, ptr %8218, align 4, !tbaa !5
  %8219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8220 = load i32, ptr @test_count, align 4, !tbaa !5
  %8221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8222 = load i32, ptr %8221, align 4, !tbaa !5
  %8223 = call ptr @s2n_strerror(i32 noundef %8222, ptr noundef @.str.4)
  %8224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8225 = load i32, ptr %8224, align 4, !tbaa !5
  %8226 = call ptr @s2n_strerror_debug(i32 noundef %8225, ptr noundef @.str.4)
  %8227 = call ptr @__errno_location() #11
  %8228 = load i32, ptr %8227, align 4, !tbaa !5
  %8229 = call ptr @strerror(i32 noundef %8228) #10
  %8230 = call ptr @__errno_location() #11
  %8231 = load i32, ptr %8230, align 4, !tbaa !5
  %8232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8219, ptr noundef @.str.5, i32 noundef %8220, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 483, ptr noundef %8223, ptr noundef %8226, ptr noundef %8229, i32 noundef %8231) #10
  br label %8233

8233:                                             ; preds = %8216, %8199
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #10
  br label %8234

8234:                                             ; preds = %8233
  br label %8235

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

8236:                                             ; No predecessors!
  br label %8237

8237:                                             ; preds = %8236
  br label %8238

8238:                                             ; preds = %8237, %8178
  br label %8239

8239:                                             ; preds = %8238
  br label %8240

8240:                                             ; preds = %8239
  br label %8241

8241:                                             ; preds = %8240
  %8242 = load i32, ptr @test_count, align 4, !tbaa !5
  %8243 = add nsw i32 %8242, 1
  store i32 %8243, ptr @test_count, align 4, !tbaa !5
  %8244 = load ptr, ptr %144, align 8, !tbaa !9
  %8245 = getelementptr inbounds %struct.s2n_config, ptr %8244, i32 0, i32 7
  %8246 = load ptr, ptr %8245, align 8, !tbaa !63
  %8247 = getelementptr inbounds %struct.s2n_security_policy, ptr %8246, i32 0, i32 1
  %8248 = load ptr, ptr %8247, align 8, !tbaa !31
  %8249 = icmp eq ptr %8248, @cipher_preferences_test_all
  br i1 %8249, label %8303, label %8250

8250:                                             ; preds = %8241
  br label %8251

8251:                                             ; preds = %8250
  br label %8252

8252:                                             ; preds = %8251
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %8253 = call ptr @__errno_location() #11
  %8254 = load i32, ptr %8253, align 4, !tbaa !5
  store i32 %8254, ptr %165, align 4, !tbaa !5
  %8255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8256 = call i32 @s2n_print_stacktrace(ptr noundef %8255)
  %8257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8258 = trunc i8 %8257 to i1
  br i1 %8258, label %8259, label %8281

8259:                                             ; preds = %8252
  %8260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8261 = call i32 @fileno(ptr noundef %8260) #10
  %8262 = call i32 @isatty(i32 noundef %8261) #10
  %8263 = icmp ne i32 %8262, 0
  br i1 %8263, label %8264, label %8281

8264:                                             ; preds = %8259
  %8265 = load i32, ptr %165, align 4, !tbaa !5
  %8266 = call ptr @__errno_location() #11
  store i32 %8265, ptr %8266, align 4, !tbaa !5
  %8267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8268 = load i32, ptr @test_count, align 4, !tbaa !5
  %8269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8270 = load i32, ptr %8269, align 4, !tbaa !5
  %8271 = call ptr @s2n_strerror(i32 noundef %8270, ptr noundef @.str.4)
  %8272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8273 = load i32, ptr %8272, align 4, !tbaa !5
  %8274 = call ptr @s2n_strerror_debug(i32 noundef %8273, ptr noundef @.str.4)
  %8275 = call ptr @__errno_location() #11
  %8276 = load i32, ptr %8275, align 4, !tbaa !5
  %8277 = call ptr @strerror(i32 noundef %8276) #10
  %8278 = call ptr @__errno_location() #11
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8267, ptr noundef @.str.2, i32 noundef %8268, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 484, ptr noundef %8271, ptr noundef %8274, ptr noundef %8277, i32 noundef %8279) #10
  br label %8298

8281:                                             ; preds = %8259, %8252
  %8282 = load i32, ptr %165, align 4, !tbaa !5
  %8283 = call ptr @__errno_location() #11
  store i32 %8282, ptr %8283, align 4, !tbaa !5
  %8284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8285 = load i32, ptr @test_count, align 4, !tbaa !5
  %8286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8287 = load i32, ptr %8286, align 4, !tbaa !5
  %8288 = call ptr @s2n_strerror(i32 noundef %8287, ptr noundef @.str.4)
  %8289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8290 = load i32, ptr %8289, align 4, !tbaa !5
  %8291 = call ptr @s2n_strerror_debug(i32 noundef %8290, ptr noundef @.str.4)
  %8292 = call ptr @__errno_location() #11
  %8293 = load i32, ptr %8292, align 4, !tbaa !5
  %8294 = call ptr @strerror(i32 noundef %8293) #10
  %8295 = call ptr @__errno_location() #11
  %8296 = load i32, ptr %8295, align 4, !tbaa !5
  %8297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8284, ptr noundef @.str.5, i32 noundef %8285, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 484, ptr noundef %8288, ptr noundef %8291, ptr noundef %8294, i32 noundef %8296) #10
  br label %8298

8298:                                             ; preds = %8281, %8264
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %8299

8299:                                             ; preds = %8298
  br label %8300

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

8301:                                             ; No predecessors!
  br label %8302

8302:                                             ; preds = %8301
  br label %8303

8303:                                             ; preds = %8302, %8241
  br label %8304

8304:                                             ; preds = %8303
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

8306:                                             ; preds = %8305
  %8307 = load i32, ptr @test_count, align 4, !tbaa !5
  %8308 = add nsw i32 %8307, 1
  store i32 %8308, ptr @test_count, align 4, !tbaa !5
  %8309 = load ptr, ptr %144, align 8, !tbaa !9
  %8310 = getelementptr inbounds %struct.s2n_config, ptr %8309, i32 0, i32 7
  %8311 = load ptr, ptr %8310, align 8, !tbaa !63
  %8312 = getelementptr inbounds %struct.s2n_security_policy, ptr %8311, i32 0, i32 2
  %8313 = load ptr, ptr %8312, align 8, !tbaa !20
  %8314 = icmp eq ptr %8313, @kem_preferences_all
  br i1 %8314, label %8368, label %8315

8315:                                             ; preds = %8306
  br label %8316

8316:                                             ; preds = %8315
  br label %8317

8317:                                             ; preds = %8316
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %8318 = call ptr @__errno_location() #11
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  store i32 %8319, ptr %166, align 4, !tbaa !5
  %8320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8321 = call i32 @s2n_print_stacktrace(ptr noundef %8320)
  %8322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8323 = trunc i8 %8322 to i1
  br i1 %8323, label %8324, label %8346

8324:                                             ; preds = %8317
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @fileno(ptr noundef %8325) #10
  %8327 = call i32 @isatty(i32 noundef %8326) #10
  %8328 = icmp ne i32 %8327, 0
  br i1 %8328, label %8329, label %8346

8329:                                             ; preds = %8324
  %8330 = load i32, ptr %166, align 4, !tbaa !5
  %8331 = call ptr @__errno_location() #11
  store i32 %8330, ptr %8331, align 4, !tbaa !5
  %8332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8333 = load i32, ptr @test_count, align 4, !tbaa !5
  %8334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8335 = load i32, ptr %8334, align 4, !tbaa !5
  %8336 = call ptr @s2n_strerror(i32 noundef %8335, ptr noundef @.str.4)
  %8337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8338 = load i32, ptr %8337, align 4, !tbaa !5
  %8339 = call ptr @s2n_strerror_debug(i32 noundef %8338, ptr noundef @.str.4)
  %8340 = call ptr @__errno_location() #11
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @strerror(i32 noundef %8341) #10
  %8343 = call ptr @__errno_location() #11
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8332, ptr noundef @.str.2, i32 noundef %8333, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 485, ptr noundef %8336, ptr noundef %8339, ptr noundef %8342, i32 noundef %8344) #10
  br label %8363

8346:                                             ; preds = %8324, %8317
  %8347 = load i32, ptr %166, align 4, !tbaa !5
  %8348 = call ptr @__errno_location() #11
  store i32 %8347, ptr %8348, align 4, !tbaa !5
  %8349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8350 = load i32, ptr @test_count, align 4, !tbaa !5
  %8351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8352 = load i32, ptr %8351, align 4, !tbaa !5
  %8353 = call ptr @s2n_strerror(i32 noundef %8352, ptr noundef @.str.4)
  %8354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8355 = load i32, ptr %8354, align 4, !tbaa !5
  %8356 = call ptr @s2n_strerror_debug(i32 noundef %8355, ptr noundef @.str.4)
  %8357 = call ptr @__errno_location() #11
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call ptr @strerror(i32 noundef %8358) #10
  %8360 = call ptr @__errno_location() #11
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8349, ptr noundef @.str.5, i32 noundef %8350, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 485, ptr noundef %8353, ptr noundef %8356, ptr noundef %8359, i32 noundef %8361) #10
  br label %8363

8363:                                             ; preds = %8346, %8329
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %8364

8364:                                             ; preds = %8363
  br label %8365

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

8366:                                             ; No predecessors!
  br label %8367

8367:                                             ; preds = %8366
  br label %8368

8368:                                             ; preds = %8367, %8306
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

8371:                                             ; preds = %8370
  %8372 = load i32, ptr @test_count, align 4, !tbaa !5
  %8373 = add nsw i32 %8372, 1
  store i32 %8373, ptr @test_count, align 4, !tbaa !5
  %8374 = load ptr, ptr %144, align 8, !tbaa !9
  %8375 = getelementptr inbounds %struct.s2n_config, ptr %8374, i32 0, i32 7
  %8376 = load ptr, ptr %8375, align 8, !tbaa !63
  %8377 = getelementptr inbounds %struct.s2n_security_policy, ptr %8376, i32 0, i32 3
  %8378 = load ptr, ptr %8377, align 8, !tbaa !38
  %8379 = icmp eq ptr %8378, @s2n_signature_preferences_all
  br i1 %8379, label %8433, label %8380

8380:                                             ; preds = %8371
  br label %8381

8381:                                             ; preds = %8380
  br label %8382

8382:                                             ; preds = %8381
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %8383 = call ptr @__errno_location() #11
  %8384 = load i32, ptr %8383, align 4, !tbaa !5
  store i32 %8384, ptr %167, align 4, !tbaa !5
  %8385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8386 = call i32 @s2n_print_stacktrace(ptr noundef %8385)
  %8387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8388 = trunc i8 %8387 to i1
  br i1 %8388, label %8389, label %8411

8389:                                             ; preds = %8382
  %8390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8391 = call i32 @fileno(ptr noundef %8390) #10
  %8392 = call i32 @isatty(i32 noundef %8391) #10
  %8393 = icmp ne i32 %8392, 0
  br i1 %8393, label %8394, label %8411

8394:                                             ; preds = %8389
  %8395 = load i32, ptr %167, align 4, !tbaa !5
  %8396 = call ptr @__errno_location() #11
  store i32 %8395, ptr %8396, align 4, !tbaa !5
  %8397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8398 = load i32, ptr @test_count, align 4, !tbaa !5
  %8399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8400 = load i32, ptr %8399, align 4, !tbaa !5
  %8401 = call ptr @s2n_strerror(i32 noundef %8400, ptr noundef @.str.4)
  %8402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8403 = load i32, ptr %8402, align 4, !tbaa !5
  %8404 = call ptr @s2n_strerror_debug(i32 noundef %8403, ptr noundef @.str.4)
  %8405 = call ptr @__errno_location() #11
  %8406 = load i32, ptr %8405, align 4, !tbaa !5
  %8407 = call ptr @strerror(i32 noundef %8406) #10
  %8408 = call ptr @__errno_location() #11
  %8409 = load i32, ptr %8408, align 4, !tbaa !5
  %8410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8397, ptr noundef @.str.2, i32 noundef %8398, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 486, ptr noundef %8401, ptr noundef %8404, ptr noundef %8407, i32 noundef %8409) #10
  br label %8428

8411:                                             ; preds = %8389, %8382
  %8412 = load i32, ptr %167, align 4, !tbaa !5
  %8413 = call ptr @__errno_location() #11
  store i32 %8412, ptr %8413, align 4, !tbaa !5
  %8414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8415 = load i32, ptr @test_count, align 4, !tbaa !5
  %8416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8417 = load i32, ptr %8416, align 4, !tbaa !5
  %8418 = call ptr @s2n_strerror(i32 noundef %8417, ptr noundef @.str.4)
  %8419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8420 = load i32, ptr %8419, align 4, !tbaa !5
  %8421 = call ptr @s2n_strerror_debug(i32 noundef %8420, ptr noundef @.str.4)
  %8422 = call ptr @__errno_location() #11
  %8423 = load i32, ptr %8422, align 4, !tbaa !5
  %8424 = call ptr @strerror(i32 noundef %8423) #10
  %8425 = call ptr @__errno_location() #11
  %8426 = load i32, ptr %8425, align 4, !tbaa !5
  %8427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8414, ptr noundef @.str.5, i32 noundef %8415, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 486, ptr noundef %8418, ptr noundef %8421, ptr noundef %8424, i32 noundef %8426) #10
  br label %8428

8428:                                             ; preds = %8411, %8394
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %8429

8429:                                             ; preds = %8428
  br label %8430

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

8431:                                             ; No predecessors!
  br label %8432

8432:                                             ; preds = %8431
  br label %8433

8433:                                             ; preds = %8432, %8371
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434
  br label %8436

8436:                                             ; preds = %8435
  %8437 = load i32, ptr @test_count, align 4, !tbaa !5
  %8438 = add nsw i32 %8437, 1
  store i32 %8438, ptr @test_count, align 4, !tbaa !5
  %8439 = load ptr, ptr %144, align 8, !tbaa !9
  %8440 = getelementptr inbounds %struct.s2n_config, ptr %8439, i32 0, i32 7
  %8441 = load ptr, ptr %8440, align 8, !tbaa !63
  %8442 = getelementptr inbounds %struct.s2n_security_policy, ptr %8441, i32 0, i32 5
  %8443 = load ptr, ptr %8442, align 8, !tbaa !60
  %8444 = icmp eq ptr %8443, @s2n_ecc_preferences_test_all
  br i1 %8444, label %8498, label %8445

8445:                                             ; preds = %8436
  br label %8446

8446:                                             ; preds = %8445
  br label %8447

8447:                                             ; preds = %8446
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %8448 = call ptr @__errno_location() #11
  %8449 = load i32, ptr %8448, align 4, !tbaa !5
  store i32 %8449, ptr %168, align 4, !tbaa !5
  %8450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8451 = call i32 @s2n_print_stacktrace(ptr noundef %8450)
  %8452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8453 = trunc i8 %8452 to i1
  br i1 %8453, label %8454, label %8476

8454:                                             ; preds = %8447
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = call i32 @fileno(ptr noundef %8455) #10
  %8457 = call i32 @isatty(i32 noundef %8456) #10
  %8458 = icmp ne i32 %8457, 0
  br i1 %8458, label %8459, label %8476

8459:                                             ; preds = %8454
  %8460 = load i32, ptr %168, align 4, !tbaa !5
  %8461 = call ptr @__errno_location() #11
  store i32 %8460, ptr %8461, align 4, !tbaa !5
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = load i32, ptr @test_count, align 4, !tbaa !5
  %8464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @s2n_strerror(i32 noundef %8465, ptr noundef @.str.4)
  %8467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call ptr @s2n_strerror_debug(i32 noundef %8468, ptr noundef @.str.4)
  %8470 = call ptr @__errno_location() #11
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call ptr @strerror(i32 noundef %8471) #10
  %8473 = call ptr @__errno_location() #11
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8462, ptr noundef @.str.2, i32 noundef %8463, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 487, ptr noundef %8466, ptr noundef %8469, ptr noundef %8472, i32 noundef %8474) #10
  br label %8493

8476:                                             ; preds = %8454, %8447
  %8477 = load i32, ptr %168, align 4, !tbaa !5
  %8478 = call ptr @__errno_location() #11
  store i32 %8477, ptr %8478, align 4, !tbaa !5
  %8479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8480 = load i32, ptr @test_count, align 4, !tbaa !5
  %8481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8482 = load i32, ptr %8481, align 4, !tbaa !5
  %8483 = call ptr @s2n_strerror(i32 noundef %8482, ptr noundef @.str.4)
  %8484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8485 = load i32, ptr %8484, align 4, !tbaa !5
  %8486 = call ptr @s2n_strerror_debug(i32 noundef %8485, ptr noundef @.str.4)
  %8487 = call ptr @__errno_location() #11
  %8488 = load i32, ptr %8487, align 4, !tbaa !5
  %8489 = call ptr @strerror(i32 noundef %8488) #10
  %8490 = call ptr @__errno_location() #11
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  %8492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8479, ptr noundef @.str.5, i32 noundef %8480, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 487, ptr noundef %8483, ptr noundef %8486, ptr noundef %8489, i32 noundef %8491) #10
  br label %8493

8493:                                             ; preds = %8476, %8459
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %8494

8494:                                             ; preds = %8493
  br label %8495

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

8496:                                             ; No predecessors!
  br label %8497

8497:                                             ; preds = %8496
  br label %8498

8498:                                             ; preds = %8497, %8436
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

8500:                                             ; preds = %8499
  br label %8501

8501:                                             ; preds = %8500
  %8502 = load i32, ptr @test_count, align 4, !tbaa !5
  %8503 = add nsw i32 %8502, 1
  store i32 %8503, ptr @test_count, align 4, !tbaa !5
  %8504 = load ptr, ptr %144, align 8, !tbaa !9
  %8505 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %8504, ptr noundef @.str.104)
  %8506 = icmp eq i32 %8505, -1
  br i1 %8506, label %8507, label %8560

8507:                                             ; preds = %8501
  br label %8508

8508:                                             ; preds = %8507
  br label %8509

8509:                                             ; preds = %8508
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %8510 = call ptr @__errno_location() #11
  %8511 = load i32, ptr %8510, align 4, !tbaa !5
  store i32 %8511, ptr %169, align 4, !tbaa !5
  %8512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8513 = call i32 @s2n_print_stacktrace(ptr noundef %8512)
  %8514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8515 = trunc i8 %8514 to i1
  br i1 %8515, label %8516, label %8538

8516:                                             ; preds = %8509
  %8517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8518 = call i32 @fileno(ptr noundef %8517) #10
  %8519 = call i32 @isatty(i32 noundef %8518) #10
  %8520 = icmp ne i32 %8519, 0
  br i1 %8520, label %8521, label %8538

8521:                                             ; preds = %8516
  %8522 = load i32, ptr %169, align 4, !tbaa !5
  %8523 = call ptr @__errno_location() #11
  store i32 %8522, ptr %8523, align 4, !tbaa !5
  %8524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8525 = load i32, ptr @test_count, align 4, !tbaa !5
  %8526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call ptr @s2n_strerror(i32 noundef %8527, ptr noundef @.str.4)
  %8529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8530 = load i32, ptr %8529, align 4, !tbaa !5
  %8531 = call ptr @s2n_strerror_debug(i32 noundef %8530, ptr noundef @.str.4)
  %8532 = call ptr @__errno_location() #11
  %8533 = load i32, ptr %8532, align 4, !tbaa !5
  %8534 = call ptr @strerror(i32 noundef %8533) #10
  %8535 = call ptr @__errno_location() #11
  %8536 = load i32, ptr %8535, align 4, !tbaa !5
  %8537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8524, ptr noundef @.str.2, i32 noundef %8525, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 489, ptr noundef %8528, ptr noundef %8531, ptr noundef %8534, i32 noundef %8536) #10
  br label %8555

8538:                                             ; preds = %8516, %8509
  %8539 = load i32, ptr %169, align 4, !tbaa !5
  %8540 = call ptr @__errno_location() #11
  store i32 %8539, ptr %8540, align 4, !tbaa !5
  %8541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8542 = load i32, ptr @test_count, align 4, !tbaa !5
  %8543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8544 = load i32, ptr %8543, align 4, !tbaa !5
  %8545 = call ptr @s2n_strerror(i32 noundef %8544, ptr noundef @.str.4)
  %8546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8547 = load i32, ptr %8546, align 4, !tbaa !5
  %8548 = call ptr @s2n_strerror_debug(i32 noundef %8547, ptr noundef @.str.4)
  %8549 = call ptr @__errno_location() #11
  %8550 = load i32, ptr %8549, align 4, !tbaa !5
  %8551 = call ptr @strerror(i32 noundef %8550) #10
  %8552 = call ptr @__errno_location() #11
  %8553 = load i32, ptr %8552, align 4, !tbaa !5
  %8554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8541, ptr noundef @.str.5, i32 noundef %8542, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 489, ptr noundef %8545, ptr noundef %8548, ptr noundef %8551, i32 noundef %8553) #10
  br label %8555

8555:                                             ; preds = %8538, %8521
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %8556

8556:                                             ; preds = %8555
  br label %8557

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

8558:                                             ; No predecessors!
  br label %8559

8559:                                             ; preds = %8558
  br label %8560

8560:                                             ; preds = %8559, %8501
  br label %8561

8561:                                             ; preds = %8560
  br label %8562

8562:                                             ; preds = %8561
  br label %8563

8563:                                             ; preds = %8562
  %8564 = load i32, ptr @test_count, align 4, !tbaa !5
  %8565 = add nsw i32 %8564, 1
  store i32 %8565, ptr @test_count, align 4, !tbaa !5
  %8566 = load ptr, ptr %144, align 8, !tbaa !9
  %8567 = getelementptr inbounds %struct.s2n_config, ptr %8566, i32 0, i32 7
  %8568 = load ptr, ptr %8567, align 8, !tbaa !63
  %8569 = icmp eq ptr %8568, @security_policy_test_all_tls12
  br i1 %8569, label %8623, label %8570

8570:                                             ; preds = %8563
  br label %8571

8571:                                             ; preds = %8570
  br label %8572

8572:                                             ; preds = %8571
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  %8573 = call ptr @__errno_location() #11
  %8574 = load i32, ptr %8573, align 4, !tbaa !5
  store i32 %8574, ptr %170, align 4, !tbaa !5
  %8575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8576 = call i32 @s2n_print_stacktrace(ptr noundef %8575)
  %8577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8578 = trunc i8 %8577 to i1
  br i1 %8578, label %8579, label %8601

8579:                                             ; preds = %8572
  %8580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8581 = call i32 @fileno(ptr noundef %8580) #10
  %8582 = call i32 @isatty(i32 noundef %8581) #10
  %8583 = icmp ne i32 %8582, 0
  br i1 %8583, label %8584, label %8601

8584:                                             ; preds = %8579
  %8585 = load i32, ptr %170, align 4, !tbaa !5
  %8586 = call ptr @__errno_location() #11
  store i32 %8585, ptr %8586, align 4, !tbaa !5
  %8587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8588 = load i32, ptr @test_count, align 4, !tbaa !5
  %8589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8590 = load i32, ptr %8589, align 4, !tbaa !5
  %8591 = call ptr @s2n_strerror(i32 noundef %8590, ptr noundef @.str.4)
  %8592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8593 = load i32, ptr %8592, align 4, !tbaa !5
  %8594 = call ptr @s2n_strerror_debug(i32 noundef %8593, ptr noundef @.str.4)
  %8595 = call ptr @__errno_location() #11
  %8596 = load i32, ptr %8595, align 4, !tbaa !5
  %8597 = call ptr @strerror(i32 noundef %8596) #10
  %8598 = call ptr @__errno_location() #11
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8587, ptr noundef @.str.2, i32 noundef %8588, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 490, ptr noundef %8591, ptr noundef %8594, ptr noundef %8597, i32 noundef %8599) #10
  br label %8618

8601:                                             ; preds = %8579, %8572
  %8602 = load i32, ptr %170, align 4, !tbaa !5
  %8603 = call ptr @__errno_location() #11
  store i32 %8602, ptr %8603, align 4, !tbaa !5
  %8604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8605 = load i32, ptr @test_count, align 4, !tbaa !5
  %8606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror(i32 noundef %8607, ptr noundef @.str.4)
  %8609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call ptr @s2n_strerror_debug(i32 noundef %8610, ptr noundef @.str.4)
  %8612 = call ptr @__errno_location() #11
  %8613 = load i32, ptr %8612, align 4, !tbaa !5
  %8614 = call ptr @strerror(i32 noundef %8613) #10
  %8615 = call ptr @__errno_location() #11
  %8616 = load i32, ptr %8615, align 4, !tbaa !5
  %8617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8604, ptr noundef @.str.5, i32 noundef %8605, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 490, ptr noundef %8608, ptr noundef %8611, ptr noundef %8614, i32 noundef %8616) #10
  br label %8618

8618:                                             ; preds = %8601, %8584
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %8619

8619:                                             ; preds = %8618
  br label %8620

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

8621:                                             ; No predecessors!
  br label %8622

8622:                                             ; preds = %8621
  br label %8623

8623:                                             ; preds = %8622, %8563
  br label %8624

8624:                                             ; preds = %8623
  br label %8625

8625:                                             ; preds = %8624
  br label %8626

8626:                                             ; preds = %8625
  %8627 = load i32, ptr @test_count, align 4, !tbaa !5
  %8628 = add nsw i32 %8627, 1
  store i32 %8628, ptr @test_count, align 4, !tbaa !5
  %8629 = load ptr, ptr %144, align 8, !tbaa !9
  %8630 = getelementptr inbounds %struct.s2n_config, ptr %8629, i32 0, i32 7
  %8631 = load ptr, ptr %8630, align 8, !tbaa !63
  %8632 = getelementptr inbounds %struct.s2n_security_policy, ptr %8631, i32 0, i32 1
  %8633 = load ptr, ptr %8632, align 8, !tbaa !31
  %8634 = icmp eq ptr %8633, @cipher_preferences_test_all_tls12
  br i1 %8634, label %8688, label %8635

8635:                                             ; preds = %8626
  br label %8636

8636:                                             ; preds = %8635
  br label %8637

8637:                                             ; preds = %8636
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %8638 = call ptr @__errno_location() #11
  %8639 = load i32, ptr %8638, align 4, !tbaa !5
  store i32 %8639, ptr %171, align 4, !tbaa !5
  %8640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8641 = call i32 @s2n_print_stacktrace(ptr noundef %8640)
  %8642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8643 = trunc i8 %8642 to i1
  br i1 %8643, label %8644, label %8666

8644:                                             ; preds = %8637
  %8645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8646 = call i32 @fileno(ptr noundef %8645) #10
  %8647 = call i32 @isatty(i32 noundef %8646) #10
  %8648 = icmp ne i32 %8647, 0
  br i1 %8648, label %8649, label %8666

8649:                                             ; preds = %8644
  %8650 = load i32, ptr %171, align 4, !tbaa !5
  %8651 = call ptr @__errno_location() #11
  store i32 %8650, ptr %8651, align 4, !tbaa !5
  %8652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8653 = load i32, ptr @test_count, align 4, !tbaa !5
  %8654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8655 = load i32, ptr %8654, align 4, !tbaa !5
  %8656 = call ptr @s2n_strerror(i32 noundef %8655, ptr noundef @.str.4)
  %8657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8658 = load i32, ptr %8657, align 4, !tbaa !5
  %8659 = call ptr @s2n_strerror_debug(i32 noundef %8658, ptr noundef @.str.4)
  %8660 = call ptr @__errno_location() #11
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call ptr @strerror(i32 noundef %8661) #10
  %8663 = call ptr @__errno_location() #11
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8652, ptr noundef @.str.2, i32 noundef %8653, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 491, ptr noundef %8656, ptr noundef %8659, ptr noundef %8662, i32 noundef %8664) #10
  br label %8683

8666:                                             ; preds = %8644, %8637
  %8667 = load i32, ptr %171, align 4, !tbaa !5
  %8668 = call ptr @__errno_location() #11
  store i32 %8667, ptr %8668, align 4, !tbaa !5
  %8669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8670 = load i32, ptr @test_count, align 4, !tbaa !5
  %8671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call ptr @s2n_strerror(i32 noundef %8672, ptr noundef @.str.4)
  %8674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8675 = load i32, ptr %8674, align 4, !tbaa !5
  %8676 = call ptr @s2n_strerror_debug(i32 noundef %8675, ptr noundef @.str.4)
  %8677 = call ptr @__errno_location() #11
  %8678 = load i32, ptr %8677, align 4, !tbaa !5
  %8679 = call ptr @strerror(i32 noundef %8678) #10
  %8680 = call ptr @__errno_location() #11
  %8681 = load i32, ptr %8680, align 4, !tbaa !5
  %8682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8669, ptr noundef @.str.5, i32 noundef %8670, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 491, ptr noundef %8673, ptr noundef %8676, ptr noundef %8679, i32 noundef %8681) #10
  br label %8683

8683:                                             ; preds = %8666, %8649
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

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

8686:                                             ; No predecessors!
  br label %8687

8687:                                             ; preds = %8686
  br label %8688

8688:                                             ; preds = %8687, %8626
  br label %8689

8689:                                             ; preds = %8688
  br label %8690

8690:                                             ; preds = %8689
  br label %8691

8691:                                             ; preds = %8690
  %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 ptr, ptr %144, align 8, !tbaa !9
  %8695 = getelementptr inbounds %struct.s2n_config, ptr %8694, i32 0, i32 7
  %8696 = load ptr, ptr %8695, align 8, !tbaa !63
  %8697 = getelementptr inbounds %struct.s2n_security_policy, ptr %8696, i32 0, i32 2
  %8698 = load ptr, ptr %8697, align 8, !tbaa !20
  %8699 = icmp eq ptr %8698, @kem_preferences_pq_tls_1_0_2021_05
  br i1 %8699, label %8753, label %8700

8700:                                             ; preds = %8691
  br label %8701

8701:                                             ; preds = %8700
  br label %8702

8702:                                             ; preds = %8701
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %8703 = call ptr @__errno_location() #11
  %8704 = load i32, ptr %8703, align 4, !tbaa !5
  store i32 %8704, ptr %172, align 4, !tbaa !5
  %8705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8706 = call i32 @s2n_print_stacktrace(ptr noundef %8705)
  %8707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8708 = trunc i8 %8707 to i1
  br i1 %8708, label %8709, label %8731

8709:                                             ; preds = %8702
  %8710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8711 = call i32 @fileno(ptr noundef %8710) #10
  %8712 = call i32 @isatty(i32 noundef %8711) #10
  %8713 = icmp ne i32 %8712, 0
  br i1 %8713, label %8714, label %8731

8714:                                             ; preds = %8709
  %8715 = load i32, ptr %172, align 4, !tbaa !5
  %8716 = call ptr @__errno_location() #11
  store i32 %8715, ptr %8716, align 4, !tbaa !5
  %8717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8718 = load i32, ptr @test_count, align 4, !tbaa !5
  %8719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8720 = load i32, ptr %8719, align 4, !tbaa !5
  %8721 = call ptr @s2n_strerror(i32 noundef %8720, ptr noundef @.str.4)
  %8722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8723 = load i32, ptr %8722, align 4, !tbaa !5
  %8724 = call ptr @s2n_strerror_debug(i32 noundef %8723, ptr noundef @.str.4)
  %8725 = call ptr @__errno_location() #11
  %8726 = load i32, ptr %8725, align 4, !tbaa !5
  %8727 = call ptr @strerror(i32 noundef %8726) #10
  %8728 = call ptr @__errno_location() #11
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8717, ptr noundef @.str.2, i32 noundef %8718, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 492, ptr noundef %8721, ptr noundef %8724, ptr noundef %8727, i32 noundef %8729) #10
  br label %8748

8731:                                             ; preds = %8709, %8702
  %8732 = load i32, ptr %172, align 4, !tbaa !5
  %8733 = call ptr @__errno_location() #11
  store i32 %8732, ptr %8733, align 4, !tbaa !5
  %8734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8735 = load i32, ptr @test_count, align 4, !tbaa !5
  %8736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8737 = load i32, ptr %8736, align 4, !tbaa !5
  %8738 = call ptr @s2n_strerror(i32 noundef %8737, ptr noundef @.str.4)
  %8739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8740 = load i32, ptr %8739, align 4, !tbaa !5
  %8741 = call ptr @s2n_strerror_debug(i32 noundef %8740, ptr noundef @.str.4)
  %8742 = call ptr @__errno_location() #11
  %8743 = load i32, ptr %8742, align 4, !tbaa !5
  %8744 = call ptr @strerror(i32 noundef %8743) #10
  %8745 = call ptr @__errno_location() #11
  %8746 = load i32, ptr %8745, align 4, !tbaa !5
  %8747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8734, ptr noundef @.str.5, i32 noundef %8735, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 492, ptr noundef %8738, ptr noundef %8741, ptr noundef %8744, i32 noundef %8746) #10
  br label %8748

8748:                                             ; preds = %8731, %8714
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  br label %8749

8749:                                             ; preds = %8748
  br label %8750

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

8751:                                             ; No predecessors!
  br label %8752

8752:                                             ; preds = %8751
  br label %8753

8753:                                             ; preds = %8752, %8691
  br label %8754

8754:                                             ; preds = %8753
  br label %8755

8755:                                             ; preds = %8754
  br label %8756

8756:                                             ; preds = %8755
  %8757 = load i32, ptr @test_count, align 4, !tbaa !5
  %8758 = add nsw i32 %8757, 1
  store i32 %8758, ptr @test_count, align 4, !tbaa !5
  %8759 = load ptr, ptr %144, align 8, !tbaa !9
  %8760 = getelementptr inbounds %struct.s2n_config, ptr %8759, i32 0, i32 7
  %8761 = load ptr, ptr %8760, align 8, !tbaa !63
  %8762 = getelementptr inbounds %struct.s2n_security_policy, ptr %8761, i32 0, i32 3
  %8763 = load ptr, ptr %8762, align 8, !tbaa !38
  %8764 = icmp eq ptr %8763, @s2n_signature_preferences_20201021
  br i1 %8764, label %8818, label %8765

8765:                                             ; preds = %8756
  br label %8766

8766:                                             ; preds = %8765
  br label %8767

8767:                                             ; preds = %8766
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  %8768 = call ptr @__errno_location() #11
  %8769 = load i32, ptr %8768, align 4, !tbaa !5
  store i32 %8769, ptr %173, align 4, !tbaa !5
  %8770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8771 = call i32 @s2n_print_stacktrace(ptr noundef %8770)
  %8772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8773 = trunc i8 %8772 to i1
  br i1 %8773, label %8774, label %8796

8774:                                             ; preds = %8767
  %8775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8776 = call i32 @fileno(ptr noundef %8775) #10
  %8777 = call i32 @isatty(i32 noundef %8776) #10
  %8778 = icmp ne i32 %8777, 0
  br i1 %8778, label %8779, label %8796

8779:                                             ; preds = %8774
  %8780 = load i32, ptr %173, align 4, !tbaa !5
  %8781 = call ptr @__errno_location() #11
  store i32 %8780, ptr %8781, align 4, !tbaa !5
  %8782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8783 = load i32, ptr @test_count, align 4, !tbaa !5
  %8784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8785 = load i32, ptr %8784, align 4, !tbaa !5
  %8786 = call ptr @s2n_strerror(i32 noundef %8785, ptr noundef @.str.4)
  %8787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8788 = load i32, ptr %8787, align 4, !tbaa !5
  %8789 = call ptr @s2n_strerror_debug(i32 noundef %8788, ptr noundef @.str.4)
  %8790 = call ptr @__errno_location() #11
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @strerror(i32 noundef %8791) #10
  %8793 = call ptr @__errno_location() #11
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8782, ptr noundef @.str.2, i32 noundef %8783, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 493, ptr noundef %8786, ptr noundef %8789, ptr noundef %8792, i32 noundef %8794) #10
  br label %8813

8796:                                             ; preds = %8774, %8767
  %8797 = load i32, ptr %173, align 4, !tbaa !5
  %8798 = call ptr @__errno_location() #11
  store i32 %8797, ptr %8798, align 4, !tbaa !5
  %8799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8800 = load i32, ptr @test_count, align 4, !tbaa !5
  %8801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8802 = load i32, ptr %8801, align 4, !tbaa !5
  %8803 = call ptr @s2n_strerror(i32 noundef %8802, ptr noundef @.str.4)
  %8804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8805 = load i32, ptr %8804, align 4, !tbaa !5
  %8806 = call ptr @s2n_strerror_debug(i32 noundef %8805, ptr noundef @.str.4)
  %8807 = call ptr @__errno_location() #11
  %8808 = load i32, ptr %8807, align 4, !tbaa !5
  %8809 = call ptr @strerror(i32 noundef %8808) #10
  %8810 = call ptr @__errno_location() #11
  %8811 = load i32, ptr %8810, align 4, !tbaa !5
  %8812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8799, ptr noundef @.str.5, i32 noundef %8800, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 493, ptr noundef %8803, ptr noundef %8806, ptr noundef %8809, i32 noundef %8811) #10
  br label %8813

8813:                                             ; preds = %8796, %8779
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  br label %8814

8814:                                             ; preds = %8813
  br label %8815

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

8816:                                             ; No predecessors!
  br label %8817

8817:                                             ; preds = %8816
  br label %8818

8818:                                             ; preds = %8817, %8756
  br label %8819

8819:                                             ; preds = %8818
  br label %8820

8820:                                             ; preds = %8819
  br label %8821

8821:                                             ; preds = %8820
  %8822 = load i32, ptr @test_count, align 4, !tbaa !5
  %8823 = add nsw i32 %8822, 1
  store i32 %8823, ptr @test_count, align 4, !tbaa !5
  %8824 = load ptr, ptr %144, align 8, !tbaa !9
  %8825 = getelementptr inbounds %struct.s2n_config, ptr %8824, i32 0, i32 7
  %8826 = load ptr, ptr %8825, align 8, !tbaa !63
  %8827 = getelementptr inbounds %struct.s2n_security_policy, ptr %8826, i32 0, i32 5
  %8828 = load ptr, ptr %8827, align 8, !tbaa !60
  %8829 = icmp eq ptr %8828, @s2n_ecc_preferences_20201021
  br i1 %8829, label %8883, label %8830

8830:                                             ; preds = %8821
  br label %8831

8831:                                             ; preds = %8830
  br label %8832

8832:                                             ; preds = %8831
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #10
  %8833 = call ptr @__errno_location() #11
  %8834 = load i32, ptr %8833, align 4, !tbaa !5
  store i32 %8834, ptr %174, align 4, !tbaa !5
  %8835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8836 = call i32 @s2n_print_stacktrace(ptr noundef %8835)
  %8837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8838 = trunc i8 %8837 to i1
  br i1 %8838, label %8839, label %8861

8839:                                             ; preds = %8832
  %8840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8841 = call i32 @fileno(ptr noundef %8840) #10
  %8842 = call i32 @isatty(i32 noundef %8841) #10
  %8843 = icmp ne i32 %8842, 0
  br i1 %8843, label %8844, label %8861

8844:                                             ; preds = %8839
  %8845 = load i32, ptr %174, align 4, !tbaa !5
  %8846 = call ptr @__errno_location() #11
  store i32 %8845, ptr %8846, align 4, !tbaa !5
  %8847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8848 = load i32, ptr @test_count, align 4, !tbaa !5
  %8849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8850 = load i32, ptr %8849, align 4, !tbaa !5
  %8851 = call ptr @s2n_strerror(i32 noundef %8850, ptr noundef @.str.4)
  %8852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8853 = load i32, ptr %8852, align 4, !tbaa !5
  %8854 = call ptr @s2n_strerror_debug(i32 noundef %8853, ptr noundef @.str.4)
  %8855 = call ptr @__errno_location() #11
  %8856 = load i32, ptr %8855, align 4, !tbaa !5
  %8857 = call ptr @strerror(i32 noundef %8856) #10
  %8858 = call ptr @__errno_location() #11
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8847, ptr noundef @.str.2, i32 noundef %8848, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 494, ptr noundef %8851, ptr noundef %8854, ptr noundef %8857, i32 noundef %8859) #10
  br label %8878

8861:                                             ; preds = %8839, %8832
  %8862 = load i32, ptr %174, align 4, !tbaa !5
  %8863 = call ptr @__errno_location() #11
  store i32 %8862, ptr %8863, align 4, !tbaa !5
  %8864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8865 = load i32, ptr @test_count, align 4, !tbaa !5
  %8866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8867 = load i32, ptr %8866, align 4, !tbaa !5
  %8868 = call ptr @s2n_strerror(i32 noundef %8867, ptr noundef @.str.4)
  %8869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  %8871 = call ptr @s2n_strerror_debug(i32 noundef %8870, ptr noundef @.str.4)
  %8872 = call ptr @__errno_location() #11
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  %8874 = call ptr @strerror(i32 noundef %8873) #10
  %8875 = call ptr @__errno_location() #11
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8864, ptr noundef @.str.5, i32 noundef %8865, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 494, ptr noundef %8868, ptr noundef %8871, ptr noundef %8874, i32 noundef %8876) #10
  br label %8878

8878:                                             ; preds = %8861, %8844
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  br label %8879

8879:                                             ; preds = %8878
  br label %8880

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

8881:                                             ; No predecessors!
  br label %8882

8882:                                             ; preds = %8881
  br label %8883

8883:                                             ; preds = %8882, %8821
  br label %8884

8884:                                             ; preds = %8883
  br label %8885

8885:                                             ; preds = %8884
  br label %8886

8886:                                             ; preds = %8885
  %8887 = load i32, ptr @test_count, align 4, !tbaa !5
  %8888 = add nsw i32 %8887, 1
  store i32 %8888, ptr @test_count, align 4, !tbaa !5
  %8889 = load ptr, ptr %144, align 8, !tbaa !9
  %8890 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %8889, ptr noundef @.str.111)
  %8891 = icmp eq i32 %8890, -1
  br i1 %8891, label %8892, label %8945

8892:                                             ; preds = %8886
  br label %8893

8893:                                             ; preds = %8892
  br label %8894

8894:                                             ; preds = %8893
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %8895 = call ptr @__errno_location() #11
  %8896 = load i32, ptr %8895, align 4, !tbaa !5
  store i32 %8896, ptr %175, align 4, !tbaa !5
  %8897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8898 = call i32 @s2n_print_stacktrace(ptr noundef %8897)
  %8899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8900 = trunc i8 %8899 to i1
  br i1 %8900, label %8901, label %8923

8901:                                             ; preds = %8894
  %8902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8903 = call i32 @fileno(ptr noundef %8902) #10
  %8904 = call i32 @isatty(i32 noundef %8903) #10
  %8905 = icmp ne i32 %8904, 0
  br i1 %8905, label %8906, label %8923

8906:                                             ; preds = %8901
  %8907 = load i32, ptr %175, align 4, !tbaa !5
  %8908 = call ptr @__errno_location() #11
  store i32 %8907, ptr %8908, align 4, !tbaa !5
  %8909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8910 = load i32, ptr @test_count, align 4, !tbaa !5
  %8911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8912 = load i32, ptr %8911, align 4, !tbaa !5
  %8913 = call ptr @s2n_strerror(i32 noundef %8912, ptr noundef @.str.4)
  %8914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8915 = load i32, ptr %8914, align 4, !tbaa !5
  %8916 = call ptr @s2n_strerror_debug(i32 noundef %8915, ptr noundef @.str.4)
  %8917 = call ptr @__errno_location() #11
  %8918 = load i32, ptr %8917, align 4, !tbaa !5
  %8919 = call ptr @strerror(i32 noundef %8918) #10
  %8920 = call ptr @__errno_location() #11
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  %8922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8909, ptr noundef @.str.2, i32 noundef %8910, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 496, ptr noundef %8913, ptr noundef %8916, ptr noundef %8919, i32 noundef %8921) #10
  br label %8940

8923:                                             ; preds = %8901, %8894
  %8924 = load i32, ptr %175, align 4, !tbaa !5
  %8925 = call ptr @__errno_location() #11
  store i32 %8924, ptr %8925, align 4, !tbaa !5
  %8926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8927 = load i32, ptr @test_count, align 4, !tbaa !5
  %8928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8929 = load i32, ptr %8928, align 4, !tbaa !5
  %8930 = call ptr @s2n_strerror(i32 noundef %8929, ptr noundef @.str.4)
  %8931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8932 = load i32, ptr %8931, align 4, !tbaa !5
  %8933 = call ptr @s2n_strerror_debug(i32 noundef %8932, ptr noundef @.str.4)
  %8934 = call ptr @__errno_location() #11
  %8935 = load i32, ptr %8934, align 4, !tbaa !5
  %8936 = call ptr @strerror(i32 noundef %8935) #10
  %8937 = call ptr @__errno_location() #11
  %8938 = load i32, ptr %8937, align 4, !tbaa !5
  %8939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8926, ptr noundef @.str.5, i32 noundef %8927, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 496, ptr noundef %8930, ptr noundef %8933, ptr noundef %8936, i32 noundef %8938) #10
  br label %8940

8940:                                             ; preds = %8923, %8906
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %8941

8941:                                             ; preds = %8940
  br label %8942

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

8943:                                             ; No predecessors!
  br label %8944

8944:                                             ; preds = %8943
  br label %8945

8945:                                             ; preds = %8944, %8886
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  br label %8948

8948:                                             ; preds = %8947
  %8949 = load i32, ptr @test_count, align 4, !tbaa !5
  %8950 = add nsw i32 %8949, 1
  store i32 %8950, ptr @test_count, align 4, !tbaa !5
  %8951 = load ptr, ptr %144, align 8, !tbaa !9
  %8952 = getelementptr inbounds %struct.s2n_config, ptr %8951, i32 0, i32 7
  %8953 = load ptr, ptr %8952, align 8, !tbaa !63
  %8954 = icmp eq ptr %8953, @security_policy_aws_crt_sdk_ssl_v3
  br i1 %8954, label %9008, label %8955

8955:                                             ; preds = %8948
  br label %8956

8956:                                             ; preds = %8955
  br label %8957

8957:                                             ; preds = %8956
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %8958 = call ptr @__errno_location() #11
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  store i32 %8959, ptr %176, align 4, !tbaa !5
  %8960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8961 = call i32 @s2n_print_stacktrace(ptr noundef %8960)
  %8962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8963 = trunc i8 %8962 to i1
  br i1 %8963, label %8964, label %8986

8964:                                             ; preds = %8957
  %8965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8966 = call i32 @fileno(ptr noundef %8965) #10
  %8967 = call i32 @isatty(i32 noundef %8966) #10
  %8968 = icmp ne i32 %8967, 0
  br i1 %8968, label %8969, label %8986

8969:                                             ; preds = %8964
  %8970 = load i32, ptr %176, align 4, !tbaa !5
  %8971 = call ptr @__errno_location() #11
  store i32 %8970, ptr %8971, align 4, !tbaa !5
  %8972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8973 = load i32, ptr @test_count, align 4, !tbaa !5
  %8974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8975 = load i32, ptr %8974, align 4, !tbaa !5
  %8976 = call ptr @s2n_strerror(i32 noundef %8975, ptr noundef @.str.4)
  %8977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8978 = load i32, ptr %8977, align 4, !tbaa !5
  %8979 = call ptr @s2n_strerror_debug(i32 noundef %8978, ptr noundef @.str.4)
  %8980 = call ptr @__errno_location() #11
  %8981 = load i32, ptr %8980, align 4, !tbaa !5
  %8982 = call ptr @strerror(i32 noundef %8981) #10
  %8983 = call ptr @__errno_location() #11
  %8984 = load i32, ptr %8983, align 4, !tbaa !5
  %8985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8972, ptr noundef @.str.2, i32 noundef %8973, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 497, ptr noundef %8976, ptr noundef %8979, ptr noundef %8982, i32 noundef %8984) #10
  br label %9003

8986:                                             ; preds = %8964, %8957
  %8987 = load i32, ptr %176, align 4, !tbaa !5
  %8988 = call ptr @__errno_location() #11
  store i32 %8987, ptr %8988, align 4, !tbaa !5
  %8989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8990 = load i32, ptr @test_count, align 4, !tbaa !5
  %8991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8992 = load i32, ptr %8991, align 4, !tbaa !5
  %8993 = call ptr @s2n_strerror(i32 noundef %8992, ptr noundef @.str.4)
  %8994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8995 = load i32, ptr %8994, align 4, !tbaa !5
  %8996 = call ptr @s2n_strerror_debug(i32 noundef %8995, ptr noundef @.str.4)
  %8997 = call ptr @__errno_location() #11
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  %8999 = call ptr @strerror(i32 noundef %8998) #10
  %9000 = call ptr @__errno_location() #11
  %9001 = load i32, ptr %9000, align 4, !tbaa !5
  %9002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8989, ptr noundef @.str.5, i32 noundef %8990, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 497, ptr noundef %8993, ptr noundef %8996, ptr noundef %8999, i32 noundef %9001) #10
  br label %9003

9003:                                             ; preds = %8986, %8969
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %9004

9004:                                             ; preds = %9003
  br label %9005

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

9006:                                             ; No predecessors!
  br label %9007

9007:                                             ; preds = %9006
  br label %9008

9008:                                             ; preds = %9007, %8948
  br label %9009

9009:                                             ; preds = %9008
  br label %9010

9010:                                             ; preds = %9009
  br label %9011

9011:                                             ; preds = %9010
  %9012 = load i32, ptr @test_count, align 4, !tbaa !5
  %9013 = add nsw i32 %9012, 1
  store i32 %9013, ptr @test_count, align 4, !tbaa !5
  %9014 = load ptr, ptr %144, align 8, !tbaa !9
  %9015 = getelementptr inbounds %struct.s2n_config, ptr %9014, i32 0, i32 7
  %9016 = load ptr, ptr %9015, align 8, !tbaa !63
  %9017 = getelementptr inbounds %struct.s2n_security_policy, ptr %9016, i32 0, i32 1
  %9018 = load ptr, ptr %9017, align 8, !tbaa !31
  %9019 = icmp eq ptr %9018, @cipher_preferences_aws_crt_sdk_ssl_v3
  br i1 %9019, label %9073, label %9020

9020:                                             ; preds = %9011
  br label %9021

9021:                                             ; preds = %9020
  br label %9022

9022:                                             ; preds = %9021
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #10
  %9023 = call ptr @__errno_location() #11
  %9024 = load i32, ptr %9023, align 4, !tbaa !5
  store i32 %9024, ptr %177, align 4, !tbaa !5
  %9025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9026 = call i32 @s2n_print_stacktrace(ptr noundef %9025)
  %9027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9028 = trunc i8 %9027 to i1
  br i1 %9028, label %9029, label %9051

9029:                                             ; preds = %9022
  %9030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9031 = call i32 @fileno(ptr noundef %9030) #10
  %9032 = call i32 @isatty(i32 noundef %9031) #10
  %9033 = icmp ne i32 %9032, 0
  br i1 %9033, label %9034, label %9051

9034:                                             ; preds = %9029
  %9035 = load i32, ptr %177, align 4, !tbaa !5
  %9036 = call ptr @__errno_location() #11
  store i32 %9035, ptr %9036, align 4, !tbaa !5
  %9037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9038 = load i32, ptr @test_count, align 4, !tbaa !5
  %9039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call ptr @s2n_strerror(i32 noundef %9040, ptr noundef @.str.4)
  %9042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call ptr @s2n_strerror_debug(i32 noundef %9043, ptr noundef @.str.4)
  %9045 = call ptr @__errno_location() #11
  %9046 = load i32, ptr %9045, align 4, !tbaa !5
  %9047 = call ptr @strerror(i32 noundef %9046) #10
  %9048 = call ptr @__errno_location() #11
  %9049 = load i32, ptr %9048, align 4, !tbaa !5
  %9050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9037, ptr noundef @.str.2, i32 noundef %9038, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 498, ptr noundef %9041, ptr noundef %9044, ptr noundef %9047, i32 noundef %9049) #10
  br label %9068

9051:                                             ; preds = %9029, %9022
  %9052 = load i32, ptr %177, align 4, !tbaa !5
  %9053 = call ptr @__errno_location() #11
  store i32 %9052, ptr %9053, align 4, !tbaa !5
  %9054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9055 = load i32, ptr @test_count, align 4, !tbaa !5
  %9056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror(i32 noundef %9057, ptr noundef @.str.4)
  %9059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @s2n_strerror_debug(i32 noundef %9060, ptr noundef @.str.4)
  %9062 = call ptr @__errno_location() #11
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call ptr @strerror(i32 noundef %9063) #10
  %9065 = call ptr @__errno_location() #11
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  %9067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9054, ptr noundef @.str.5, i32 noundef %9055, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 498, ptr noundef %9058, ptr noundef %9061, ptr noundef %9064, i32 noundef %9066) #10
  br label %9068

9068:                                             ; preds = %9051, %9034
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #10
  br label %9069

9069:                                             ; preds = %9068
  br label %9070

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

9071:                                             ; No predecessors!
  br label %9072

9072:                                             ; preds = %9071
  br label %9073

9073:                                             ; preds = %9072, %9011
  br label %9074

9074:                                             ; preds = %9073
  br label %9075

9075:                                             ; preds = %9074
  br label %9076

9076:                                             ; preds = %9075
  %9077 = load i32, ptr @test_count, align 4, !tbaa !5
  %9078 = add nsw i32 %9077, 1
  store i32 %9078, ptr @test_count, align 4, !tbaa !5
  %9079 = load ptr, ptr %144, align 8, !tbaa !9
  %9080 = getelementptr inbounds %struct.s2n_config, ptr %9079, i32 0, i32 7
  %9081 = load ptr, ptr %9080, align 8, !tbaa !63
  %9082 = getelementptr inbounds %struct.s2n_security_policy, ptr %9081, i32 0, i32 2
  %9083 = load ptr, ptr %9082, align 8, !tbaa !20
  %9084 = icmp eq ptr %9083, @kem_preferences_null
  br i1 %9084, label %9138, label %9085

9085:                                             ; preds = %9076
  br label %9086

9086:                                             ; preds = %9085
  br label %9087

9087:                                             ; preds = %9086
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %9088 = call ptr @__errno_location() #11
  %9089 = load i32, ptr %9088, align 4, !tbaa !5
  store i32 %9089, ptr %178, align 4, !tbaa !5
  %9090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9091 = call i32 @s2n_print_stacktrace(ptr noundef %9090)
  %9092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9093 = trunc i8 %9092 to i1
  br i1 %9093, label %9094, label %9116

9094:                                             ; preds = %9087
  %9095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9096 = call i32 @fileno(ptr noundef %9095) #10
  %9097 = call i32 @isatty(i32 noundef %9096) #10
  %9098 = icmp ne i32 %9097, 0
  br i1 %9098, label %9099, label %9116

9099:                                             ; preds = %9094
  %9100 = load i32, ptr %178, align 4, !tbaa !5
  %9101 = call ptr @__errno_location() #11
  store i32 %9100, ptr %9101, align 4, !tbaa !5
  %9102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9103 = load i32, ptr @test_count, align 4, !tbaa !5
  %9104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9105 = load i32, ptr %9104, align 4, !tbaa !5
  %9106 = call ptr @s2n_strerror(i32 noundef %9105, ptr noundef @.str.4)
  %9107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  %9109 = call ptr @s2n_strerror_debug(i32 noundef %9108, ptr noundef @.str.4)
  %9110 = call ptr @__errno_location() #11
  %9111 = load i32, ptr %9110, align 4, !tbaa !5
  %9112 = call ptr @strerror(i32 noundef %9111) #10
  %9113 = call ptr @__errno_location() #11
  %9114 = load i32, ptr %9113, align 4, !tbaa !5
  %9115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9102, ptr noundef @.str.2, i32 noundef %9103, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 499, ptr noundef %9106, ptr noundef %9109, ptr noundef %9112, i32 noundef %9114) #10
  br label %9133

9116:                                             ; preds = %9094, %9087
  %9117 = load i32, ptr %178, align 4, !tbaa !5
  %9118 = call ptr @__errno_location() #11
  store i32 %9117, ptr %9118, align 4, !tbaa !5
  %9119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9120 = load i32, ptr @test_count, align 4, !tbaa !5
  %9121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9122 = load i32, ptr %9121, align 4, !tbaa !5
  %9123 = call ptr @s2n_strerror(i32 noundef %9122, ptr noundef @.str.4)
  %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_debug(i32 noundef %9125, ptr noundef @.str.4)
  %9127 = call ptr @__errno_location() #11
  %9128 = load i32, ptr %9127, align 4, !tbaa !5
  %9129 = call ptr @strerror(i32 noundef %9128) #10
  %9130 = call ptr @__errno_location() #11
  %9131 = load i32, ptr %9130, align 4, !tbaa !5
  %9132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9119, ptr noundef @.str.5, i32 noundef %9120, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 499, ptr noundef %9123, ptr noundef %9126, ptr noundef %9129, i32 noundef %9131) #10
  br label %9133

9133:                                             ; preds = %9116, %9099
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %9134

9134:                                             ; preds = %9133
  br label %9135

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

9136:                                             ; No predecessors!
  br label %9137

9137:                                             ; preds = %9136
  br label %9138

9138:                                             ; preds = %9137, %9076
  br label %9139

9139:                                             ; preds = %9138
  br label %9140

9140:                                             ; preds = %9139
  br label %9141

9141:                                             ; preds = %9140
  %9142 = load i32, ptr @test_count, align 4, !tbaa !5
  %9143 = add nsw i32 %9142, 1
  store i32 %9143, ptr @test_count, align 4, !tbaa !5
  %9144 = load ptr, ptr %144, align 8, !tbaa !9
  %9145 = getelementptr inbounds %struct.s2n_config, ptr %9144, i32 0, i32 7
  %9146 = load ptr, ptr %9145, align 8, !tbaa !63
  %9147 = getelementptr inbounds %struct.s2n_security_policy, ptr %9146, i32 0, i32 3
  %9148 = load ptr, ptr %9147, align 8, !tbaa !38
  %9149 = icmp eq ptr %9148, @s2n_signature_preferences_20200207
  br i1 %9149, label %9203, label %9150

9150:                                             ; preds = %9141
  br label %9151

9151:                                             ; preds = %9150
  br label %9152

9152:                                             ; preds = %9151
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %9153 = call ptr @__errno_location() #11
  %9154 = load i32, ptr %9153, align 4, !tbaa !5
  store i32 %9154, ptr %179, align 4, !tbaa !5
  %9155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9156 = call i32 @s2n_print_stacktrace(ptr noundef %9155)
  %9157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9158 = trunc i8 %9157 to i1
  br i1 %9158, label %9159, label %9181

9159:                                             ; preds = %9152
  %9160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9161 = call i32 @fileno(ptr noundef %9160) #10
  %9162 = call i32 @isatty(i32 noundef %9161) #10
  %9163 = icmp ne i32 %9162, 0
  br i1 %9163, label %9164, label %9181

9164:                                             ; preds = %9159
  %9165 = load i32, ptr %179, align 4, !tbaa !5
  %9166 = call ptr @__errno_location() #11
  store i32 %9165, ptr %9166, align 4, !tbaa !5
  %9167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9168 = load i32, ptr @test_count, align 4, !tbaa !5
  %9169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9170 = load i32, ptr %9169, align 4, !tbaa !5
  %9171 = call ptr @s2n_strerror(i32 noundef %9170, ptr noundef @.str.4)
  %9172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9173 = load i32, ptr %9172, align 4, !tbaa !5
  %9174 = call ptr @s2n_strerror_debug(i32 noundef %9173, ptr noundef @.str.4)
  %9175 = call ptr @__errno_location() #11
  %9176 = load i32, ptr %9175, align 4, !tbaa !5
  %9177 = call ptr @strerror(i32 noundef %9176) #10
  %9178 = call ptr @__errno_location() #11
  %9179 = load i32, ptr %9178, align 4, !tbaa !5
  %9180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9167, ptr noundef @.str.2, i32 noundef %9168, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 500, ptr noundef %9171, ptr noundef %9174, ptr noundef %9177, i32 noundef %9179) #10
  br label %9198

9181:                                             ; preds = %9159, %9152
  %9182 = load i32, ptr %179, align 4, !tbaa !5
  %9183 = call ptr @__errno_location() #11
  store i32 %9182, ptr %9183, align 4, !tbaa !5
  %9184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9185 = load i32, ptr @test_count, align 4, !tbaa !5
  %9186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9187 = load i32, ptr %9186, align 4, !tbaa !5
  %9188 = call ptr @s2n_strerror(i32 noundef %9187, ptr noundef @.str.4)
  %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_debug(i32 noundef %9190, ptr noundef @.str.4)
  %9192 = call ptr @__errno_location() #11
  %9193 = load i32, ptr %9192, align 4, !tbaa !5
  %9194 = call ptr @strerror(i32 noundef %9193) #10
  %9195 = call ptr @__errno_location() #11
  %9196 = load i32, ptr %9195, align 4, !tbaa !5
  %9197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9184, ptr noundef @.str.5, i32 noundef %9185, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 500, ptr noundef %9188, ptr noundef %9191, ptr noundef %9194, i32 noundef %9196) #10
  br label %9198

9198:                                             ; preds = %9181, %9164
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  br label %9199

9199:                                             ; preds = %9198
  br label %9200

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

9201:                                             ; No predecessors!
  br label %9202

9202:                                             ; preds = %9201
  br label %9203

9203:                                             ; preds = %9202, %9141
  br label %9204

9204:                                             ; preds = %9203
  br label %9205

9205:                                             ; preds = %9204
  br label %9206

9206:                                             ; preds = %9205
  %9207 = load i32, ptr @test_count, align 4, !tbaa !5
  %9208 = add nsw i32 %9207, 1
  store i32 %9208, ptr @test_count, align 4, !tbaa !5
  %9209 = load ptr, ptr %144, align 8, !tbaa !9
  %9210 = getelementptr inbounds %struct.s2n_config, ptr %9209, i32 0, i32 7
  %9211 = load ptr, ptr %9210, align 8, !tbaa !63
  %9212 = getelementptr inbounds %struct.s2n_security_policy, ptr %9211, i32 0, i32 5
  %9213 = load ptr, ptr %9212, align 8, !tbaa !60
  %9214 = icmp eq ptr %9213, @s2n_ecc_preferences_20200310
  br i1 %9214, label %9268, label %9215

9215:                                             ; preds = %9206
  br label %9216

9216:                                             ; preds = %9215
  br label %9217

9217:                                             ; preds = %9216
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %9218 = call ptr @__errno_location() #11
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  store i32 %9219, ptr %180, align 4, !tbaa !5
  %9220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9221 = call i32 @s2n_print_stacktrace(ptr noundef %9220)
  %9222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9223 = trunc i8 %9222 to i1
  br i1 %9223, label %9224, label %9246

9224:                                             ; preds = %9217
  %9225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9226 = call i32 @fileno(ptr noundef %9225) #10
  %9227 = call i32 @isatty(i32 noundef %9226) #10
  %9228 = icmp ne i32 %9227, 0
  br i1 %9228, label %9229, label %9246

9229:                                             ; preds = %9224
  %9230 = load i32, ptr %180, align 4, !tbaa !5
  %9231 = call ptr @__errno_location() #11
  store i32 %9230, ptr %9231, align 4, !tbaa !5
  %9232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9233 = load i32, ptr @test_count, align 4, !tbaa !5
  %9234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9235 = load i32, ptr %9234, align 4, !tbaa !5
  %9236 = call ptr @s2n_strerror(i32 noundef %9235, ptr noundef @.str.4)
  %9237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9238 = load i32, ptr %9237, align 4, !tbaa !5
  %9239 = call ptr @s2n_strerror_debug(i32 noundef %9238, ptr noundef @.str.4)
  %9240 = call ptr @__errno_location() #11
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @strerror(i32 noundef %9241) #10
  %9243 = call ptr @__errno_location() #11
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9232, ptr noundef @.str.2, i32 noundef %9233, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 501, ptr noundef %9236, ptr noundef %9239, ptr noundef %9242, i32 noundef %9244) #10
  br label %9263

9246:                                             ; preds = %9224, %9217
  %9247 = load i32, ptr %180, align 4, !tbaa !5
  %9248 = call ptr @__errno_location() #11
  store i32 %9247, ptr %9248, align 4, !tbaa !5
  %9249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9250 = load i32, ptr @test_count, align 4, !tbaa !5
  %9251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9252 = load i32, ptr %9251, align 4, !tbaa !5
  %9253 = call ptr @s2n_strerror(i32 noundef %9252, ptr noundef @.str.4)
  %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_debug(i32 noundef %9255, ptr noundef @.str.4)
  %9257 = call ptr @__errno_location() #11
  %9258 = load i32, ptr %9257, align 4, !tbaa !5
  %9259 = call ptr @strerror(i32 noundef %9258) #10
  %9260 = call ptr @__errno_location() #11
  %9261 = load i32, ptr %9260, align 4, !tbaa !5
  %9262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9249, ptr noundef @.str.5, i32 noundef %9250, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 501, ptr noundef %9253, ptr noundef %9256, ptr noundef %9259, i32 noundef %9261) #10
  br label %9263

9263:                                             ; preds = %9246, %9229
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %9264

9264:                                             ; preds = %9263
  br label %9265

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

9266:                                             ; No predecessors!
  br label %9267

9267:                                             ; preds = %9266
  br label %9268

9268:                                             ; preds = %9267, %9206
  br label %9269

9269:                                             ; preds = %9268
  br label %9270

9270:                                             ; preds = %9269
  br label %9271

9271:                                             ; preds = %9270
  %9272 = load i32, ptr @test_count, align 4, !tbaa !5
  %9273 = add nsw i32 %9272, 1
  store i32 %9273, ptr @test_count, align 4, !tbaa !5
  %9274 = load ptr, ptr %144, align 8, !tbaa !9
  %9275 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %9274, ptr noundef @.str.115)
  %9276 = icmp eq i32 %9275, -1
  br i1 %9276, label %9277, label %9330

9277:                                             ; preds = %9271
  br label %9278

9278:                                             ; preds = %9277
  br label %9279

9279:                                             ; preds = %9278
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #10
  %9280 = call ptr @__errno_location() #11
  %9281 = load i32, ptr %9280, align 4, !tbaa !5
  store i32 %9281, ptr %181, align 4, !tbaa !5
  %9282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9283 = call i32 @s2n_print_stacktrace(ptr noundef %9282)
  %9284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9285 = trunc i8 %9284 to i1
  br i1 %9285, label %9286, label %9308

9286:                                             ; preds = %9279
  %9287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9288 = call i32 @fileno(ptr noundef %9287) #10
  %9289 = call i32 @isatty(i32 noundef %9288) #10
  %9290 = icmp ne i32 %9289, 0
  br i1 %9290, label %9291, label %9308

9291:                                             ; preds = %9286
  %9292 = load i32, ptr %181, align 4, !tbaa !5
  %9293 = call ptr @__errno_location() #11
  store i32 %9292, ptr %9293, align 4, !tbaa !5
  %9294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9295 = load i32, ptr @test_count, align 4, !tbaa !5
  %9296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9297 = load i32, ptr %9296, align 4, !tbaa !5
  %9298 = call ptr @s2n_strerror(i32 noundef %9297, ptr noundef @.str.4)
  %9299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9300 = load i32, ptr %9299, align 4, !tbaa !5
  %9301 = call ptr @s2n_strerror_debug(i32 noundef %9300, ptr noundef @.str.4)
  %9302 = call ptr @__errno_location() #11
  %9303 = load i32, ptr %9302, align 4, !tbaa !5
  %9304 = call ptr @strerror(i32 noundef %9303) #10
  %9305 = call ptr @__errno_location() #11
  %9306 = load i32, ptr %9305, align 4, !tbaa !5
  %9307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9294, ptr noundef @.str.2, i32 noundef %9295, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 503, ptr noundef %9298, ptr noundef %9301, ptr noundef %9304, i32 noundef %9306) #10
  br label %9325

9308:                                             ; preds = %9286, %9279
  %9309 = load i32, ptr %181, align 4, !tbaa !5
  %9310 = call ptr @__errno_location() #11
  store i32 %9309, ptr %9310, align 4, !tbaa !5
  %9311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9312 = load i32, ptr @test_count, align 4, !tbaa !5
  %9313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9314 = load i32, ptr %9313, align 4, !tbaa !5
  %9315 = call ptr @s2n_strerror(i32 noundef %9314, ptr noundef @.str.4)
  %9316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9317 = load i32, ptr %9316, align 4, !tbaa !5
  %9318 = call ptr @s2n_strerror_debug(i32 noundef %9317, ptr noundef @.str.4)
  %9319 = call ptr @__errno_location() #11
  %9320 = load i32, ptr %9319, align 4, !tbaa !5
  %9321 = call ptr @strerror(i32 noundef %9320) #10
  %9322 = call ptr @__errno_location() #11
  %9323 = load i32, ptr %9322, align 4, !tbaa !5
  %9324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9311, ptr noundef @.str.5, i32 noundef %9312, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 503, ptr noundef %9315, ptr noundef %9318, ptr noundef %9321, i32 noundef %9323) #10
  br label %9325

9325:                                             ; preds = %9308, %9291
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #10
  br label %9326

9326:                                             ; preds = %9325
  br label %9327

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

9328:                                             ; No predecessors!
  br label %9329

9329:                                             ; preds = %9328
  br label %9330

9330:                                             ; preds = %9329, %9271
  br label %9331

9331:                                             ; preds = %9330
  br label %9332

9332:                                             ; preds = %9331
  br label %9333

9333:                                             ; preds = %9332
  %9334 = load i32, ptr @test_count, align 4, !tbaa !5
  %9335 = add nsw i32 %9334, 1
  store i32 %9335, ptr @test_count, align 4, !tbaa !5
  %9336 = load ptr, ptr %144, align 8, !tbaa !9
  %9337 = getelementptr inbounds %struct.s2n_config, ptr %9336, i32 0, i32 7
  %9338 = load ptr, ptr %9337, align 8, !tbaa !63
  %9339 = icmp eq ptr %9338, @security_policy_aws_crt_sdk_tls_10
  br i1 %9339, label %9393, label %9340

9340:                                             ; preds = %9333
  br label %9341

9341:                                             ; preds = %9340
  br label %9342

9342:                                             ; preds = %9341
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #10
  %9343 = call ptr @__errno_location() #11
  %9344 = load i32, ptr %9343, align 4, !tbaa !5
  store i32 %9344, ptr %182, align 4, !tbaa !5
  %9345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9346 = call i32 @s2n_print_stacktrace(ptr noundef %9345)
  %9347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9348 = trunc i8 %9347 to i1
  br i1 %9348, label %9349, label %9371

9349:                                             ; preds = %9342
  %9350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9351 = call i32 @fileno(ptr noundef %9350) #10
  %9352 = call i32 @isatty(i32 noundef %9351) #10
  %9353 = icmp ne i32 %9352, 0
  br i1 %9353, label %9354, label %9371

9354:                                             ; preds = %9349
  %9355 = load i32, ptr %182, align 4, !tbaa !5
  %9356 = call ptr @__errno_location() #11
  store i32 %9355, ptr %9356, align 4, !tbaa !5
  %9357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9358 = load i32, ptr @test_count, align 4, !tbaa !5
  %9359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9360 = load i32, ptr %9359, align 4, !tbaa !5
  %9361 = call ptr @s2n_strerror(i32 noundef %9360, ptr noundef @.str.4)
  %9362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9363 = load i32, ptr %9362, align 4, !tbaa !5
  %9364 = call ptr @s2n_strerror_debug(i32 noundef %9363, ptr noundef @.str.4)
  %9365 = call ptr @__errno_location() #11
  %9366 = load i32, ptr %9365, align 4, !tbaa !5
  %9367 = call ptr @strerror(i32 noundef %9366) #10
  %9368 = call ptr @__errno_location() #11
  %9369 = load i32, ptr %9368, align 4, !tbaa !5
  %9370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9357, ptr noundef @.str.2, i32 noundef %9358, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 504, ptr noundef %9361, ptr noundef %9364, ptr noundef %9367, i32 noundef %9369) #10
  br label %9388

9371:                                             ; preds = %9349, %9342
  %9372 = load i32, ptr %182, align 4, !tbaa !5
  %9373 = call ptr @__errno_location() #11
  store i32 %9372, ptr %9373, align 4, !tbaa !5
  %9374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9375 = load i32, ptr @test_count, align 4, !tbaa !5
  %9376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9377 = load i32, ptr %9376, align 4, !tbaa !5
  %9378 = call ptr @s2n_strerror(i32 noundef %9377, ptr noundef @.str.4)
  %9379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9380 = load i32, ptr %9379, align 4, !tbaa !5
  %9381 = call ptr @s2n_strerror_debug(i32 noundef %9380, ptr noundef @.str.4)
  %9382 = call ptr @__errno_location() #11
  %9383 = load i32, ptr %9382, align 4, !tbaa !5
  %9384 = call ptr @strerror(i32 noundef %9383) #10
  %9385 = call ptr @__errno_location() #11
  %9386 = load i32, ptr %9385, align 4, !tbaa !5
  %9387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9374, ptr noundef @.str.5, i32 noundef %9375, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 504, ptr noundef %9378, ptr noundef %9381, ptr noundef %9384, i32 noundef %9386) #10
  br label %9388

9388:                                             ; preds = %9371, %9354
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  br label %9389

9389:                                             ; preds = %9388
  br label %9390

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

9391:                                             ; No predecessors!
  br label %9392

9392:                                             ; preds = %9391
  br label %9393

9393:                                             ; preds = %9392, %9333
  br label %9394

9394:                                             ; preds = %9393
  br label %9395

9395:                                             ; preds = %9394
  br label %9396

9396:                                             ; preds = %9395
  %9397 = load i32, ptr @test_count, align 4, !tbaa !5
  %9398 = add nsw i32 %9397, 1
  store i32 %9398, ptr @test_count, align 4, !tbaa !5
  %9399 = load ptr, ptr %144, align 8, !tbaa !9
  %9400 = getelementptr inbounds %struct.s2n_config, ptr %9399, i32 0, i32 7
  %9401 = load ptr, ptr %9400, align 8, !tbaa !63
  %9402 = getelementptr inbounds %struct.s2n_security_policy, ptr %9401, i32 0, i32 1
  %9403 = load ptr, ptr %9402, align 8, !tbaa !31
  %9404 = icmp eq ptr %9403, @cipher_preferences_aws_crt_sdk_default
  br i1 %9404, label %9458, label %9405

9405:                                             ; preds = %9396
  br label %9406

9406:                                             ; preds = %9405
  br label %9407

9407:                                             ; preds = %9406
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %9408 = call ptr @__errno_location() #11
  %9409 = load i32, ptr %9408, align 4, !tbaa !5
  store i32 %9409, ptr %183, align 4, !tbaa !5
  %9410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9411 = call i32 @s2n_print_stacktrace(ptr noundef %9410)
  %9412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9413 = trunc i8 %9412 to i1
  br i1 %9413, label %9414, label %9436

9414:                                             ; preds = %9407
  %9415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9416 = call i32 @fileno(ptr noundef %9415) #10
  %9417 = call i32 @isatty(i32 noundef %9416) #10
  %9418 = icmp ne i32 %9417, 0
  br i1 %9418, label %9419, label %9436

9419:                                             ; preds = %9414
  %9420 = load i32, ptr %183, align 4, !tbaa !5
  %9421 = call ptr @__errno_location() #11
  store i32 %9420, ptr %9421, align 4, !tbaa !5
  %9422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9423 = load i32, ptr @test_count, align 4, !tbaa !5
  %9424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call ptr @s2n_strerror(i32 noundef %9425, ptr noundef @.str.4)
  %9427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9428 = load i32, ptr %9427, align 4, !tbaa !5
  %9429 = call ptr @s2n_strerror_debug(i32 noundef %9428, ptr noundef @.str.4)
  %9430 = call ptr @__errno_location() #11
  %9431 = load i32, ptr %9430, align 4, !tbaa !5
  %9432 = call ptr @strerror(i32 noundef %9431) #10
  %9433 = call ptr @__errno_location() #11
  %9434 = load i32, ptr %9433, align 4, !tbaa !5
  %9435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9422, ptr noundef @.str.2, i32 noundef %9423, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 505, ptr noundef %9426, ptr noundef %9429, ptr noundef %9432, i32 noundef %9434) #10
  br label %9453

9436:                                             ; preds = %9414, %9407
  %9437 = load i32, ptr %183, align 4, !tbaa !5
  %9438 = call ptr @__errno_location() #11
  store i32 %9437, ptr %9438, align 4, !tbaa !5
  %9439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9440 = load i32, ptr @test_count, align 4, !tbaa !5
  %9441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9442 = load i32, ptr %9441, align 4, !tbaa !5
  %9443 = call ptr @s2n_strerror(i32 noundef %9442, ptr noundef @.str.4)
  %9444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call ptr @s2n_strerror_debug(i32 noundef %9445, ptr noundef @.str.4)
  %9447 = call ptr @__errno_location() #11
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  %9449 = call ptr @strerror(i32 noundef %9448) #10
  %9450 = call ptr @__errno_location() #11
  %9451 = load i32, ptr %9450, align 4, !tbaa !5
  %9452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9439, ptr noundef @.str.5, i32 noundef %9440, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 505, ptr noundef %9443, ptr noundef %9446, ptr noundef %9449, i32 noundef %9451) #10
  br label %9453

9453:                                             ; preds = %9436, %9419
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %9454

9454:                                             ; preds = %9453
  br label %9455

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

9456:                                             ; No predecessors!
  br label %9457

9457:                                             ; preds = %9456
  br label %9458

9458:                                             ; preds = %9457, %9396
  br label %9459

9459:                                             ; preds = %9458
  br label %9460

9460:                                             ; preds = %9459
  br label %9461

9461:                                             ; preds = %9460
  %9462 = load i32, ptr @test_count, align 4, !tbaa !5
  %9463 = add nsw i32 %9462, 1
  store i32 %9463, ptr @test_count, align 4, !tbaa !5
  %9464 = load ptr, ptr %144, align 8, !tbaa !9
  %9465 = getelementptr inbounds %struct.s2n_config, ptr %9464, i32 0, i32 7
  %9466 = load ptr, ptr %9465, align 8, !tbaa !63
  %9467 = getelementptr inbounds %struct.s2n_security_policy, ptr %9466, i32 0, i32 2
  %9468 = load ptr, ptr %9467, align 8, !tbaa !20
  %9469 = icmp eq ptr %9468, @kem_preferences_null
  br i1 %9469, label %9523, label %9470

9470:                                             ; preds = %9461
  br label %9471

9471:                                             ; preds = %9470
  br label %9472

9472:                                             ; preds = %9471
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #10
  %9473 = call ptr @__errno_location() #11
  %9474 = load i32, ptr %9473, align 4, !tbaa !5
  store i32 %9474, ptr %184, align 4, !tbaa !5
  %9475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9476 = call i32 @s2n_print_stacktrace(ptr noundef %9475)
  %9477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9478 = trunc i8 %9477 to i1
  br i1 %9478, label %9479, label %9501

9479:                                             ; preds = %9472
  %9480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9481 = call i32 @fileno(ptr noundef %9480) #10
  %9482 = call i32 @isatty(i32 noundef %9481) #10
  %9483 = icmp ne i32 %9482, 0
  br i1 %9483, label %9484, label %9501

9484:                                             ; preds = %9479
  %9485 = load i32, ptr %184, align 4, !tbaa !5
  %9486 = call ptr @__errno_location() #11
  store i32 %9485, ptr %9486, align 4, !tbaa !5
  %9487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9488 = load i32, ptr @test_count, align 4, !tbaa !5
  %9489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9490 = load i32, ptr %9489, align 4, !tbaa !5
  %9491 = call ptr @s2n_strerror(i32 noundef %9490, ptr noundef @.str.4)
  %9492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9493 = load i32, ptr %9492, align 4, !tbaa !5
  %9494 = call ptr @s2n_strerror_debug(i32 noundef %9493, ptr noundef @.str.4)
  %9495 = call ptr @__errno_location() #11
  %9496 = load i32, ptr %9495, align 4, !tbaa !5
  %9497 = call ptr @strerror(i32 noundef %9496) #10
  %9498 = call ptr @__errno_location() #11
  %9499 = load i32, ptr %9498, align 4, !tbaa !5
  %9500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9487, ptr noundef @.str.2, i32 noundef %9488, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 506, ptr noundef %9491, ptr noundef %9494, ptr noundef %9497, i32 noundef %9499) #10
  br label %9518

9501:                                             ; preds = %9479, %9472
  %9502 = load i32, ptr %184, align 4, !tbaa !5
  %9503 = call ptr @__errno_location() #11
  store i32 %9502, ptr %9503, align 4, !tbaa !5
  %9504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9505 = load i32, ptr @test_count, align 4, !tbaa !5
  %9506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9507 = load i32, ptr %9506, align 4, !tbaa !5
  %9508 = call ptr @s2n_strerror(i32 noundef %9507, ptr noundef @.str.4)
  %9509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9510 = load i32, ptr %9509, align 4, !tbaa !5
  %9511 = call ptr @s2n_strerror_debug(i32 noundef %9510, ptr noundef @.str.4)
  %9512 = call ptr @__errno_location() #11
  %9513 = load i32, ptr %9512, align 4, !tbaa !5
  %9514 = call ptr @strerror(i32 noundef %9513) #10
  %9515 = call ptr @__errno_location() #11
  %9516 = load i32, ptr %9515, align 4, !tbaa !5
  %9517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9504, ptr noundef @.str.5, i32 noundef %9505, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 506, ptr noundef %9508, ptr noundef %9511, ptr noundef %9514, i32 noundef %9516) #10
  br label %9518

9518:                                             ; preds = %9501, %9484
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #10
  br label %9519

9519:                                             ; preds = %9518
  br label %9520

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

9521:                                             ; No predecessors!
  br label %9522

9522:                                             ; preds = %9521
  br label %9523

9523:                                             ; preds = %9522, %9461
  br label %9524

9524:                                             ; preds = %9523
  br label %9525

9525:                                             ; preds = %9524
  br label %9526

9526:                                             ; preds = %9525
  %9527 = load i32, ptr @test_count, align 4, !tbaa !5
  %9528 = add nsw i32 %9527, 1
  store i32 %9528, ptr @test_count, align 4, !tbaa !5
  %9529 = load ptr, ptr %144, align 8, !tbaa !9
  %9530 = getelementptr inbounds %struct.s2n_config, ptr %9529, i32 0, i32 7
  %9531 = load ptr, ptr %9530, align 8, !tbaa !63
  %9532 = getelementptr inbounds %struct.s2n_security_policy, ptr %9531, i32 0, i32 3
  %9533 = load ptr, ptr %9532, align 8, !tbaa !38
  %9534 = icmp eq ptr %9533, @s2n_signature_preferences_20200207
  br i1 %9534, label %9588, label %9535

9535:                                             ; preds = %9526
  br label %9536

9536:                                             ; preds = %9535
  br label %9537

9537:                                             ; preds = %9536
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %9538 = call ptr @__errno_location() #11
  %9539 = load i32, ptr %9538, align 4, !tbaa !5
  store i32 %9539, ptr %185, align 4, !tbaa !5
  %9540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9541 = call i32 @s2n_print_stacktrace(ptr noundef %9540)
  %9542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9543 = trunc i8 %9542 to i1
  br i1 %9543, label %9544, label %9566

9544:                                             ; preds = %9537
  %9545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9546 = call i32 @fileno(ptr noundef %9545) #10
  %9547 = call i32 @isatty(i32 noundef %9546) #10
  %9548 = icmp ne i32 %9547, 0
  br i1 %9548, label %9549, label %9566

9549:                                             ; preds = %9544
  %9550 = load i32, ptr %185, align 4, !tbaa !5
  %9551 = call ptr @__errno_location() #11
  store i32 %9550, ptr %9551, align 4, !tbaa !5
  %9552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9553 = load i32, ptr @test_count, align 4, !tbaa !5
  %9554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9555 = load i32, ptr %9554, align 4, !tbaa !5
  %9556 = call ptr @s2n_strerror(i32 noundef %9555, ptr noundef @.str.4)
  %9557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9558 = load i32, ptr %9557, align 4, !tbaa !5
  %9559 = call ptr @s2n_strerror_debug(i32 noundef %9558, ptr noundef @.str.4)
  %9560 = call ptr @__errno_location() #11
  %9561 = load i32, ptr %9560, align 4, !tbaa !5
  %9562 = call ptr @strerror(i32 noundef %9561) #10
  %9563 = call ptr @__errno_location() #11
  %9564 = load i32, ptr %9563, align 4, !tbaa !5
  %9565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9552, ptr noundef @.str.2, i32 noundef %9553, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 507, ptr noundef %9556, ptr noundef %9559, ptr noundef %9562, i32 noundef %9564) #10
  br label %9583

9566:                                             ; preds = %9544, %9537
  %9567 = load i32, ptr %185, align 4, !tbaa !5
  %9568 = call ptr @__errno_location() #11
  store i32 %9567, ptr %9568, align 4, !tbaa !5
  %9569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9570 = load i32, ptr @test_count, align 4, !tbaa !5
  %9571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9572 = load i32, ptr %9571, align 4, !tbaa !5
  %9573 = call ptr @s2n_strerror(i32 noundef %9572, ptr noundef @.str.4)
  %9574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9575 = load i32, ptr %9574, align 4, !tbaa !5
  %9576 = call ptr @s2n_strerror_debug(i32 noundef %9575, ptr noundef @.str.4)
  %9577 = call ptr @__errno_location() #11
  %9578 = load i32, ptr %9577, align 4, !tbaa !5
  %9579 = call ptr @strerror(i32 noundef %9578) #10
  %9580 = call ptr @__errno_location() #11
  %9581 = load i32, ptr %9580, align 4, !tbaa !5
  %9582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9569, ptr noundef @.str.5, i32 noundef %9570, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 507, ptr noundef %9573, ptr noundef %9576, ptr noundef %9579, i32 noundef %9581) #10
  br label %9583

9583:                                             ; preds = %9566, %9549
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %9584

9584:                                             ; preds = %9583
  br label %9585

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

9586:                                             ; No predecessors!
  br label %9587

9587:                                             ; preds = %9586
  br label %9588

9588:                                             ; preds = %9587, %9526
  br label %9589

9589:                                             ; preds = %9588
  br label %9590

9590:                                             ; preds = %9589
  br label %9591

9591:                                             ; preds = %9590
  %9592 = load i32, ptr @test_count, align 4, !tbaa !5
  %9593 = add nsw i32 %9592, 1
  store i32 %9593, ptr @test_count, align 4, !tbaa !5
  %9594 = load ptr, ptr %144, align 8, !tbaa !9
  %9595 = getelementptr inbounds %struct.s2n_config, ptr %9594, i32 0, i32 7
  %9596 = load ptr, ptr %9595, align 8, !tbaa !63
  %9597 = getelementptr inbounds %struct.s2n_security_policy, ptr %9596, i32 0, i32 5
  %9598 = load ptr, ptr %9597, align 8, !tbaa !60
  %9599 = icmp eq ptr %9598, @s2n_ecc_preferences_20200310
  br i1 %9599, label %9653, label %9600

9600:                                             ; preds = %9591
  br label %9601

9601:                                             ; preds = %9600
  br label %9602

9602:                                             ; preds = %9601
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %9603 = call ptr @__errno_location() #11
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  store i32 %9604, ptr %186, align 4, !tbaa !5
  %9605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9606 = call i32 @s2n_print_stacktrace(ptr noundef %9605)
  %9607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9608 = trunc i8 %9607 to i1
  br i1 %9608, label %9609, label %9631

9609:                                             ; preds = %9602
  %9610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9611 = call i32 @fileno(ptr noundef %9610) #10
  %9612 = call i32 @isatty(i32 noundef %9611) #10
  %9613 = icmp ne i32 %9612, 0
  br i1 %9613, label %9614, label %9631

9614:                                             ; preds = %9609
  %9615 = load i32, ptr %186, align 4, !tbaa !5
  %9616 = call ptr @__errno_location() #11
  store i32 %9615, ptr %9616, align 4, !tbaa !5
  %9617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9618 = load i32, ptr @test_count, align 4, !tbaa !5
  %9619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call ptr @s2n_strerror(i32 noundef %9620, ptr noundef @.str.4)
  %9622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call ptr @s2n_strerror_debug(i32 noundef %9623, ptr noundef @.str.4)
  %9625 = call ptr @__errno_location() #11
  %9626 = load i32, ptr %9625, align 4, !tbaa !5
  %9627 = call ptr @strerror(i32 noundef %9626) #10
  %9628 = call ptr @__errno_location() #11
  %9629 = load i32, ptr %9628, align 4, !tbaa !5
  %9630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9617, ptr noundef @.str.2, i32 noundef %9618, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 508, ptr noundef %9621, ptr noundef %9624, ptr noundef %9627, i32 noundef %9629) #10
  br label %9648

9631:                                             ; preds = %9609, %9602
  %9632 = load i32, ptr %186, align 4, !tbaa !5
  %9633 = call ptr @__errno_location() #11
  store i32 %9632, ptr %9633, align 4, !tbaa !5
  %9634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9635 = load i32, ptr @test_count, align 4, !tbaa !5
  %9636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  %9638 = call ptr @s2n_strerror(i32 noundef %9637, ptr noundef @.str.4)
  %9639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call ptr @s2n_strerror_debug(i32 noundef %9640, ptr noundef @.str.4)
  %9642 = call ptr @__errno_location() #11
  %9643 = load i32, ptr %9642, align 4, !tbaa !5
  %9644 = call ptr @strerror(i32 noundef %9643) #10
  %9645 = call ptr @__errno_location() #11
  %9646 = load i32, ptr %9645, align 4, !tbaa !5
  %9647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9634, ptr noundef @.str.5, i32 noundef %9635, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 508, ptr noundef %9638, ptr noundef %9641, ptr noundef %9644, i32 noundef %9646) #10
  br label %9648

9648:                                             ; preds = %9631, %9614
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %9649

9649:                                             ; preds = %9648
  br label %9650

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

9651:                                             ; No predecessors!
  br label %9652

9652:                                             ; preds = %9651
  br label %9653

9653:                                             ; preds = %9652, %9591
  br label %9654

9654:                                             ; preds = %9653
  br label %9655

9655:                                             ; preds = %9654
  br label %9656

9656:                                             ; preds = %9655
  %9657 = load i32, ptr @test_count, align 4, !tbaa !5
  %9658 = add nsw i32 %9657, 1
  store i32 %9658, ptr @test_count, align 4, !tbaa !5
  %9659 = load ptr, ptr %144, align 8, !tbaa !9
  %9660 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %9659, ptr noundef @.str.119)
  %9661 = icmp eq i32 %9660, -1
  br i1 %9661, label %9662, label %9715

9662:                                             ; preds = %9656
  br label %9663

9663:                                             ; preds = %9662
  br label %9664

9664:                                             ; preds = %9663
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %9665 = call ptr @__errno_location() #11
  %9666 = load i32, ptr %9665, align 4, !tbaa !5
  store i32 %9666, ptr %187, align 4, !tbaa !5
  %9667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9668 = call i32 @s2n_print_stacktrace(ptr noundef %9667)
  %9669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9670 = trunc i8 %9669 to i1
  br i1 %9670, label %9671, label %9693

9671:                                             ; preds = %9664
  %9672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9673 = call i32 @fileno(ptr noundef %9672) #10
  %9674 = call i32 @isatty(i32 noundef %9673) #10
  %9675 = icmp ne i32 %9674, 0
  br i1 %9675, label %9676, label %9693

9676:                                             ; preds = %9671
  %9677 = load i32, ptr %187, align 4, !tbaa !5
  %9678 = call ptr @__errno_location() #11
  store i32 %9677, ptr %9678, align 4, !tbaa !5
  %9679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9680 = load i32, ptr @test_count, align 4, !tbaa !5
  %9681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9682 = load i32, ptr %9681, align 4, !tbaa !5
  %9683 = call ptr @s2n_strerror(i32 noundef %9682, ptr noundef @.str.4)
  %9684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9685 = load i32, ptr %9684, align 4, !tbaa !5
  %9686 = call ptr @s2n_strerror_debug(i32 noundef %9685, ptr noundef @.str.4)
  %9687 = call ptr @__errno_location() #11
  %9688 = load i32, ptr %9687, align 4, !tbaa !5
  %9689 = call ptr @strerror(i32 noundef %9688) #10
  %9690 = call ptr @__errno_location() #11
  %9691 = load i32, ptr %9690, align 4, !tbaa !5
  %9692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9679, ptr noundef @.str.2, i32 noundef %9680, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 510, ptr noundef %9683, ptr noundef %9686, ptr noundef %9689, i32 noundef %9691) #10
  br label %9710

9693:                                             ; preds = %9671, %9664
  %9694 = load i32, ptr %187, align 4, !tbaa !5
  %9695 = call ptr @__errno_location() #11
  store i32 %9694, ptr %9695, align 4, !tbaa !5
  %9696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9697 = load i32, ptr @test_count, align 4, !tbaa !5
  %9698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9699 = load i32, ptr %9698, align 4, !tbaa !5
  %9700 = call ptr @s2n_strerror(i32 noundef %9699, ptr noundef @.str.4)
  %9701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9702 = load i32, ptr %9701, align 4, !tbaa !5
  %9703 = call ptr @s2n_strerror_debug(i32 noundef %9702, ptr noundef @.str.4)
  %9704 = call ptr @__errno_location() #11
  %9705 = load i32, ptr %9704, align 4, !tbaa !5
  %9706 = call ptr @strerror(i32 noundef %9705) #10
  %9707 = call ptr @__errno_location() #11
  %9708 = load i32, ptr %9707, align 4, !tbaa !5
  %9709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9696, ptr noundef @.str.5, i32 noundef %9697, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 510, ptr noundef %9700, ptr noundef %9703, ptr noundef %9706, i32 noundef %9708) #10
  br label %9710

9710:                                             ; preds = %9693, %9676
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %9711

9711:                                             ; preds = %9710
  br label %9712

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

9713:                                             ; No predecessors!
  br label %9714

9714:                                             ; preds = %9713
  br label %9715

9715:                                             ; preds = %9714, %9656
  br label %9716

9716:                                             ; preds = %9715
  br label %9717

9717:                                             ; preds = %9716
  br label %9718

9718:                                             ; preds = %9717
  %9719 = load i32, ptr @test_count, align 4, !tbaa !5
  %9720 = add nsw i32 %9719, 1
  store i32 %9720, ptr @test_count, align 4, !tbaa !5
  %9721 = load ptr, ptr %144, align 8, !tbaa !9
  %9722 = getelementptr inbounds %struct.s2n_config, ptr %9721, i32 0, i32 7
  %9723 = load ptr, ptr %9722, align 8, !tbaa !63
  %9724 = icmp eq ptr %9723, @security_policy_aws_crt_sdk_tls_11
  br i1 %9724, label %9778, label %9725

9725:                                             ; preds = %9718
  br label %9726

9726:                                             ; preds = %9725
  br label %9727

9727:                                             ; preds = %9726
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #10
  %9728 = call ptr @__errno_location() #11
  %9729 = load i32, ptr %9728, align 4, !tbaa !5
  store i32 %9729, ptr %188, align 4, !tbaa !5
  %9730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9731 = call i32 @s2n_print_stacktrace(ptr noundef %9730)
  %9732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9733 = trunc i8 %9732 to i1
  br i1 %9733, label %9734, label %9756

9734:                                             ; preds = %9727
  %9735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9736 = call i32 @fileno(ptr noundef %9735) #10
  %9737 = call i32 @isatty(i32 noundef %9736) #10
  %9738 = icmp ne i32 %9737, 0
  br i1 %9738, label %9739, label %9756

9739:                                             ; preds = %9734
  %9740 = load i32, ptr %188, align 4, !tbaa !5
  %9741 = call ptr @__errno_location() #11
  store i32 %9740, ptr %9741, align 4, !tbaa !5
  %9742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9743 = load i32, ptr @test_count, align 4, !tbaa !5
  %9744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9745 = load i32, ptr %9744, align 4, !tbaa !5
  %9746 = call ptr @s2n_strerror(i32 noundef %9745, ptr noundef @.str.4)
  %9747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9748 = load i32, ptr %9747, align 4, !tbaa !5
  %9749 = call ptr @s2n_strerror_debug(i32 noundef %9748, ptr noundef @.str.4)
  %9750 = call ptr @__errno_location() #11
  %9751 = load i32, ptr %9750, align 4, !tbaa !5
  %9752 = call ptr @strerror(i32 noundef %9751) #10
  %9753 = call ptr @__errno_location() #11
  %9754 = load i32, ptr %9753, align 4, !tbaa !5
  %9755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9742, ptr noundef @.str.2, i32 noundef %9743, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 511, ptr noundef %9746, ptr noundef %9749, ptr noundef %9752, i32 noundef %9754) #10
  br label %9773

9756:                                             ; preds = %9734, %9727
  %9757 = load i32, ptr %188, align 4, !tbaa !5
  %9758 = call ptr @__errno_location() #11
  store i32 %9757, ptr %9758, align 4, !tbaa !5
  %9759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9760 = load i32, ptr @test_count, align 4, !tbaa !5
  %9761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9762 = load i32, ptr %9761, align 4, !tbaa !5
  %9763 = call ptr @s2n_strerror(i32 noundef %9762, ptr noundef @.str.4)
  %9764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9765 = load i32, ptr %9764, align 4, !tbaa !5
  %9766 = call ptr @s2n_strerror_debug(i32 noundef %9765, ptr noundef @.str.4)
  %9767 = call ptr @__errno_location() #11
  %9768 = load i32, ptr %9767, align 4, !tbaa !5
  %9769 = call ptr @strerror(i32 noundef %9768) #10
  %9770 = call ptr @__errno_location() #11
  %9771 = load i32, ptr %9770, align 4, !tbaa !5
  %9772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9759, ptr noundef @.str.5, i32 noundef %9760, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 511, ptr noundef %9763, ptr noundef %9766, ptr noundef %9769, i32 noundef %9771) #10
  br label %9773

9773:                                             ; preds = %9756, %9739
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #10
  br label %9774

9774:                                             ; preds = %9773
  br label %9775

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

9776:                                             ; No predecessors!
  br label %9777

9777:                                             ; preds = %9776
  br label %9778

9778:                                             ; preds = %9777, %9718
  br label %9779

9779:                                             ; preds = %9778
  br label %9780

9780:                                             ; preds = %9779
  br label %9781

9781:                                             ; preds = %9780
  %9782 = load i32, ptr @test_count, align 4, !tbaa !5
  %9783 = add nsw i32 %9782, 1
  store i32 %9783, ptr @test_count, align 4, !tbaa !5
  %9784 = load ptr, ptr %144, align 8, !tbaa !9
  %9785 = getelementptr inbounds %struct.s2n_config, ptr %9784, i32 0, i32 7
  %9786 = load ptr, ptr %9785, align 8, !tbaa !63
  %9787 = getelementptr inbounds %struct.s2n_security_policy, ptr %9786, i32 0, i32 1
  %9788 = load ptr, ptr %9787, align 8, !tbaa !31
  %9789 = icmp eq ptr %9788, @cipher_preferences_aws_crt_sdk_default
  br i1 %9789, label %9843, label %9790

9790:                                             ; preds = %9781
  br label %9791

9791:                                             ; preds = %9790
  br label %9792

9792:                                             ; preds = %9791
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %9793 = call ptr @__errno_location() #11
  %9794 = load i32, ptr %9793, align 4, !tbaa !5
  store i32 %9794, ptr %189, align 4, !tbaa !5
  %9795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9796 = call i32 @s2n_print_stacktrace(ptr noundef %9795)
  %9797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9798 = trunc i8 %9797 to i1
  br i1 %9798, label %9799, label %9821

9799:                                             ; preds = %9792
  %9800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9801 = call i32 @fileno(ptr noundef %9800) #10
  %9802 = call i32 @isatty(i32 noundef %9801) #10
  %9803 = icmp ne i32 %9802, 0
  br i1 %9803, label %9804, label %9821

9804:                                             ; preds = %9799
  %9805 = load i32, ptr %189, align 4, !tbaa !5
  %9806 = call ptr @__errno_location() #11
  store i32 %9805, ptr %9806, align 4, !tbaa !5
  %9807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9808 = load i32, ptr @test_count, align 4, !tbaa !5
  %9809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call ptr @s2n_strerror(i32 noundef %9810, ptr noundef @.str.4)
  %9812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9813 = load i32, ptr %9812, align 4, !tbaa !5
  %9814 = call ptr @s2n_strerror_debug(i32 noundef %9813, ptr noundef @.str.4)
  %9815 = call ptr @__errno_location() #11
  %9816 = load i32, ptr %9815, align 4, !tbaa !5
  %9817 = call ptr @strerror(i32 noundef %9816) #10
  %9818 = call ptr @__errno_location() #11
  %9819 = load i32, ptr %9818, align 4, !tbaa !5
  %9820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9807, ptr noundef @.str.2, i32 noundef %9808, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 512, ptr noundef %9811, ptr noundef %9814, ptr noundef %9817, i32 noundef %9819) #10
  br label %9838

9821:                                             ; preds = %9799, %9792
  %9822 = load i32, ptr %189, align 4, !tbaa !5
  %9823 = call ptr @__errno_location() #11
  store i32 %9822, ptr %9823, align 4, !tbaa !5
  %9824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9825 = load i32, ptr @test_count, align 4, !tbaa !5
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror(i32 noundef %9827, ptr noundef @.str.4)
  %9829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @s2n_strerror_debug(i32 noundef %9830, ptr noundef @.str.4)
  %9832 = call ptr @__errno_location() #11
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call ptr @strerror(i32 noundef %9833) #10
  %9835 = call ptr @__errno_location() #11
  %9836 = load i32, ptr %9835, align 4, !tbaa !5
  %9837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9824, ptr noundef @.str.5, i32 noundef %9825, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 512, ptr noundef %9828, ptr noundef %9831, ptr noundef %9834, i32 noundef %9836) #10
  br label %9838

9838:                                             ; preds = %9821, %9804
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %9839

9839:                                             ; preds = %9838
  br label %9840

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

9841:                                             ; No predecessors!
  br label %9842

9842:                                             ; preds = %9841
  br label %9843

9843:                                             ; preds = %9842, %9781
  br label %9844

9844:                                             ; preds = %9843
  br label %9845

9845:                                             ; preds = %9844
  br label %9846

9846:                                             ; preds = %9845
  %9847 = load i32, ptr @test_count, align 4, !tbaa !5
  %9848 = add nsw i32 %9847, 1
  store i32 %9848, ptr @test_count, align 4, !tbaa !5
  %9849 = load ptr, ptr %144, align 8, !tbaa !9
  %9850 = getelementptr inbounds %struct.s2n_config, ptr %9849, i32 0, i32 7
  %9851 = load ptr, ptr %9850, align 8, !tbaa !63
  %9852 = getelementptr inbounds %struct.s2n_security_policy, ptr %9851, i32 0, i32 2
  %9853 = load ptr, ptr %9852, align 8, !tbaa !20
  %9854 = icmp eq ptr %9853, @kem_preferences_null
  br i1 %9854, label %9908, label %9855

9855:                                             ; preds = %9846
  br label %9856

9856:                                             ; preds = %9855
  br label %9857

9857:                                             ; preds = %9856
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %9858 = call ptr @__errno_location() #11
  %9859 = load i32, ptr %9858, align 4, !tbaa !5
  store i32 %9859, ptr %190, align 4, !tbaa !5
  %9860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9861 = call i32 @s2n_print_stacktrace(ptr noundef %9860)
  %9862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9863 = trunc i8 %9862 to i1
  br i1 %9863, label %9864, label %9886

9864:                                             ; preds = %9857
  %9865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9866 = call i32 @fileno(ptr noundef %9865) #10
  %9867 = call i32 @isatty(i32 noundef %9866) #10
  %9868 = icmp ne i32 %9867, 0
  br i1 %9868, label %9869, label %9886

9869:                                             ; preds = %9864
  %9870 = load i32, ptr %190, align 4, !tbaa !5
  %9871 = call ptr @__errno_location() #11
  store i32 %9870, ptr %9871, align 4, !tbaa !5
  %9872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9873 = load i32, ptr @test_count, align 4, !tbaa !5
  %9874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9875 = load i32, ptr %9874, align 4, !tbaa !5
  %9876 = call ptr @s2n_strerror(i32 noundef %9875, ptr noundef @.str.4)
  %9877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9878 = load i32, ptr %9877, align 4, !tbaa !5
  %9879 = call ptr @s2n_strerror_debug(i32 noundef %9878, ptr noundef @.str.4)
  %9880 = call ptr @__errno_location() #11
  %9881 = load i32, ptr %9880, align 4, !tbaa !5
  %9882 = call ptr @strerror(i32 noundef %9881) #10
  %9883 = call ptr @__errno_location() #11
  %9884 = load i32, ptr %9883, align 4, !tbaa !5
  %9885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9872, ptr noundef @.str.2, i32 noundef %9873, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 513, ptr noundef %9876, ptr noundef %9879, ptr noundef %9882, i32 noundef %9884) #10
  br label %9903

9886:                                             ; preds = %9864, %9857
  %9887 = load i32, ptr %190, align 4, !tbaa !5
  %9888 = call ptr @__errno_location() #11
  store i32 %9887, ptr %9888, align 4, !tbaa !5
  %9889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9890 = load i32, ptr @test_count, align 4, !tbaa !5
  %9891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9892 = load i32, ptr %9891, align 4, !tbaa !5
  %9893 = call ptr @s2n_strerror(i32 noundef %9892, ptr noundef @.str.4)
  %9894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9895 = load i32, ptr %9894, align 4, !tbaa !5
  %9896 = call ptr @s2n_strerror_debug(i32 noundef %9895, ptr noundef @.str.4)
  %9897 = call ptr @__errno_location() #11
  %9898 = load i32, ptr %9897, align 4, !tbaa !5
  %9899 = call ptr @strerror(i32 noundef %9898) #10
  %9900 = call ptr @__errno_location() #11
  %9901 = load i32, ptr %9900, align 4, !tbaa !5
  %9902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9889, ptr noundef @.str.5, i32 noundef %9890, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 513, ptr noundef %9893, ptr noundef %9896, ptr noundef %9899, i32 noundef %9901) #10
  br label %9903

9903:                                             ; preds = %9886, %9869
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %9904

9904:                                             ; preds = %9903
  br label %9905

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

9906:                                             ; No predecessors!
  br label %9907

9907:                                             ; preds = %9906
  br label %9908

9908:                                             ; preds = %9907, %9846
  br label %9909

9909:                                             ; preds = %9908
  br label %9910

9910:                                             ; preds = %9909
  br label %9911

9911:                                             ; preds = %9910
  %9912 = load i32, ptr @test_count, align 4, !tbaa !5
  %9913 = add nsw i32 %9912, 1
  store i32 %9913, ptr @test_count, align 4, !tbaa !5
  %9914 = load ptr, ptr %144, align 8, !tbaa !9
  %9915 = getelementptr inbounds %struct.s2n_config, ptr %9914, i32 0, i32 7
  %9916 = load ptr, ptr %9915, align 8, !tbaa !63
  %9917 = getelementptr inbounds %struct.s2n_security_policy, ptr %9916, i32 0, i32 3
  %9918 = load ptr, ptr %9917, align 8, !tbaa !38
  %9919 = icmp eq ptr %9918, @s2n_signature_preferences_20200207
  br i1 %9919, label %9973, label %9920

9920:                                             ; preds = %9911
  br label %9921

9921:                                             ; preds = %9920
  br label %9922

9922:                                             ; preds = %9921
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  %9923 = call ptr @__errno_location() #11
  %9924 = load i32, ptr %9923, align 4, !tbaa !5
  store i32 %9924, ptr %191, align 4, !tbaa !5
  %9925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9926 = call i32 @s2n_print_stacktrace(ptr noundef %9925)
  %9927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9928 = trunc i8 %9927 to i1
  br i1 %9928, label %9929, label %9951

9929:                                             ; preds = %9922
  %9930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9931 = call i32 @fileno(ptr noundef %9930) #10
  %9932 = call i32 @isatty(i32 noundef %9931) #10
  %9933 = icmp ne i32 %9932, 0
  br i1 %9933, label %9934, label %9951

9934:                                             ; preds = %9929
  %9935 = load i32, ptr %191, align 4, !tbaa !5
  %9936 = call ptr @__errno_location() #11
  store i32 %9935, ptr %9936, align 4, !tbaa !5
  %9937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9938 = load i32, ptr @test_count, align 4, !tbaa !5
  %9939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9940 = load i32, ptr %9939, align 4, !tbaa !5
  %9941 = call ptr @s2n_strerror(i32 noundef %9940, ptr noundef @.str.4)
  %9942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9943 = load i32, ptr %9942, align 4, !tbaa !5
  %9944 = call ptr @s2n_strerror_debug(i32 noundef %9943, ptr noundef @.str.4)
  %9945 = call ptr @__errno_location() #11
  %9946 = load i32, ptr %9945, align 4, !tbaa !5
  %9947 = call ptr @strerror(i32 noundef %9946) #10
  %9948 = call ptr @__errno_location() #11
  %9949 = load i32, ptr %9948, align 4, !tbaa !5
  %9950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9937, ptr noundef @.str.2, i32 noundef %9938, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 514, ptr noundef %9941, ptr noundef %9944, ptr noundef %9947, i32 noundef %9949) #10
  br label %9968

9951:                                             ; preds = %9929, %9922
  %9952 = load i32, ptr %191, align 4, !tbaa !5
  %9953 = call ptr @__errno_location() #11
  store i32 %9952, ptr %9953, align 4, !tbaa !5
  %9954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9955 = load i32, ptr @test_count, align 4, !tbaa !5
  %9956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9957 = load i32, ptr %9956, align 4, !tbaa !5
  %9958 = call ptr @s2n_strerror(i32 noundef %9957, ptr noundef @.str.4)
  %9959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9960 = load i32, ptr %9959, align 4, !tbaa !5
  %9961 = call ptr @s2n_strerror_debug(i32 noundef %9960, ptr noundef @.str.4)
  %9962 = call ptr @__errno_location() #11
  %9963 = load i32, ptr %9962, align 4, !tbaa !5
  %9964 = call ptr @strerror(i32 noundef %9963) #10
  %9965 = call ptr @__errno_location() #11
  %9966 = load i32, ptr %9965, align 4, !tbaa !5
  %9967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9954, ptr noundef @.str.5, i32 noundef %9955, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 514, ptr noundef %9958, ptr noundef %9961, ptr noundef %9964, i32 noundef %9966) #10
  br label %9968

9968:                                             ; preds = %9951, %9934
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %9969

9969:                                             ; preds = %9968
  br label %9970

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

9971:                                             ; No predecessors!
  br label %9972

9972:                                             ; preds = %9971
  br label %9973

9973:                                             ; preds = %9972, %9911
  br label %9974

9974:                                             ; preds = %9973
  br label %9975

9975:                                             ; preds = %9974
  br label %9976

9976:                                             ; preds = %9975
  %9977 = load i32, ptr @test_count, align 4, !tbaa !5
  %9978 = add nsw i32 %9977, 1
  store i32 %9978, ptr @test_count, align 4, !tbaa !5
  %9979 = load ptr, ptr %144, align 8, !tbaa !9
  %9980 = getelementptr inbounds %struct.s2n_config, ptr %9979, i32 0, i32 7
  %9981 = load ptr, ptr %9980, align 8, !tbaa !63
  %9982 = getelementptr inbounds %struct.s2n_security_policy, ptr %9981, i32 0, i32 5
  %9983 = load ptr, ptr %9982, align 8, !tbaa !60
  %9984 = icmp eq ptr %9983, @s2n_ecc_preferences_20200310
  br i1 %9984, label %10038, label %9985

9985:                                             ; preds = %9976
  br label %9986

9986:                                             ; preds = %9985
  br label %9987

9987:                                             ; preds = %9986
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %9988 = call ptr @__errno_location() #11
  %9989 = load i32, ptr %9988, align 4, !tbaa !5
  store i32 %9989, ptr %192, align 4, !tbaa !5
  %9990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9991 = call i32 @s2n_print_stacktrace(ptr noundef %9990)
  %9992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9993 = trunc i8 %9992 to i1
  br i1 %9993, label %9994, label %10016

9994:                                             ; preds = %9987
  %9995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9996 = call i32 @fileno(ptr noundef %9995) #10
  %9997 = call i32 @isatty(i32 noundef %9996) #10
  %9998 = icmp ne i32 %9997, 0
  br i1 %9998, label %9999, label %10016

9999:                                             ; preds = %9994
  %10000 = load i32, ptr %192, align 4, !tbaa !5
  %10001 = call ptr @__errno_location() #11
  store i32 %10000, ptr %10001, align 4, !tbaa !5
  %10002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10003 = load i32, ptr @test_count, align 4, !tbaa !5
  %10004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10005 = load i32, ptr %10004, align 4, !tbaa !5
  %10006 = call ptr @s2n_strerror(i32 noundef %10005, ptr noundef @.str.4)
  %10007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10008 = load i32, ptr %10007, align 4, !tbaa !5
  %10009 = call ptr @s2n_strerror_debug(i32 noundef %10008, ptr noundef @.str.4)
  %10010 = call ptr @__errno_location() #11
  %10011 = load i32, ptr %10010, align 4, !tbaa !5
  %10012 = call ptr @strerror(i32 noundef %10011) #10
  %10013 = call ptr @__errno_location() #11
  %10014 = load i32, ptr %10013, align 4, !tbaa !5
  %10015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10002, ptr noundef @.str.2, i32 noundef %10003, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 515, ptr noundef %10006, ptr noundef %10009, ptr noundef %10012, i32 noundef %10014) #10
  br label %10033

10016:                                            ; preds = %9994, %9987
  %10017 = load i32, ptr %192, align 4, !tbaa !5
  %10018 = call ptr @__errno_location() #11
  store i32 %10017, ptr %10018, align 4, !tbaa !5
  %10019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10020 = load i32, ptr @test_count, align 4, !tbaa !5
  %10021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10022 = load i32, ptr %10021, align 4, !tbaa !5
  %10023 = call ptr @s2n_strerror(i32 noundef %10022, ptr noundef @.str.4)
  %10024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10025 = load i32, ptr %10024, align 4, !tbaa !5
  %10026 = call ptr @s2n_strerror_debug(i32 noundef %10025, ptr noundef @.str.4)
  %10027 = call ptr @__errno_location() #11
  %10028 = load i32, ptr %10027, align 4, !tbaa !5
  %10029 = call ptr @strerror(i32 noundef %10028) #10
  %10030 = call ptr @__errno_location() #11
  %10031 = load i32, ptr %10030, align 4, !tbaa !5
  %10032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10019, ptr noundef @.str.5, i32 noundef %10020, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 515, ptr noundef %10023, ptr noundef %10026, ptr noundef %10029, i32 noundef %10031) #10
  br label %10033

10033:                                            ; preds = %10016, %9999
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %10034

10034:                                            ; preds = %10033
  br label %10035

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

10036:                                            ; No predecessors!
  br label %10037

10037:                                            ; preds = %10036
  br label %10038

10038:                                            ; preds = %10037, %9976
  br label %10039

10039:                                            ; preds = %10038
  br label %10040

10040:                                            ; preds = %10039
  br label %10041

10041:                                            ; preds = %10040
  %10042 = load i32, ptr @test_count, align 4, !tbaa !5
  %10043 = add nsw i32 %10042, 1
  store i32 %10043, ptr @test_count, align 4, !tbaa !5
  %10044 = load ptr, ptr %144, align 8, !tbaa !9
  %10045 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %10044, ptr noundef @.str.122)
  %10046 = icmp eq i32 %10045, -1
  br i1 %10046, label %10047, label %10100

10047:                                            ; preds = %10041
  br label %10048

10048:                                            ; preds = %10047
  br label %10049

10049:                                            ; preds = %10048
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %10050 = call ptr @__errno_location() #11
  %10051 = load i32, ptr %10050, align 4, !tbaa !5
  store i32 %10051, ptr %193, align 4, !tbaa !5
  %10052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10053 = call i32 @s2n_print_stacktrace(ptr noundef %10052)
  %10054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10055 = trunc i8 %10054 to i1
  br i1 %10055, label %10056, label %10078

10056:                                            ; preds = %10049
  %10057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10058 = call i32 @fileno(ptr noundef %10057) #10
  %10059 = call i32 @isatty(i32 noundef %10058) #10
  %10060 = icmp ne i32 %10059, 0
  br i1 %10060, label %10061, label %10078

10061:                                            ; preds = %10056
  %10062 = load i32, ptr %193, align 4, !tbaa !5
  %10063 = call ptr @__errno_location() #11
  store i32 %10062, ptr %10063, align 4, !tbaa !5
  %10064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10065 = load i32, ptr @test_count, align 4, !tbaa !5
  %10066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10067 = load i32, ptr %10066, align 4, !tbaa !5
  %10068 = call ptr @s2n_strerror(i32 noundef %10067, ptr noundef @.str.4)
  %10069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10070 = load i32, ptr %10069, align 4, !tbaa !5
  %10071 = call ptr @s2n_strerror_debug(i32 noundef %10070, ptr noundef @.str.4)
  %10072 = call ptr @__errno_location() #11
  %10073 = load i32, ptr %10072, align 4, !tbaa !5
  %10074 = call ptr @strerror(i32 noundef %10073) #10
  %10075 = call ptr @__errno_location() #11
  %10076 = load i32, ptr %10075, align 4, !tbaa !5
  %10077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10064, ptr noundef @.str.2, i32 noundef %10065, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 517, ptr noundef %10068, ptr noundef %10071, ptr noundef %10074, i32 noundef %10076) #10
  br label %10095

10078:                                            ; preds = %10056, %10049
  %10079 = load i32, ptr %193, align 4, !tbaa !5
  %10080 = call ptr @__errno_location() #11
  store i32 %10079, ptr %10080, align 4, !tbaa !5
  %10081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10082 = load i32, ptr @test_count, align 4, !tbaa !5
  %10083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10084 = load i32, ptr %10083, align 4, !tbaa !5
  %10085 = call ptr @s2n_strerror(i32 noundef %10084, ptr noundef @.str.4)
  %10086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10087 = load i32, ptr %10086, align 4, !tbaa !5
  %10088 = call ptr @s2n_strerror_debug(i32 noundef %10087, ptr noundef @.str.4)
  %10089 = call ptr @__errno_location() #11
  %10090 = load i32, ptr %10089, align 4, !tbaa !5
  %10091 = call ptr @strerror(i32 noundef %10090) #10
  %10092 = call ptr @__errno_location() #11
  %10093 = load i32, ptr %10092, align 4, !tbaa !5
  %10094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10081, ptr noundef @.str.5, i32 noundef %10082, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 517, ptr noundef %10085, ptr noundef %10088, ptr noundef %10091, i32 noundef %10093) #10
  br label %10095

10095:                                            ; preds = %10078, %10061
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %10096

10096:                                            ; preds = %10095
  br label %10097

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

10098:                                            ; No predecessors!
  br label %10099

10099:                                            ; preds = %10098
  br label %10100

10100:                                            ; preds = %10099, %10041
  br label %10101

10101:                                            ; preds = %10100
  br label %10102

10102:                                            ; preds = %10101
  br label %10103

10103:                                            ; preds = %10102
  %10104 = load i32, ptr @test_count, align 4, !tbaa !5
  %10105 = add nsw i32 %10104, 1
  store i32 %10105, ptr @test_count, align 4, !tbaa !5
  %10106 = load ptr, ptr %144, align 8, !tbaa !9
  %10107 = getelementptr inbounds %struct.s2n_config, ptr %10106, i32 0, i32 7
  %10108 = load ptr, ptr %10107, align 8, !tbaa !63
  %10109 = icmp eq ptr %10108, @security_policy_aws_crt_sdk_tls_12
  br i1 %10109, label %10163, label %10110

10110:                                            ; preds = %10103
  br label %10111

10111:                                            ; preds = %10110
  br label %10112

10112:                                            ; preds = %10111
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %10113 = call ptr @__errno_location() #11
  %10114 = load i32, ptr %10113, align 4, !tbaa !5
  store i32 %10114, ptr %194, align 4, !tbaa !5
  %10115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10116 = call i32 @s2n_print_stacktrace(ptr noundef %10115)
  %10117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10118 = trunc i8 %10117 to i1
  br i1 %10118, label %10119, label %10141

10119:                                            ; preds = %10112
  %10120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10121 = call i32 @fileno(ptr noundef %10120) #10
  %10122 = call i32 @isatty(i32 noundef %10121) #10
  %10123 = icmp ne i32 %10122, 0
  br i1 %10123, label %10124, label %10141

10124:                                            ; preds = %10119
  %10125 = load i32, ptr %194, align 4, !tbaa !5
  %10126 = call ptr @__errno_location() #11
  store i32 %10125, ptr %10126, align 4, !tbaa !5
  %10127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10128 = load i32, ptr @test_count, align 4, !tbaa !5
  %10129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10130 = load i32, ptr %10129, align 4, !tbaa !5
  %10131 = call ptr @s2n_strerror(i32 noundef %10130, ptr noundef @.str.4)
  %10132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10133 = load i32, ptr %10132, align 4, !tbaa !5
  %10134 = call ptr @s2n_strerror_debug(i32 noundef %10133, ptr noundef @.str.4)
  %10135 = call ptr @__errno_location() #11
  %10136 = load i32, ptr %10135, align 4, !tbaa !5
  %10137 = call ptr @strerror(i32 noundef %10136) #10
  %10138 = call ptr @__errno_location() #11
  %10139 = load i32, ptr %10138, align 4, !tbaa !5
  %10140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10127, ptr noundef @.str.2, i32 noundef %10128, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 518, ptr noundef %10131, ptr noundef %10134, ptr noundef %10137, i32 noundef %10139) #10
  br label %10158

10141:                                            ; preds = %10119, %10112
  %10142 = load i32, ptr %194, align 4, !tbaa !5
  %10143 = call ptr @__errno_location() #11
  store i32 %10142, ptr %10143, align 4, !tbaa !5
  %10144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10145 = load i32, ptr @test_count, align 4, !tbaa !5
  %10146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10147 = load i32, ptr %10146, align 4, !tbaa !5
  %10148 = call ptr @s2n_strerror(i32 noundef %10147, ptr noundef @.str.4)
  %10149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10150 = load i32, ptr %10149, align 4, !tbaa !5
  %10151 = call ptr @s2n_strerror_debug(i32 noundef %10150, ptr noundef @.str.4)
  %10152 = call ptr @__errno_location() #11
  %10153 = load i32, ptr %10152, align 4, !tbaa !5
  %10154 = call ptr @strerror(i32 noundef %10153) #10
  %10155 = call ptr @__errno_location() #11
  %10156 = load i32, ptr %10155, align 4, !tbaa !5
  %10157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10144, ptr noundef @.str.5, i32 noundef %10145, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 518, ptr noundef %10148, ptr noundef %10151, ptr noundef %10154, i32 noundef %10156) #10
  br label %10158

10158:                                            ; preds = %10141, %10124
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %10159

10159:                                            ; preds = %10158
  br label %10160

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

10161:                                            ; No predecessors!
  br label %10162

10162:                                            ; preds = %10161
  br label %10163

10163:                                            ; preds = %10162, %10103
  br label %10164

10164:                                            ; preds = %10163
  br label %10165

10165:                                            ; preds = %10164
  br label %10166

10166:                                            ; preds = %10165
  %10167 = load i32, ptr @test_count, align 4, !tbaa !5
  %10168 = add nsw i32 %10167, 1
  store i32 %10168, ptr @test_count, align 4, !tbaa !5
  %10169 = load ptr, ptr %144, align 8, !tbaa !9
  %10170 = getelementptr inbounds %struct.s2n_config, ptr %10169, i32 0, i32 7
  %10171 = load ptr, ptr %10170, align 8, !tbaa !63
  %10172 = getelementptr inbounds %struct.s2n_security_policy, ptr %10171, i32 0, i32 1
  %10173 = load ptr, ptr %10172, align 8, !tbaa !31
  %10174 = icmp eq ptr %10173, @cipher_preferences_aws_crt_sdk_default
  br i1 %10174, label %10228, label %10175

10175:                                            ; preds = %10166
  br label %10176

10176:                                            ; preds = %10175
  br label %10177

10177:                                            ; preds = %10176
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #10
  %10178 = call ptr @__errno_location() #11
  %10179 = load i32, ptr %10178, align 4, !tbaa !5
  store i32 %10179, ptr %195, align 4, !tbaa !5
  %10180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10181 = call i32 @s2n_print_stacktrace(ptr noundef %10180)
  %10182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10183 = trunc i8 %10182 to i1
  br i1 %10183, label %10184, label %10206

10184:                                            ; preds = %10177
  %10185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10186 = call i32 @fileno(ptr noundef %10185) #10
  %10187 = call i32 @isatty(i32 noundef %10186) #10
  %10188 = icmp ne i32 %10187, 0
  br i1 %10188, label %10189, label %10206

10189:                                            ; preds = %10184
  %10190 = load i32, ptr %195, align 4, !tbaa !5
  %10191 = call ptr @__errno_location() #11
  store i32 %10190, ptr %10191, align 4, !tbaa !5
  %10192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10193 = load i32, ptr @test_count, align 4, !tbaa !5
  %10194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10195 = load i32, ptr %10194, align 4, !tbaa !5
  %10196 = call ptr @s2n_strerror(i32 noundef %10195, ptr noundef @.str.4)
  %10197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10198 = load i32, ptr %10197, align 4, !tbaa !5
  %10199 = call ptr @s2n_strerror_debug(i32 noundef %10198, ptr noundef @.str.4)
  %10200 = call ptr @__errno_location() #11
  %10201 = load i32, ptr %10200, align 4, !tbaa !5
  %10202 = call ptr @strerror(i32 noundef %10201) #10
  %10203 = call ptr @__errno_location() #11
  %10204 = load i32, ptr %10203, align 4, !tbaa !5
  %10205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10192, ptr noundef @.str.2, i32 noundef %10193, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10196, ptr noundef %10199, ptr noundef %10202, i32 noundef %10204) #10
  br label %10223

10206:                                            ; preds = %10184, %10177
  %10207 = load i32, ptr %195, align 4, !tbaa !5
  %10208 = call ptr @__errno_location() #11
  store i32 %10207, ptr %10208, align 4, !tbaa !5
  %10209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10210 = load i32, ptr @test_count, align 4, !tbaa !5
  %10211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10212 = load i32, ptr %10211, align 4, !tbaa !5
  %10213 = call ptr @s2n_strerror(i32 noundef %10212, ptr noundef @.str.4)
  %10214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10215 = load i32, ptr %10214, align 4, !tbaa !5
  %10216 = call ptr @s2n_strerror_debug(i32 noundef %10215, ptr noundef @.str.4)
  %10217 = call ptr @__errno_location() #11
  %10218 = load i32, ptr %10217, align 4, !tbaa !5
  %10219 = call ptr @strerror(i32 noundef %10218) #10
  %10220 = call ptr @__errno_location() #11
  %10221 = load i32, ptr %10220, align 4, !tbaa !5
  %10222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10209, ptr noundef @.str.5, i32 noundef %10210, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10213, ptr noundef %10216, ptr noundef %10219, i32 noundef %10221) #10
  br label %10223

10223:                                            ; preds = %10206, %10189
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  br label %10224

10224:                                            ; preds = %10223
  br label %10225

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

10226:                                            ; No predecessors!
  br label %10227

10227:                                            ; preds = %10226
  br label %10228

10228:                                            ; preds = %10227, %10166
  br label %10229

10229:                                            ; preds = %10228
  br label %10230

10230:                                            ; preds = %10229
  br label %10231

10231:                                            ; preds = %10230
  %10232 = load i32, ptr @test_count, align 4, !tbaa !5
  %10233 = add nsw i32 %10232, 1
  store i32 %10233, ptr @test_count, align 4, !tbaa !5
  %10234 = load ptr, ptr %144, align 8, !tbaa !9
  %10235 = getelementptr inbounds %struct.s2n_config, ptr %10234, i32 0, i32 7
  %10236 = load ptr, ptr %10235, align 8, !tbaa !63
  %10237 = getelementptr inbounds %struct.s2n_security_policy, ptr %10236, i32 0, i32 2
  %10238 = load ptr, ptr %10237, align 8, !tbaa !20
  %10239 = icmp eq ptr %10238, @kem_preferences_null
  br i1 %10239, label %10293, label %10240

10240:                                            ; preds = %10231
  br label %10241

10241:                                            ; preds = %10240
  br label %10242

10242:                                            ; preds = %10241
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #10
  %10243 = call ptr @__errno_location() #11
  %10244 = load i32, ptr %10243, align 4, !tbaa !5
  store i32 %10244, ptr %196, align 4, !tbaa !5
  %10245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10246 = call i32 @s2n_print_stacktrace(ptr noundef %10245)
  %10247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10248 = trunc i8 %10247 to i1
  br i1 %10248, label %10249, label %10271

10249:                                            ; preds = %10242
  %10250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10251 = call i32 @fileno(ptr noundef %10250) #10
  %10252 = call i32 @isatty(i32 noundef %10251) #10
  %10253 = icmp ne i32 %10252, 0
  br i1 %10253, label %10254, label %10271

10254:                                            ; preds = %10249
  %10255 = load i32, ptr %196, align 4, !tbaa !5
  %10256 = call ptr @__errno_location() #11
  store i32 %10255, ptr %10256, align 4, !tbaa !5
  %10257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10258 = load i32, ptr @test_count, align 4, !tbaa !5
  %10259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10260 = load i32, ptr %10259, align 4, !tbaa !5
  %10261 = call ptr @s2n_strerror(i32 noundef %10260, ptr noundef @.str.4)
  %10262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10263 = load i32, ptr %10262, align 4, !tbaa !5
  %10264 = call ptr @s2n_strerror_debug(i32 noundef %10263, ptr noundef @.str.4)
  %10265 = call ptr @__errno_location() #11
  %10266 = load i32, ptr %10265, align 4, !tbaa !5
  %10267 = call ptr @strerror(i32 noundef %10266) #10
  %10268 = call ptr @__errno_location() #11
  %10269 = load i32, ptr %10268, align 4, !tbaa !5
  %10270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10257, ptr noundef @.str.2, i32 noundef %10258, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 520, ptr noundef %10261, ptr noundef %10264, ptr noundef %10267, i32 noundef %10269) #10
  br label %10288

10271:                                            ; preds = %10249, %10242
  %10272 = load i32, ptr %196, align 4, !tbaa !5
  %10273 = call ptr @__errno_location() #11
  store i32 %10272, ptr %10273, align 4, !tbaa !5
  %10274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10275 = load i32, ptr @test_count, align 4, !tbaa !5
  %10276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10277 = load i32, ptr %10276, align 4, !tbaa !5
  %10278 = call ptr @s2n_strerror(i32 noundef %10277, ptr noundef @.str.4)
  %10279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10280 = load i32, ptr %10279, align 4, !tbaa !5
  %10281 = call ptr @s2n_strerror_debug(i32 noundef %10280, ptr noundef @.str.4)
  %10282 = call ptr @__errno_location() #11
  %10283 = load i32, ptr %10282, align 4, !tbaa !5
  %10284 = call ptr @strerror(i32 noundef %10283) #10
  %10285 = call ptr @__errno_location() #11
  %10286 = load i32, ptr %10285, align 4, !tbaa !5
  %10287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10274, ptr noundef @.str.5, i32 noundef %10275, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 520, ptr noundef %10278, ptr noundef %10281, ptr noundef %10284, i32 noundef %10286) #10
  br label %10288

10288:                                            ; preds = %10271, %10254
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #10
  br label %10289

10289:                                            ; preds = %10288
  br label %10290

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

10291:                                            ; No predecessors!
  br label %10292

10292:                                            ; preds = %10291
  br label %10293

10293:                                            ; preds = %10292, %10231
  br label %10294

10294:                                            ; preds = %10293
  br label %10295

10295:                                            ; preds = %10294
  br label %10296

10296:                                            ; preds = %10295
  %10297 = load i32, ptr @test_count, align 4, !tbaa !5
  %10298 = add nsw i32 %10297, 1
  store i32 %10298, ptr @test_count, align 4, !tbaa !5
  %10299 = load ptr, ptr %144, align 8, !tbaa !9
  %10300 = getelementptr inbounds %struct.s2n_config, ptr %10299, i32 0, i32 7
  %10301 = load ptr, ptr %10300, align 8, !tbaa !63
  %10302 = getelementptr inbounds %struct.s2n_security_policy, ptr %10301, i32 0, i32 3
  %10303 = load ptr, ptr %10302, align 8, !tbaa !38
  %10304 = icmp eq ptr %10303, @s2n_signature_preferences_20200207
  br i1 %10304, label %10358, label %10305

10305:                                            ; preds = %10296
  br label %10306

10306:                                            ; preds = %10305
  br label %10307

10307:                                            ; preds = %10306
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #10
  %10308 = call ptr @__errno_location() #11
  %10309 = load i32, ptr %10308, align 4, !tbaa !5
  store i32 %10309, ptr %197, align 4, !tbaa !5
  %10310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10311 = call i32 @s2n_print_stacktrace(ptr noundef %10310)
  %10312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10313 = trunc i8 %10312 to i1
  br i1 %10313, label %10314, label %10336

10314:                                            ; preds = %10307
  %10315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10316 = call i32 @fileno(ptr noundef %10315) #10
  %10317 = call i32 @isatty(i32 noundef %10316) #10
  %10318 = icmp ne i32 %10317, 0
  br i1 %10318, label %10319, label %10336

10319:                                            ; preds = %10314
  %10320 = load i32, ptr %197, align 4, !tbaa !5
  %10321 = call ptr @__errno_location() #11
  store i32 %10320, ptr %10321, align 4, !tbaa !5
  %10322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10323 = load i32, ptr @test_count, align 4, !tbaa !5
  %10324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10325 = load i32, ptr %10324, align 4, !tbaa !5
  %10326 = call ptr @s2n_strerror(i32 noundef %10325, ptr noundef @.str.4)
  %10327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10328 = load i32, ptr %10327, align 4, !tbaa !5
  %10329 = call ptr @s2n_strerror_debug(i32 noundef %10328, ptr noundef @.str.4)
  %10330 = call ptr @__errno_location() #11
  %10331 = load i32, ptr %10330, align 4, !tbaa !5
  %10332 = call ptr @strerror(i32 noundef %10331) #10
  %10333 = call ptr @__errno_location() #11
  %10334 = load i32, ptr %10333, align 4, !tbaa !5
  %10335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10322, ptr noundef @.str.2, i32 noundef %10323, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 521, ptr noundef %10326, ptr noundef %10329, ptr noundef %10332, i32 noundef %10334) #10
  br label %10353

10336:                                            ; preds = %10314, %10307
  %10337 = load i32, ptr %197, align 4, !tbaa !5
  %10338 = call ptr @__errno_location() #11
  store i32 %10337, ptr %10338, align 4, !tbaa !5
  %10339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10340 = load i32, ptr @test_count, align 4, !tbaa !5
  %10341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10342 = load i32, ptr %10341, align 4, !tbaa !5
  %10343 = call ptr @s2n_strerror(i32 noundef %10342, ptr noundef @.str.4)
  %10344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10345 = load i32, ptr %10344, align 4, !tbaa !5
  %10346 = call ptr @s2n_strerror_debug(i32 noundef %10345, ptr noundef @.str.4)
  %10347 = call ptr @__errno_location() #11
  %10348 = load i32, ptr %10347, align 4, !tbaa !5
  %10349 = call ptr @strerror(i32 noundef %10348) #10
  %10350 = call ptr @__errno_location() #11
  %10351 = load i32, ptr %10350, align 4, !tbaa !5
  %10352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10339, ptr noundef @.str.5, i32 noundef %10340, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 521, ptr noundef %10343, ptr noundef %10346, ptr noundef %10349, i32 noundef %10351) #10
  br label %10353

10353:                                            ; preds = %10336, %10319
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #10
  br label %10354

10354:                                            ; preds = %10353
  br label %10355

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

10356:                                            ; No predecessors!
  br label %10357

10357:                                            ; preds = %10356
  br label %10358

10358:                                            ; preds = %10357, %10296
  br label %10359

10359:                                            ; preds = %10358
  br label %10360

10360:                                            ; preds = %10359
  br label %10361

10361:                                            ; preds = %10360
  %10362 = load i32, ptr @test_count, align 4, !tbaa !5
  %10363 = add nsw i32 %10362, 1
  store i32 %10363, ptr @test_count, align 4, !tbaa !5
  %10364 = load ptr, ptr %144, align 8, !tbaa !9
  %10365 = getelementptr inbounds %struct.s2n_config, ptr %10364, i32 0, i32 7
  %10366 = load ptr, ptr %10365, align 8, !tbaa !63
  %10367 = getelementptr inbounds %struct.s2n_security_policy, ptr %10366, i32 0, i32 5
  %10368 = load ptr, ptr %10367, align 8, !tbaa !60
  %10369 = icmp eq ptr %10368, @s2n_ecc_preferences_20200310
  br i1 %10369, label %10423, label %10370

10370:                                            ; preds = %10361
  br label %10371

10371:                                            ; preds = %10370
  br label %10372

10372:                                            ; preds = %10371
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %10373 = call ptr @__errno_location() #11
  %10374 = load i32, ptr %10373, align 4, !tbaa !5
  store i32 %10374, ptr %198, align 4, !tbaa !5
  %10375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10376 = call i32 @s2n_print_stacktrace(ptr noundef %10375)
  %10377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10378 = trunc i8 %10377 to i1
  br i1 %10378, label %10379, label %10401

10379:                                            ; preds = %10372
  %10380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10381 = call i32 @fileno(ptr noundef %10380) #10
  %10382 = call i32 @isatty(i32 noundef %10381) #10
  %10383 = icmp ne i32 %10382, 0
  br i1 %10383, label %10384, label %10401

10384:                                            ; preds = %10379
  %10385 = load i32, ptr %198, align 4, !tbaa !5
  %10386 = call ptr @__errno_location() #11
  store i32 %10385, ptr %10386, align 4, !tbaa !5
  %10387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10388 = load i32, ptr @test_count, align 4, !tbaa !5
  %10389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10390 = load i32, ptr %10389, align 4, !tbaa !5
  %10391 = call ptr @s2n_strerror(i32 noundef %10390, ptr noundef @.str.4)
  %10392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10393 = load i32, ptr %10392, align 4, !tbaa !5
  %10394 = call ptr @s2n_strerror_debug(i32 noundef %10393, ptr noundef @.str.4)
  %10395 = call ptr @__errno_location() #11
  %10396 = load i32, ptr %10395, align 4, !tbaa !5
  %10397 = call ptr @strerror(i32 noundef %10396) #10
  %10398 = call ptr @__errno_location() #11
  %10399 = load i32, ptr %10398, align 4, !tbaa !5
  %10400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10387, ptr noundef @.str.2, i32 noundef %10388, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10391, ptr noundef %10394, ptr noundef %10397, i32 noundef %10399) #10
  br label %10418

10401:                                            ; preds = %10379, %10372
  %10402 = load i32, ptr %198, align 4, !tbaa !5
  %10403 = call ptr @__errno_location() #11
  store i32 %10402, ptr %10403, align 4, !tbaa !5
  %10404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10405 = load i32, ptr @test_count, align 4, !tbaa !5
  %10406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10407 = load i32, ptr %10406, align 4, !tbaa !5
  %10408 = call ptr @s2n_strerror(i32 noundef %10407, ptr noundef @.str.4)
  %10409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10410 = load i32, ptr %10409, align 4, !tbaa !5
  %10411 = call ptr @s2n_strerror_debug(i32 noundef %10410, ptr noundef @.str.4)
  %10412 = call ptr @__errno_location() #11
  %10413 = load i32, ptr %10412, align 4, !tbaa !5
  %10414 = call ptr @strerror(i32 noundef %10413) #10
  %10415 = call ptr @__errno_location() #11
  %10416 = load i32, ptr %10415, align 4, !tbaa !5
  %10417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10404, ptr noundef @.str.5, i32 noundef %10405, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10408, ptr noundef %10411, ptr noundef %10414, i32 noundef %10416) #10
  br label %10418

10418:                                            ; preds = %10401, %10384
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %10419

10419:                                            ; preds = %10418
  br label %10420

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

10421:                                            ; No predecessors!
  br label %10422

10422:                                            ; preds = %10421
  br label %10423

10423:                                            ; preds = %10422, %10361
  br label %10424

10424:                                            ; preds = %10423
  br label %10425

10425:                                            ; preds = %10424
  %10426 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %10426, label %10427, label %10813

10427:                                            ; preds = %10425
  br label %10428

10428:                                            ; preds = %10427
  %10429 = load i32, ptr @test_count, align 4, !tbaa !5
  %10430 = add nsw i32 %10429, 1
  store i32 %10430, ptr @test_count, align 4, !tbaa !5
  %10431 = load ptr, ptr %144, align 8, !tbaa !9
  %10432 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %10431, ptr noundef @.str.125)
  %10433 = icmp eq i32 %10432, -1
  br i1 %10433, label %10434, label %10487

10434:                                            ; preds = %10428
  br label %10435

10435:                                            ; preds = %10434
  br label %10436

10436:                                            ; preds = %10435
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #10
  %10437 = call ptr @__errno_location() #11
  %10438 = load i32, ptr %10437, align 4, !tbaa !5
  store i32 %10438, ptr %199, align 4, !tbaa !5
  %10439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10440 = call i32 @s2n_print_stacktrace(ptr noundef %10439)
  %10441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10442 = trunc i8 %10441 to i1
  br i1 %10442, label %10443, label %10465

10443:                                            ; preds = %10436
  %10444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10445 = call i32 @fileno(ptr noundef %10444) #10
  %10446 = call i32 @isatty(i32 noundef %10445) #10
  %10447 = icmp ne i32 %10446, 0
  br i1 %10447, label %10448, label %10465

10448:                                            ; preds = %10443
  %10449 = load i32, ptr %199, align 4, !tbaa !5
  %10450 = call ptr @__errno_location() #11
  store i32 %10449, ptr %10450, align 4, !tbaa !5
  %10451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10452 = load i32, ptr @test_count, align 4, !tbaa !5
  %10453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10454 = load i32, ptr %10453, align 4, !tbaa !5
  %10455 = call ptr @s2n_strerror(i32 noundef %10454, ptr noundef @.str.4)
  %10456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10457 = load i32, ptr %10456, align 4, !tbaa !5
  %10458 = call ptr @s2n_strerror_debug(i32 noundef %10457, ptr noundef @.str.4)
  %10459 = call ptr @__errno_location() #11
  %10460 = load i32, ptr %10459, align 4, !tbaa !5
  %10461 = call ptr @strerror(i32 noundef %10460) #10
  %10462 = call ptr @__errno_location() #11
  %10463 = load i32, ptr %10462, align 4, !tbaa !5
  %10464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10451, ptr noundef @.str.2, i32 noundef %10452, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10455, ptr noundef %10458, ptr noundef %10461, i32 noundef %10463) #10
  br label %10482

10465:                                            ; preds = %10443, %10436
  %10466 = load i32, ptr %199, align 4, !tbaa !5
  %10467 = call ptr @__errno_location() #11
  store i32 %10466, ptr %10467, align 4, !tbaa !5
  %10468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10469 = load i32, ptr @test_count, align 4, !tbaa !5
  %10470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10471 = load i32, ptr %10470, align 4, !tbaa !5
  %10472 = call ptr @s2n_strerror(i32 noundef %10471, ptr noundef @.str.4)
  %10473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10474 = load i32, ptr %10473, align 4, !tbaa !5
  %10475 = call ptr @s2n_strerror_debug(i32 noundef %10474, ptr noundef @.str.4)
  %10476 = call ptr @__errno_location() #11
  %10477 = load i32, ptr %10476, align 4, !tbaa !5
  %10478 = call ptr @strerror(i32 noundef %10477) #10
  %10479 = call ptr @__errno_location() #11
  %10480 = load i32, ptr %10479, align 4, !tbaa !5
  %10481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10468, ptr noundef @.str.5, i32 noundef %10469, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10472, ptr noundef %10475, ptr noundef %10478, i32 noundef %10480) #10
  br label %10482

10482:                                            ; preds = %10465, %10448
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #10
  br label %10483

10483:                                            ; preds = %10482
  br label %10484

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

10485:                                            ; No predecessors!
  br label %10486

10486:                                            ; preds = %10485
  br label %10487

10487:                                            ; preds = %10486, %10428
  br label %10488

10488:                                            ; preds = %10487
  br label %10489

10489:                                            ; preds = %10488
  br label %10490

10490:                                            ; preds = %10489
  %10491 = load i32, ptr @test_count, align 4, !tbaa !5
  %10492 = add nsw i32 %10491, 1
  store i32 %10492, ptr @test_count, align 4, !tbaa !5
  %10493 = load ptr, ptr %144, align 8, !tbaa !9
  %10494 = getelementptr inbounds %struct.s2n_config, ptr %10493, i32 0, i32 7
  %10495 = load ptr, ptr %10494, align 8, !tbaa !63
  %10496 = icmp eq ptr %10495, @security_policy_aws_crt_sdk_tls_13
  br i1 %10496, label %10550, label %10497

10497:                                            ; preds = %10490
  br label %10498

10498:                                            ; preds = %10497
  br label %10499

10499:                                            ; preds = %10498
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  %10500 = call ptr @__errno_location() #11
  %10501 = load i32, ptr %10500, align 4, !tbaa !5
  store i32 %10501, ptr %200, align 4, !tbaa !5
  %10502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10503 = call i32 @s2n_print_stacktrace(ptr noundef %10502)
  %10504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10505 = trunc i8 %10504 to i1
  br i1 %10505, label %10506, label %10528

10506:                                            ; preds = %10499
  %10507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10508 = call i32 @fileno(ptr noundef %10507) #10
  %10509 = call i32 @isatty(i32 noundef %10508) #10
  %10510 = icmp ne i32 %10509, 0
  br i1 %10510, label %10511, label %10528

10511:                                            ; preds = %10506
  %10512 = load i32, ptr %200, align 4, !tbaa !5
  %10513 = call ptr @__errno_location() #11
  store i32 %10512, ptr %10513, align 4, !tbaa !5
  %10514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10515 = load i32, ptr @test_count, align 4, !tbaa !5
  %10516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10517 = load i32, ptr %10516, align 4, !tbaa !5
  %10518 = call ptr @s2n_strerror(i32 noundef %10517, ptr noundef @.str.4)
  %10519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10520 = load i32, ptr %10519, align 4, !tbaa !5
  %10521 = call ptr @s2n_strerror_debug(i32 noundef %10520, ptr noundef @.str.4)
  %10522 = call ptr @__errno_location() #11
  %10523 = load i32, ptr %10522, align 4, !tbaa !5
  %10524 = call ptr @strerror(i32 noundef %10523) #10
  %10525 = call ptr @__errno_location() #11
  %10526 = load i32, ptr %10525, align 4, !tbaa !5
  %10527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10514, ptr noundef @.str.2, i32 noundef %10515, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 526, ptr noundef %10518, ptr noundef %10521, ptr noundef %10524, i32 noundef %10526) #10
  br label %10545

10528:                                            ; preds = %10506, %10499
  %10529 = load i32, ptr %200, align 4, !tbaa !5
  %10530 = call ptr @__errno_location() #11
  store i32 %10529, ptr %10530, align 4, !tbaa !5
  %10531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10532 = load i32, ptr @test_count, align 4, !tbaa !5
  %10533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10534 = load i32, ptr %10533, align 4, !tbaa !5
  %10535 = call ptr @s2n_strerror(i32 noundef %10534, ptr noundef @.str.4)
  %10536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10537 = load i32, ptr %10536, align 4, !tbaa !5
  %10538 = call ptr @s2n_strerror_debug(i32 noundef %10537, ptr noundef @.str.4)
  %10539 = call ptr @__errno_location() #11
  %10540 = load i32, ptr %10539, align 4, !tbaa !5
  %10541 = call ptr @strerror(i32 noundef %10540) #10
  %10542 = call ptr @__errno_location() #11
  %10543 = load i32, ptr %10542, align 4, !tbaa !5
  %10544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10531, ptr noundef @.str.5, i32 noundef %10532, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 526, ptr noundef %10535, ptr noundef %10538, ptr noundef %10541, i32 noundef %10543) #10
  br label %10545

10545:                                            ; preds = %10528, %10511
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br label %10546

10546:                                            ; preds = %10545
  br label %10547

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

10548:                                            ; No predecessors!
  br label %10549

10549:                                            ; preds = %10548
  br label %10550

10550:                                            ; preds = %10549, %10490
  br label %10551

10551:                                            ; preds = %10550
  br label %10552

10552:                                            ; preds = %10551
  br label %10553

10553:                                            ; preds = %10552
  %10554 = load i32, ptr @test_count, align 4, !tbaa !5
  %10555 = add nsw i32 %10554, 1
  store i32 %10555, ptr @test_count, align 4, !tbaa !5
  %10556 = load ptr, ptr %144, align 8, !tbaa !9
  %10557 = getelementptr inbounds %struct.s2n_config, ptr %10556, i32 0, i32 7
  %10558 = load ptr, ptr %10557, align 8, !tbaa !63
  %10559 = getelementptr inbounds %struct.s2n_security_policy, ptr %10558, i32 0, i32 1
  %10560 = load ptr, ptr %10559, align 8, !tbaa !31
  %10561 = icmp eq ptr %10560, @cipher_preferences_aws_crt_sdk_tls_13
  br i1 %10561, label %10615, label %10562

10562:                                            ; preds = %10553
  br label %10563

10563:                                            ; preds = %10562
  br label %10564

10564:                                            ; preds = %10563
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %10565 = call ptr @__errno_location() #11
  %10566 = load i32, ptr %10565, align 4, !tbaa !5
  store i32 %10566, ptr %201, align 4, !tbaa !5
  %10567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10568 = call i32 @s2n_print_stacktrace(ptr noundef %10567)
  %10569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10570 = trunc i8 %10569 to i1
  br i1 %10570, label %10571, label %10593

10571:                                            ; preds = %10564
  %10572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10573 = call i32 @fileno(ptr noundef %10572) #10
  %10574 = call i32 @isatty(i32 noundef %10573) #10
  %10575 = icmp ne i32 %10574, 0
  br i1 %10575, label %10576, label %10593

10576:                                            ; preds = %10571
  %10577 = load i32, ptr %201, align 4, !tbaa !5
  %10578 = call ptr @__errno_location() #11
  store i32 %10577, ptr %10578, align 4, !tbaa !5
  %10579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10580 = load i32, ptr @test_count, align 4, !tbaa !5
  %10581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10582 = load i32, ptr %10581, align 4, !tbaa !5
  %10583 = call ptr @s2n_strerror(i32 noundef %10582, ptr noundef @.str.4)
  %10584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10585 = load i32, ptr %10584, align 4, !tbaa !5
  %10586 = call ptr @s2n_strerror_debug(i32 noundef %10585, ptr noundef @.str.4)
  %10587 = call ptr @__errno_location() #11
  %10588 = load i32, ptr %10587, align 4, !tbaa !5
  %10589 = call ptr @strerror(i32 noundef %10588) #10
  %10590 = call ptr @__errno_location() #11
  %10591 = load i32, ptr %10590, align 4, !tbaa !5
  %10592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10579, ptr noundef @.str.2, i32 noundef %10580, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 527, ptr noundef %10583, ptr noundef %10586, ptr noundef %10589, i32 noundef %10591) #10
  br label %10610

10593:                                            ; preds = %10571, %10564
  %10594 = load i32, ptr %201, align 4, !tbaa !5
  %10595 = call ptr @__errno_location() #11
  store i32 %10594, ptr %10595, align 4, !tbaa !5
  %10596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10597 = load i32, ptr @test_count, align 4, !tbaa !5
  %10598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10599 = load i32, ptr %10598, align 4, !tbaa !5
  %10600 = call ptr @s2n_strerror(i32 noundef %10599, ptr noundef @.str.4)
  %10601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10602 = load i32, ptr %10601, align 4, !tbaa !5
  %10603 = call ptr @s2n_strerror_debug(i32 noundef %10602, ptr noundef @.str.4)
  %10604 = call ptr @__errno_location() #11
  %10605 = load i32, ptr %10604, align 4, !tbaa !5
  %10606 = call ptr @strerror(i32 noundef %10605) #10
  %10607 = call ptr @__errno_location() #11
  %10608 = load i32, ptr %10607, align 4, !tbaa !5
  %10609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10596, ptr noundef @.str.5, i32 noundef %10597, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 527, ptr noundef %10600, ptr noundef %10603, ptr noundef %10606, i32 noundef %10608) #10
  br label %10610

10610:                                            ; preds = %10593, %10576
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %10611

10611:                                            ; preds = %10610
  br label %10612

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

10613:                                            ; No predecessors!
  br label %10614

10614:                                            ; preds = %10613
  br label %10615

10615:                                            ; preds = %10614, %10553
  br label %10616

10616:                                            ; preds = %10615
  br label %10617

10617:                                            ; preds = %10616
  br label %10618

10618:                                            ; preds = %10617
  %10619 = load i32, ptr @test_count, align 4, !tbaa !5
  %10620 = add nsw i32 %10619, 1
  store i32 %10620, ptr @test_count, align 4, !tbaa !5
  %10621 = load ptr, ptr %144, align 8, !tbaa !9
  %10622 = getelementptr inbounds %struct.s2n_config, ptr %10621, i32 0, i32 7
  %10623 = load ptr, ptr %10622, align 8, !tbaa !63
  %10624 = getelementptr inbounds %struct.s2n_security_policy, ptr %10623, i32 0, i32 2
  %10625 = load ptr, ptr %10624, align 8, !tbaa !20
  %10626 = icmp eq ptr %10625, @kem_preferences_null
  br i1 %10626, label %10680, label %10627

10627:                                            ; preds = %10618
  br label %10628

10628:                                            ; preds = %10627
  br label %10629

10629:                                            ; preds = %10628
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #10
  %10630 = call ptr @__errno_location() #11
  %10631 = load i32, ptr %10630, align 4, !tbaa !5
  store i32 %10631, ptr %202, align 4, !tbaa !5
  %10632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10633 = call i32 @s2n_print_stacktrace(ptr noundef %10632)
  %10634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10635 = trunc i8 %10634 to i1
  br i1 %10635, label %10636, label %10658

10636:                                            ; preds = %10629
  %10637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10638 = call i32 @fileno(ptr noundef %10637) #10
  %10639 = call i32 @isatty(i32 noundef %10638) #10
  %10640 = icmp ne i32 %10639, 0
  br i1 %10640, label %10641, label %10658

10641:                                            ; preds = %10636
  %10642 = load i32, ptr %202, align 4, !tbaa !5
  %10643 = call ptr @__errno_location() #11
  store i32 %10642, ptr %10643, align 4, !tbaa !5
  %10644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10645 = load i32, ptr @test_count, align 4, !tbaa !5
  %10646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  %10648 = call ptr @s2n_strerror(i32 noundef %10647, ptr noundef @.str.4)
  %10649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10650 = load i32, ptr %10649, align 4, !tbaa !5
  %10651 = call ptr @s2n_strerror_debug(i32 noundef %10650, ptr noundef @.str.4)
  %10652 = call ptr @__errno_location() #11
  %10653 = load i32, ptr %10652, align 4, !tbaa !5
  %10654 = call ptr @strerror(i32 noundef %10653) #10
  %10655 = call ptr @__errno_location() #11
  %10656 = load i32, ptr %10655, align 4, !tbaa !5
  %10657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10644, ptr noundef @.str.2, i32 noundef %10645, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 528, ptr noundef %10648, ptr noundef %10651, ptr noundef %10654, i32 noundef %10656) #10
  br label %10675

10658:                                            ; preds = %10636, %10629
  %10659 = load i32, ptr %202, align 4, !tbaa !5
  %10660 = call ptr @__errno_location() #11
  store i32 %10659, ptr %10660, align 4, !tbaa !5
  %10661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10662 = load i32, ptr @test_count, align 4, !tbaa !5
  %10663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10664 = load i32, ptr %10663, align 4, !tbaa !5
  %10665 = call ptr @s2n_strerror(i32 noundef %10664, ptr noundef @.str.4)
  %10666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10667 = load i32, ptr %10666, align 4, !tbaa !5
  %10668 = call ptr @s2n_strerror_debug(i32 noundef %10667, ptr noundef @.str.4)
  %10669 = call ptr @__errno_location() #11
  %10670 = load i32, ptr %10669, align 4, !tbaa !5
  %10671 = call ptr @strerror(i32 noundef %10670) #10
  %10672 = call ptr @__errno_location() #11
  %10673 = load i32, ptr %10672, align 4, !tbaa !5
  %10674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10661, ptr noundef @.str.5, i32 noundef %10662, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 528, ptr noundef %10665, ptr noundef %10668, ptr noundef %10671, i32 noundef %10673) #10
  br label %10675

10675:                                            ; preds = %10658, %10641
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #10
  br label %10676

10676:                                            ; preds = %10675
  br label %10677

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

10678:                                            ; No predecessors!
  br label %10679

10679:                                            ; preds = %10678
  br label %10680

10680:                                            ; preds = %10679, %10618
  br label %10681

10681:                                            ; preds = %10680
  br label %10682

10682:                                            ; preds = %10681
  br label %10683

10683:                                            ; preds = %10682
  %10684 = load i32, ptr @test_count, align 4, !tbaa !5
  %10685 = add nsw i32 %10684, 1
  store i32 %10685, ptr @test_count, align 4, !tbaa !5
  %10686 = load ptr, ptr %144, align 8, !tbaa !9
  %10687 = getelementptr inbounds %struct.s2n_config, ptr %10686, i32 0, i32 7
  %10688 = load ptr, ptr %10687, align 8, !tbaa !63
  %10689 = getelementptr inbounds %struct.s2n_security_policy, ptr %10688, i32 0, i32 3
  %10690 = load ptr, ptr %10689, align 8, !tbaa !38
  %10691 = icmp eq ptr %10690, @s2n_signature_preferences_20200207
  br i1 %10691, label %10745, label %10692

10692:                                            ; preds = %10683
  br label %10693

10693:                                            ; preds = %10692
  br label %10694

10694:                                            ; preds = %10693
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #10
  %10695 = call ptr @__errno_location() #11
  %10696 = load i32, ptr %10695, align 4, !tbaa !5
  store i32 %10696, ptr %203, align 4, !tbaa !5
  %10697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10698 = call i32 @s2n_print_stacktrace(ptr noundef %10697)
  %10699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10700 = trunc i8 %10699 to i1
  br i1 %10700, label %10701, label %10723

10701:                                            ; preds = %10694
  %10702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10703 = call i32 @fileno(ptr noundef %10702) #10
  %10704 = call i32 @isatty(i32 noundef %10703) #10
  %10705 = icmp ne i32 %10704, 0
  br i1 %10705, label %10706, label %10723

10706:                                            ; preds = %10701
  %10707 = load i32, ptr %203, align 4, !tbaa !5
  %10708 = call ptr @__errno_location() #11
  store i32 %10707, ptr %10708, align 4, !tbaa !5
  %10709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10710 = load i32, ptr @test_count, align 4, !tbaa !5
  %10711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10712 = load i32, ptr %10711, align 4, !tbaa !5
  %10713 = call ptr @s2n_strerror(i32 noundef %10712, ptr noundef @.str.4)
  %10714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10715 = load i32, ptr %10714, align 4, !tbaa !5
  %10716 = call ptr @s2n_strerror_debug(i32 noundef %10715, ptr noundef @.str.4)
  %10717 = call ptr @__errno_location() #11
  %10718 = load i32, ptr %10717, align 4, !tbaa !5
  %10719 = call ptr @strerror(i32 noundef %10718) #10
  %10720 = call ptr @__errno_location() #11
  %10721 = load i32, ptr %10720, align 4, !tbaa !5
  %10722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10709, ptr noundef @.str.2, i32 noundef %10710, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 529, ptr noundef %10713, ptr noundef %10716, ptr noundef %10719, i32 noundef %10721) #10
  br label %10740

10723:                                            ; preds = %10701, %10694
  %10724 = load i32, ptr %203, align 4, !tbaa !5
  %10725 = call ptr @__errno_location() #11
  store i32 %10724, ptr %10725, align 4, !tbaa !5
  %10726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10727 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %10729, ptr noundef @.str.4)
  %10731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10732 = load i32, ptr %10731, align 4, !tbaa !5
  %10733 = call ptr @s2n_strerror_debug(i32 noundef %10732, ptr noundef @.str.4)
  %10734 = call ptr @__errno_location() #11
  %10735 = load i32, ptr %10734, align 4, !tbaa !5
  %10736 = call ptr @strerror(i32 noundef %10735) #10
  %10737 = call ptr @__errno_location() #11
  %10738 = load i32, ptr %10737, align 4, !tbaa !5
  %10739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10726, ptr noundef @.str.5, i32 noundef %10727, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 529, ptr noundef %10730, ptr noundef %10733, ptr noundef %10736, i32 noundef %10738) #10
  br label %10740

10740:                                            ; preds = %10723, %10706
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #10
  br label %10741

10741:                                            ; preds = %10740
  br label %10742

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

10743:                                            ; No predecessors!
  br label %10744

10744:                                            ; preds = %10743
  br label %10745

10745:                                            ; preds = %10744, %10683
  br label %10746

10746:                                            ; preds = %10745
  br label %10747

10747:                                            ; preds = %10746
  br label %10748

10748:                                            ; preds = %10747
  %10749 = load i32, ptr @test_count, align 4, !tbaa !5
  %10750 = add nsw i32 %10749, 1
  store i32 %10750, ptr @test_count, align 4, !tbaa !5
  %10751 = load ptr, ptr %144, align 8, !tbaa !9
  %10752 = getelementptr inbounds %struct.s2n_config, ptr %10751, i32 0, i32 7
  %10753 = load ptr, ptr %10752, align 8, !tbaa !63
  %10754 = getelementptr inbounds %struct.s2n_security_policy, ptr %10753, i32 0, i32 5
  %10755 = load ptr, ptr %10754, align 8, !tbaa !60
  %10756 = icmp eq ptr %10755, @s2n_ecc_preferences_20200310
  br i1 %10756, label %10810, label %10757

10757:                                            ; preds = %10748
  br label %10758

10758:                                            ; preds = %10757
  br label %10759

10759:                                            ; preds = %10758
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #10
  %10760 = call ptr @__errno_location() #11
  %10761 = load i32, ptr %10760, align 4, !tbaa !5
  store i32 %10761, ptr %204, align 4, !tbaa !5
  %10762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10763 = call i32 @s2n_print_stacktrace(ptr noundef %10762)
  %10764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10765 = trunc i8 %10764 to i1
  br i1 %10765, label %10766, label %10788

10766:                                            ; preds = %10759
  %10767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10768 = call i32 @fileno(ptr noundef %10767) #10
  %10769 = call i32 @isatty(i32 noundef %10768) #10
  %10770 = icmp ne i32 %10769, 0
  br i1 %10770, label %10771, label %10788

10771:                                            ; preds = %10766
  %10772 = load i32, ptr %204, align 4, !tbaa !5
  %10773 = call ptr @__errno_location() #11
  store i32 %10772, ptr %10773, align 4, !tbaa !5
  %10774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10775 = load i32, ptr @test_count, align 4, !tbaa !5
  %10776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10777 = load i32, ptr %10776, align 4, !tbaa !5
  %10778 = call ptr @s2n_strerror(i32 noundef %10777, ptr noundef @.str.4)
  %10779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10780 = load i32, ptr %10779, align 4, !tbaa !5
  %10781 = call ptr @s2n_strerror_debug(i32 noundef %10780, ptr noundef @.str.4)
  %10782 = call ptr @__errno_location() #11
  %10783 = load i32, ptr %10782, align 4, !tbaa !5
  %10784 = call ptr @strerror(i32 noundef %10783) #10
  %10785 = call ptr @__errno_location() #11
  %10786 = load i32, ptr %10785, align 4, !tbaa !5
  %10787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10774, ptr noundef @.str.2, i32 noundef %10775, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 530, ptr noundef %10778, ptr noundef %10781, ptr noundef %10784, i32 noundef %10786) #10
  br label %10805

10788:                                            ; preds = %10766, %10759
  %10789 = load i32, ptr %204, align 4, !tbaa !5
  %10790 = call ptr @__errno_location() #11
  store i32 %10789, ptr %10790, align 4, !tbaa !5
  %10791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10792 = load i32, ptr @test_count, align 4, !tbaa !5
  %10793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10794 = load i32, ptr %10793, align 4, !tbaa !5
  %10795 = call ptr @s2n_strerror(i32 noundef %10794, ptr noundef @.str.4)
  %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_debug(i32 noundef %10797, ptr noundef @.str.4)
  %10799 = call ptr @__errno_location() #11
  %10800 = load i32, ptr %10799, align 4, !tbaa !5
  %10801 = call ptr @strerror(i32 noundef %10800) #10
  %10802 = call ptr @__errno_location() #11
  %10803 = load i32, ptr %10802, align 4, !tbaa !5
  %10804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10791, ptr noundef @.str.5, i32 noundef %10792, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 530, ptr noundef %10795, ptr noundef %10798, ptr noundef %10801, i32 noundef %10803) #10
  br label %10805

10805:                                            ; preds = %10788, %10771
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #10
  br label %10806

10806:                                            ; preds = %10805
  br label %10807

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

10808:                                            ; No predecessors!
  br label %10809

10809:                                            ; preds = %10808
  br label %10810

10810:                                            ; preds = %10809, %10748
  br label %10811

10811:                                            ; preds = %10810
  br label %10812

10812:                                            ; preds = %10811
  br label %11009

10813:                                            ; preds = %10425
  br label %10814

10814:                                            ; preds = %10813
  br label %10815

10815:                                            ; preds = %10814
  %10816 = load i32, ptr @test_count, align 4, !tbaa !5
  %10817 = add nsw i32 %10816, 1
  store i32 %10817, ptr @test_count, align 4, !tbaa !5
  %10818 = load ptr, ptr %144, align 8, !tbaa !9
  %10819 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %10818, ptr noundef @.str.125)
  %10820 = icmp eq i32 %10819, -1
  br i1 %10820, label %10874, label %10821

10821:                                            ; preds = %10815
  br label %10822

10822:                                            ; preds = %10821
  br label %10823

10823:                                            ; preds = %10822
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #10
  %10824 = call ptr @__errno_location() #11
  %10825 = load i32, ptr %10824, align 4, !tbaa !5
  store i32 %10825, ptr %205, align 4, !tbaa !5
  %10826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10827 = call i32 @s2n_print_stacktrace(ptr noundef %10826)
  %10828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10829 = trunc i8 %10828 to i1
  br i1 %10829, label %10830, label %10852

10830:                                            ; preds = %10823
  %10831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10832 = call i32 @fileno(ptr noundef %10831) #10
  %10833 = call i32 @isatty(i32 noundef %10832) #10
  %10834 = icmp ne i32 %10833, 0
  br i1 %10834, label %10835, label %10852

10835:                                            ; preds = %10830
  %10836 = load i32, ptr %205, align 4, !tbaa !5
  %10837 = call ptr @__errno_location() #11
  store i32 %10836, ptr %10837, align 4, !tbaa !5
  %10838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10839 = load i32, ptr @test_count, align 4, !tbaa !5
  %10840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10841 = load i32, ptr %10840, align 4, !tbaa !5
  %10842 = call ptr @s2n_strerror(i32 noundef %10841, ptr noundef @.str.4)
  %10843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10844 = load i32, ptr %10843, align 4, !tbaa !5
  %10845 = call ptr @s2n_strerror_debug(i32 noundef %10844, ptr noundef @.str.4)
  %10846 = call ptr @__errno_location() #11
  %10847 = load i32, ptr %10846, align 4, !tbaa !5
  %10848 = call ptr @strerror(i32 noundef %10847) #10
  %10849 = call ptr @__errno_location() #11
  %10850 = load i32, ptr %10849, align 4, !tbaa !5
  %10851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10838, ptr noundef @.str.2, i32 noundef %10839, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10842, ptr noundef %10845, ptr noundef %10848, i32 noundef %10850) #10
  br label %10869

10852:                                            ; preds = %10830, %10823
  %10853 = load i32, ptr %205, align 4, !tbaa !5
  %10854 = call ptr @__errno_location() #11
  store i32 %10853, ptr %10854, align 4, !tbaa !5
  %10855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10856 = load i32, ptr @test_count, align 4, !tbaa !5
  %10857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10858 = load i32, ptr %10857, align 4, !tbaa !5
  %10859 = call ptr @s2n_strerror(i32 noundef %10858, ptr noundef @.str.4)
  %10860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10861 = load i32, ptr %10860, align 4, !tbaa !5
  %10862 = call ptr @s2n_strerror_debug(i32 noundef %10861, ptr noundef @.str.4)
  %10863 = call ptr @__errno_location() #11
  %10864 = load i32, ptr %10863, align 4, !tbaa !5
  %10865 = call ptr @strerror(i32 noundef %10864) #10
  %10866 = call ptr @__errno_location() #11
  %10867 = load i32, ptr %10866, align 4, !tbaa !5
  %10868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10855, ptr noundef @.str.5, i32 noundef %10856, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10859, ptr noundef %10862, ptr noundef %10865, i32 noundef %10867) #10
  br label %10869

10869:                                            ; preds = %10852, %10835
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #10
  br label %10870

10870:                                            ; preds = %10869
  br label %10871

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

10872:                                            ; No predecessors!
  br label %10873

10873:                                            ; preds = %10872
  br label %10874

10874:                                            ; preds = %10873, %10815
  br label %10875

10875:                                            ; preds = %10874
  br label %10876

10876:                                            ; preds = %10875
  br label %10877

10877:                                            ; preds = %10876
  %10878 = load i32, ptr @test_count, align 4, !tbaa !5
  %10879 = add nsw i32 %10878, 1
  store i32 %10879, ptr @test_count, align 4, !tbaa !5
  %10880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10881 = load i32, ptr %10880, align 4, !tbaa !5
  %10882 = icmp eq i32 %10881, 0
  br i1 %10882, label %10883, label %10936

10883:                                            ; preds = %10877
  br label %10884

10884:                                            ; preds = %10883
  br label %10885

10885:                                            ; preds = %10884
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #10
  %10886 = call ptr @__errno_location() #11
  %10887 = load i32, ptr %10886, align 4, !tbaa !5
  store i32 %10887, ptr %206, align 4, !tbaa !5
  %10888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10889 = call i32 @s2n_print_stacktrace(ptr noundef %10888)
  %10890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10891 = trunc i8 %10890 to i1
  br i1 %10891, label %10892, label %10914

10892:                                            ; preds = %10885
  %10893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10894 = call i32 @fileno(ptr noundef %10893) #10
  %10895 = call i32 @isatty(i32 noundef %10894) #10
  %10896 = icmp ne i32 %10895, 0
  br i1 %10896, label %10897, label %10914

10897:                                            ; preds = %10892
  %10898 = load i32, ptr %206, align 4, !tbaa !5
  %10899 = call ptr @__errno_location() #11
  store i32 %10898, ptr %10899, align 4, !tbaa !5
  %10900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10901 = load i32, ptr @test_count, align 4, !tbaa !5
  %10902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10903 = load i32, ptr %10902, align 4, !tbaa !5
  %10904 = call ptr @s2n_strerror(i32 noundef %10903, ptr noundef @.str.4)
  %10905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10906 = load i32, ptr %10905, align 4, !tbaa !5
  %10907 = call ptr @s2n_strerror_debug(i32 noundef %10906, ptr noundef @.str.4)
  %10908 = call ptr @__errno_location() #11
  %10909 = load i32, ptr %10908, align 4, !tbaa !5
  %10910 = call ptr @strerror(i32 noundef %10909) #10
  %10911 = call ptr @__errno_location() #11
  %10912 = load i32, ptr %10911, align 4, !tbaa !5
  %10913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10900, ptr noundef @.str.2, i32 noundef %10901, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10904, ptr noundef %10907, ptr noundef %10910, i32 noundef %10912) #10
  br label %10931

10914:                                            ; preds = %10892, %10885
  %10915 = load i32, ptr %206, align 4, !tbaa !5
  %10916 = call ptr @__errno_location() #11
  store i32 %10915, ptr %10916, align 4, !tbaa !5
  %10917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10918 = load i32, ptr @test_count, align 4, !tbaa !5
  %10919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10920 = load i32, ptr %10919, align 4, !tbaa !5
  %10921 = call ptr @s2n_strerror(i32 noundef %10920, ptr noundef @.str.4)
  %10922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10923 = load i32, ptr %10922, align 4, !tbaa !5
  %10924 = call ptr @s2n_strerror_debug(i32 noundef %10923, ptr noundef @.str.4)
  %10925 = call ptr @__errno_location() #11
  %10926 = load i32, ptr %10925, align 4, !tbaa !5
  %10927 = call ptr @strerror(i32 noundef %10926) #10
  %10928 = call ptr @__errno_location() #11
  %10929 = load i32, ptr %10928, align 4, !tbaa !5
  %10930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10917, ptr noundef @.str.5, i32 noundef %10918, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10921, ptr noundef %10924, ptr noundef %10927, i32 noundef %10929) #10
  br label %10931

10931:                                            ; preds = %10914, %10897
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #10
  br label %10932

10932:                                            ; preds = %10931
  br label %10933

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

10934:                                            ; No predecessors!
  br label %10935

10935:                                            ; preds = %10934
  br label %10936

10936:                                            ; preds = %10935, %10877
  br label %10937

10937:                                            ; preds = %10936
  br label %10938

10938:                                            ; preds = %10937
  br label %10939

10939:                                            ; preds = %10938
  %10940 = load i32, ptr @test_count, align 4, !tbaa !5
  %10941 = add nsw i32 %10940, 1
  store i32 %10941, ptr @test_count, align 4, !tbaa !5
  %10942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10943 = load i32, ptr %10942, align 4, !tbaa !5
  %10944 = call ptr @s2n_strerror_debug(i32 noundef %10943, ptr noundef @.str.4)
  %10945 = icmp eq ptr %10944, null
  br i1 %10945, label %10946, label %10999

10946:                                            ; preds = %10939
  br label %10947

10947:                                            ; preds = %10946
  br label %10948

10948:                                            ; preds = %10947
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #10
  %10949 = call ptr @__errno_location() #11
  %10950 = load i32, ptr %10949, align 4, !tbaa !5
  store i32 %10950, ptr %207, align 4, !tbaa !5
  %10951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10952 = call i32 @s2n_print_stacktrace(ptr noundef %10951)
  %10953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10954 = trunc i8 %10953 to i1
  br i1 %10954, label %10955, label %10977

10955:                                            ; preds = %10948
  %10956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10957 = call i32 @fileno(ptr noundef %10956) #10
  %10958 = call i32 @isatty(i32 noundef %10957) #10
  %10959 = icmp ne i32 %10958, 0
  br i1 %10959, label %10960, label %10977

10960:                                            ; preds = %10955
  %10961 = load i32, ptr %207, align 4, !tbaa !5
  %10962 = call ptr @__errno_location() #11
  store i32 %10961, ptr %10962, align 4, !tbaa !5
  %10963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10964 = load i32, ptr @test_count, align 4, !tbaa !5
  %10965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10966 = load i32, ptr %10965, align 4, !tbaa !5
  %10967 = call ptr @s2n_strerror(i32 noundef %10966, ptr noundef @.str.4)
  %10968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10969 = load i32, ptr %10968, align 4, !tbaa !5
  %10970 = call ptr @s2n_strerror_debug(i32 noundef %10969, ptr noundef @.str.4)
  %10971 = call ptr @__errno_location() #11
  %10972 = load i32, ptr %10971, align 4, !tbaa !5
  %10973 = call ptr @strerror(i32 noundef %10972) #10
  %10974 = call ptr @__errno_location() #11
  %10975 = load i32, ptr %10974, align 4, !tbaa !5
  %10976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10963, ptr noundef @.str.2, i32 noundef %10964, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10967, ptr noundef %10970, ptr noundef %10973, i32 noundef %10975) #10
  br label %10994

10977:                                            ; preds = %10955, %10948
  %10978 = load i32, ptr %207, align 4, !tbaa !5
  %10979 = call ptr @__errno_location() #11
  store i32 %10978, ptr %10979, align 4, !tbaa !5
  %10980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10981 = load i32, ptr @test_count, align 4, !tbaa !5
  %10982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10983 = load i32, ptr %10982, align 4, !tbaa !5
  %10984 = call ptr @s2n_strerror(i32 noundef %10983, ptr noundef @.str.4)
  %10985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10986 = load i32, ptr %10985, align 4, !tbaa !5
  %10987 = call ptr @s2n_strerror_debug(i32 noundef %10986, ptr noundef @.str.4)
  %10988 = call ptr @__errno_location() #11
  %10989 = load i32, ptr %10988, align 4, !tbaa !5
  %10990 = call ptr @strerror(i32 noundef %10989) #10
  %10991 = call ptr @__errno_location() #11
  %10992 = load i32, ptr %10991, align 4, !tbaa !5
  %10993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10980, ptr noundef @.str.5, i32 noundef %10981, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10984, ptr noundef %10987, ptr noundef %10990, i32 noundef %10992) #10
  br label %10994

10994:                                            ; preds = %10977, %10960
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %10995

10995:                                            ; preds = %10994
  br label %10996

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

10997:                                            ; No predecessors!
  br label %10998

10998:                                            ; preds = %10997
  br label %10999

10999:                                            ; preds = %10998, %10939
  br label %11000

11000:                                            ; preds = %10999
  br label %11001

11001:                                            ; preds = %11000
  br label %11002

11002:                                            ; preds = %11001
  %11003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11003, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11004 = call ptr @__errno_location() #11
  store i32 0, ptr %11004, align 4, !tbaa !5
  br label %11005

11005:                                            ; preds = %11002
  br label %11006

11006:                                            ; preds = %11005
  br label %11007

11007:                                            ; preds = %11006
  br label %11008

11008:                                            ; preds = %11007
  br label %11009

11009:                                            ; preds = %11008, %10812
  br label %11010

11010:                                            ; preds = %11009
  br label %11011

11011:                                            ; preds = %11010
  %11012 = load i32, ptr @test_count, align 4, !tbaa !5
  %11013 = add nsw i32 %11012, 1
  store i32 %11013, ptr @test_count, align 4, !tbaa !5
  %11014 = load ptr, ptr %144, align 8, !tbaa !9
  %11015 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %11014, ptr noundef null)
  %11016 = icmp eq i32 %11015, -1
  br i1 %11016, label %11070, label %11017

11017:                                            ; preds = %11011
  br label %11018

11018:                                            ; preds = %11017
  br label %11019

11019:                                            ; preds = %11018
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #10
  %11020 = call ptr @__errno_location() #11
  %11021 = load i32, ptr %11020, align 4, !tbaa !5
  store i32 %11021, ptr %208, align 4, !tbaa !5
  %11022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11023 = call i32 @s2n_print_stacktrace(ptr noundef %11022)
  %11024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11025 = trunc i8 %11024 to i1
  br i1 %11025, label %11026, label %11048

11026:                                            ; preds = %11019
  %11027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11028 = call i32 @fileno(ptr noundef %11027) #10
  %11029 = call i32 @isatty(i32 noundef %11028) #10
  %11030 = icmp ne i32 %11029, 0
  br i1 %11030, label %11031, label %11048

11031:                                            ; preds = %11026
  %11032 = load i32, ptr %208, align 4, !tbaa !5
  %11033 = call ptr @__errno_location() #11
  store i32 %11032, ptr %11033, align 4, !tbaa !5
  %11034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11035 = load i32, ptr @test_count, align 4, !tbaa !5
  %11036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11037 = load i32, ptr %11036, align 4, !tbaa !5
  %11038 = call ptr @s2n_strerror(i32 noundef %11037, ptr noundef @.str.4)
  %11039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11040 = load i32, ptr %11039, align 4, !tbaa !5
  %11041 = call ptr @s2n_strerror_debug(i32 noundef %11040, ptr noundef @.str.4)
  %11042 = call ptr @__errno_location() #11
  %11043 = load i32, ptr %11042, align 4, !tbaa !5
  %11044 = call ptr @strerror(i32 noundef %11043) #10
  %11045 = call ptr @__errno_location() #11
  %11046 = load i32, ptr %11045, align 4, !tbaa !5
  %11047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11034, ptr noundef @.str.2, i32 noundef %11035, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11038, ptr noundef %11041, ptr noundef %11044, i32 noundef %11046) #10
  br label %11065

11048:                                            ; preds = %11026, %11019
  %11049 = load i32, ptr %208, align 4, !tbaa !5
  %11050 = call ptr @__errno_location() #11
  store i32 %11049, ptr %11050, align 4, !tbaa !5
  %11051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11052 = load i32, ptr @test_count, align 4, !tbaa !5
  %11053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11054 = load i32, ptr %11053, align 4, !tbaa !5
  %11055 = call ptr @s2n_strerror(i32 noundef %11054, ptr noundef @.str.4)
  %11056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11057 = load i32, ptr %11056, align 4, !tbaa !5
  %11058 = call ptr @s2n_strerror_debug(i32 noundef %11057, ptr noundef @.str.4)
  %11059 = call ptr @__errno_location() #11
  %11060 = load i32, ptr %11059, align 4, !tbaa !5
  %11061 = call ptr @strerror(i32 noundef %11060) #10
  %11062 = call ptr @__errno_location() #11
  %11063 = load i32, ptr %11062, align 4, !tbaa !5
  %11064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11051, ptr noundef @.str.5, i32 noundef %11052, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11055, ptr noundef %11058, ptr noundef %11061, i32 noundef %11063) #10
  br label %11065

11065:                                            ; preds = %11048, %11031
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #10
  br label %11066

11066:                                            ; preds = %11065
  br label %11067

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

11068:                                            ; No predecessors!
  br label %11069

11069:                                            ; preds = %11068
  br label %11070

11070:                                            ; preds = %11069, %11011
  br label %11071

11071:                                            ; preds = %11070
  br label %11072

11072:                                            ; preds = %11071
  br label %11073

11073:                                            ; preds = %11072
  %11074 = load i32, ptr @test_count, align 4, !tbaa !5
  %11075 = add nsw i32 %11074, 1
  store i32 %11075, ptr @test_count, align 4, !tbaa !5
  %11076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11077 = load i32, ptr %11076, align 4, !tbaa !5
  %11078 = icmp eq i32 %11077, 0
  br i1 %11078, label %11079, label %11132

11079:                                            ; preds = %11073
  br label %11080

11080:                                            ; preds = %11079
  br label %11081

11081:                                            ; preds = %11080
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  %11082 = call ptr @__errno_location() #11
  %11083 = load i32, ptr %11082, align 4, !tbaa !5
  store i32 %11083, ptr %209, align 4, !tbaa !5
  %11084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11085 = call i32 @s2n_print_stacktrace(ptr noundef %11084)
  %11086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11087 = trunc i8 %11086 to i1
  br i1 %11087, label %11088, label %11110

11088:                                            ; preds = %11081
  %11089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11090 = call i32 @fileno(ptr noundef %11089) #10
  %11091 = call i32 @isatty(i32 noundef %11090) #10
  %11092 = icmp ne i32 %11091, 0
  br i1 %11092, label %11093, label %11110

11093:                                            ; preds = %11088
  %11094 = load i32, ptr %209, align 4, !tbaa !5
  %11095 = call ptr @__errno_location() #11
  store i32 %11094, ptr %11095, align 4, !tbaa !5
  %11096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11097 = load i32, ptr @test_count, align 4, !tbaa !5
  %11098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11099 = load i32, ptr %11098, align 4, !tbaa !5
  %11100 = call ptr @s2n_strerror(i32 noundef %11099, ptr noundef @.str.4)
  %11101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11102 = load i32, ptr %11101, align 4, !tbaa !5
  %11103 = call ptr @s2n_strerror_debug(i32 noundef %11102, ptr noundef @.str.4)
  %11104 = call ptr @__errno_location() #11
  %11105 = load i32, ptr %11104, align 4, !tbaa !5
  %11106 = call ptr @strerror(i32 noundef %11105) #10
  %11107 = call ptr @__errno_location() #11
  %11108 = load i32, ptr %11107, align 4, !tbaa !5
  %11109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11096, ptr noundef @.str.2, i32 noundef %11097, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11100, ptr noundef %11103, ptr noundef %11106, i32 noundef %11108) #10
  br label %11127

11110:                                            ; preds = %11088, %11081
  %11111 = load i32, ptr %209, align 4, !tbaa !5
  %11112 = call ptr @__errno_location() #11
  store i32 %11111, ptr %11112, align 4, !tbaa !5
  %11113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11114 = load i32, ptr @test_count, align 4, !tbaa !5
  %11115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11116 = load i32, ptr %11115, align 4, !tbaa !5
  %11117 = call ptr @s2n_strerror(i32 noundef %11116, ptr noundef @.str.4)
  %11118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11119 = load i32, ptr %11118, align 4, !tbaa !5
  %11120 = call ptr @s2n_strerror_debug(i32 noundef %11119, ptr noundef @.str.4)
  %11121 = call ptr @__errno_location() #11
  %11122 = load i32, ptr %11121, align 4, !tbaa !5
  %11123 = call ptr @strerror(i32 noundef %11122) #10
  %11124 = call ptr @__errno_location() #11
  %11125 = load i32, ptr %11124, align 4, !tbaa !5
  %11126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11113, ptr noundef @.str.5, i32 noundef %11114, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11117, ptr noundef %11120, ptr noundef %11123, i32 noundef %11125) #10
  br label %11127

11127:                                            ; preds = %11110, %11093
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  br label %11128

11128:                                            ; preds = %11127
  br label %11129

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

11130:                                            ; No predecessors!
  br label %11131

11131:                                            ; preds = %11130
  br label %11132

11132:                                            ; preds = %11131, %11073
  br label %11133

11133:                                            ; preds = %11132
  br label %11134

11134:                                            ; preds = %11133
  br label %11135

11135:                                            ; preds = %11134
  %11136 = load i32, ptr @test_count, align 4, !tbaa !5
  %11137 = add nsw i32 %11136, 1
  store i32 %11137, ptr @test_count, align 4, !tbaa !5
  %11138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11139 = load i32, ptr %11138, align 4, !tbaa !5
  %11140 = call ptr @s2n_strerror_debug(i32 noundef %11139, ptr noundef @.str.4)
  %11141 = icmp eq ptr %11140, null
  br i1 %11141, label %11142, label %11195

11142:                                            ; preds = %11135
  br label %11143

11143:                                            ; preds = %11142
  br label %11144

11144:                                            ; preds = %11143
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #10
  %11145 = call ptr @__errno_location() #11
  %11146 = load i32, ptr %11145, align 4, !tbaa !5
  store i32 %11146, ptr %210, align 4, !tbaa !5
  %11147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11148 = call i32 @s2n_print_stacktrace(ptr noundef %11147)
  %11149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11150 = trunc i8 %11149 to i1
  br i1 %11150, label %11151, label %11173

11151:                                            ; preds = %11144
  %11152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11153 = call i32 @fileno(ptr noundef %11152) #10
  %11154 = call i32 @isatty(i32 noundef %11153) #10
  %11155 = icmp ne i32 %11154, 0
  br i1 %11155, label %11156, label %11173

11156:                                            ; preds = %11151
  %11157 = load i32, ptr %210, align 4, !tbaa !5
  %11158 = call ptr @__errno_location() #11
  store i32 %11157, ptr %11158, align 4, !tbaa !5
  %11159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11160 = load i32, ptr @test_count, align 4, !tbaa !5
  %11161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11162 = load i32, ptr %11161, align 4, !tbaa !5
  %11163 = call ptr @s2n_strerror(i32 noundef %11162, ptr noundef @.str.4)
  %11164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11165 = load i32, ptr %11164, align 4, !tbaa !5
  %11166 = call ptr @s2n_strerror_debug(i32 noundef %11165, ptr noundef @.str.4)
  %11167 = call ptr @__errno_location() #11
  %11168 = load i32, ptr %11167, align 4, !tbaa !5
  %11169 = call ptr @strerror(i32 noundef %11168) #10
  %11170 = call ptr @__errno_location() #11
  %11171 = load i32, ptr %11170, align 4, !tbaa !5
  %11172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11159, ptr noundef @.str.2, i32 noundef %11160, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11163, ptr noundef %11166, ptr noundef %11169, i32 noundef %11171) #10
  br label %11190

11173:                                            ; preds = %11151, %11144
  %11174 = load i32, ptr %210, align 4, !tbaa !5
  %11175 = call ptr @__errno_location() #11
  store i32 %11174, ptr %11175, align 4, !tbaa !5
  %11176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11177 = load i32, ptr @test_count, align 4, !tbaa !5
  %11178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11179 = load i32, ptr %11178, align 4, !tbaa !5
  %11180 = call ptr @s2n_strerror(i32 noundef %11179, ptr noundef @.str.4)
  %11181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11182 = load i32, ptr %11181, align 4, !tbaa !5
  %11183 = call ptr @s2n_strerror_debug(i32 noundef %11182, ptr noundef @.str.4)
  %11184 = call ptr @__errno_location() #11
  %11185 = load i32, ptr %11184, align 4, !tbaa !5
  %11186 = call ptr @strerror(i32 noundef %11185) #10
  %11187 = call ptr @__errno_location() #11
  %11188 = load i32, ptr %11187, align 4, !tbaa !5
  %11189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11176, ptr noundef @.str.5, i32 noundef %11177, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11180, ptr noundef %11183, ptr noundef %11186, i32 noundef %11188) #10
  br label %11190

11190:                                            ; preds = %11173, %11156
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #10
  br label %11191

11191:                                            ; preds = %11190
  br label %11192

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

11193:                                            ; No predecessors!
  br label %11194

11194:                                            ; preds = %11193
  br label %11195

11195:                                            ; preds = %11194, %11135
  br label %11196

11196:                                            ; preds = %11195
  br label %11197

11197:                                            ; preds = %11196
  br label %11198

11198:                                            ; preds = %11197
  %11199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11199, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11200 = call ptr @__errno_location() #11
  store i32 0, ptr %11200, align 4, !tbaa !5
  br label %11201

11201:                                            ; preds = %11198
  br label %11202

11202:                                            ; preds = %11201
  br label %11203

11203:                                            ; preds = %11202
  br label %11204

11204:                                            ; preds = %11203
  br label %11205

11205:                                            ; preds = %11204
  br label %11206

11206:                                            ; preds = %11205
  br label %11207

11207:                                            ; preds = %11206
  %11208 = load i32, ptr @test_count, align 4, !tbaa !5
  %11209 = add nsw i32 %11208, 1
  store i32 %11209, ptr @test_count, align 4, !tbaa !5
  %11210 = load ptr, ptr %144, align 8, !tbaa !9
  %11211 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %11210, ptr noundef @.str.132)
  %11212 = icmp eq i32 %11211, -1
  br i1 %11212, label %11266, label %11213

11213:                                            ; preds = %11207
  br label %11214

11214:                                            ; preds = %11213
  br label %11215

11215:                                            ; preds = %11214
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #10
  %11216 = call ptr @__errno_location() #11
  %11217 = load i32, ptr %11216, align 4, !tbaa !5
  store i32 %11217, ptr %211, align 4, !tbaa !5
  %11218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11219 = call i32 @s2n_print_stacktrace(ptr noundef %11218)
  %11220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11221 = trunc i8 %11220 to i1
  br i1 %11221, label %11222, label %11244

11222:                                            ; preds = %11215
  %11223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11224 = call i32 @fileno(ptr noundef %11223) #10
  %11225 = call i32 @isatty(i32 noundef %11224) #10
  %11226 = icmp ne i32 %11225, 0
  br i1 %11226, label %11227, label %11244

11227:                                            ; preds = %11222
  %11228 = load i32, ptr %211, align 4, !tbaa !5
  %11229 = call ptr @__errno_location() #11
  store i32 %11228, ptr %11229, align 4, !tbaa !5
  %11230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11231 = load i32, ptr @test_count, align 4, !tbaa !5
  %11232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11233 = load i32, ptr %11232, align 4, !tbaa !5
  %11234 = call ptr @s2n_strerror(i32 noundef %11233, ptr noundef @.str.4)
  %11235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11236 = load i32, ptr %11235, align 4, !tbaa !5
  %11237 = call ptr @s2n_strerror_debug(i32 noundef %11236, ptr noundef @.str.4)
  %11238 = call ptr @__errno_location() #11
  %11239 = load i32, ptr %11238, align 4, !tbaa !5
  %11240 = call ptr @strerror(i32 noundef %11239) #10
  %11241 = call ptr @__errno_location() #11
  %11242 = load i32, ptr %11241, align 4, !tbaa !5
  %11243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11230, ptr noundef @.str.2, i32 noundef %11231, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 538, ptr noundef %11234, ptr noundef %11237, ptr noundef %11240, i32 noundef %11242) #10
  br label %11261

11244:                                            ; preds = %11222, %11215
  %11245 = load i32, ptr %211, align 4, !tbaa !5
  %11246 = call ptr @__errno_location() #11
  store i32 %11245, ptr %11246, align 4, !tbaa !5
  %11247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11248 = load i32, ptr @test_count, align 4, !tbaa !5
  %11249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11250 = load i32, ptr %11249, align 4, !tbaa !5
  %11251 = call ptr @s2n_strerror(i32 noundef %11250, ptr noundef @.str.4)
  %11252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11253 = load i32, ptr %11252, align 4, !tbaa !5
  %11254 = call ptr @s2n_strerror_debug(i32 noundef %11253, ptr noundef @.str.4)
  %11255 = call ptr @__errno_location() #11
  %11256 = load i32, ptr %11255, align 4, !tbaa !5
  %11257 = call ptr @strerror(i32 noundef %11256) #10
  %11258 = call ptr @__errno_location() #11
  %11259 = load i32, ptr %11258, align 4, !tbaa !5
  %11260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11247, ptr noundef @.str.5, i32 noundef %11248, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 538, ptr noundef %11251, ptr noundef %11254, ptr noundef %11257, i32 noundef %11259) #10
  br label %11261

11261:                                            ; preds = %11244, %11227
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #10
  br label %11262

11262:                                            ; preds = %11261
  br label %11263

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

11264:                                            ; No predecessors!
  br label %11265

11265:                                            ; preds = %11264
  br label %11266

11266:                                            ; preds = %11265, %11207
  br label %11267

11267:                                            ; preds = %11266
  br label %11268

11268:                                            ; preds = %11267
  br label %11269

11269:                                            ; preds = %11268
  %11270 = load i32, ptr @test_count, align 4, !tbaa !5
  %11271 = add nsw i32 %11270, 1
  store i32 %11271, ptr @test_count, align 4, !tbaa !5
  %11272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11273 = load i32, ptr %11272, align 4, !tbaa !5
  %11274 = icmp eq i32 %11273, 469762101
  br i1 %11274, label %11328, label %11275

11275:                                            ; preds = %11269
  br label %11276

11276:                                            ; preds = %11275
  br label %11277

11277:                                            ; preds = %11276
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #10
  %11278 = call ptr @__errno_location() #11
  %11279 = load i32, ptr %11278, align 4, !tbaa !5
  store i32 %11279, ptr %212, align 4, !tbaa !5
  %11280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11281 = call i32 @s2n_print_stacktrace(ptr noundef %11280)
  %11282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11283 = trunc i8 %11282 to i1
  br i1 %11283, label %11284, label %11306

11284:                                            ; preds = %11277
  %11285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11286 = call i32 @fileno(ptr noundef %11285) #10
  %11287 = call i32 @isatty(i32 noundef %11286) #10
  %11288 = icmp ne i32 %11287, 0
  br i1 %11288, label %11289, label %11306

11289:                                            ; preds = %11284
  %11290 = load i32, ptr %212, align 4, !tbaa !5
  %11291 = call ptr @__errno_location() #11
  store i32 %11290, ptr %11291, align 4, !tbaa !5
  %11292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11293 = load i32, ptr @test_count, align 4, !tbaa !5
  %11294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11295 = load i32, ptr %11294, align 4, !tbaa !5
  %11296 = call ptr @s2n_strerror(i32 noundef %11295, ptr noundef @.str.4)
  %11297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11298 = load i32, ptr %11297, align 4, !tbaa !5
  %11299 = call ptr @s2n_strerror_debug(i32 noundef %11298, ptr noundef @.str.4)
  %11300 = call ptr @__errno_location() #11
  %11301 = load i32, ptr %11300, align 4, !tbaa !5
  %11302 = call ptr @strerror(i32 noundef %11301) #10
  %11303 = call ptr @__errno_location() #11
  %11304 = load i32, ptr %11303, align 4, !tbaa !5
  %11305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11292, ptr noundef @.str.2, i32 noundef %11293, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 538, ptr noundef %11296, ptr noundef %11299, ptr noundef %11302, i32 noundef %11304) #10
  br label %11323

11306:                                            ; preds = %11284, %11277
  %11307 = load i32, ptr %212, align 4, !tbaa !5
  %11308 = call ptr @__errno_location() #11
  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() #11
  %11318 = load i32, ptr %11317, align 4, !tbaa !5
  %11319 = call ptr @strerror(i32 noundef %11318) #10
  %11320 = call ptr @__errno_location() #11
  %11321 = load i32, ptr %11320, align 4, !tbaa !5
  %11322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11309, ptr noundef @.str.5, i32 noundef %11310, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 538, ptr noundef %11313, ptr noundef %11316, ptr noundef %11319, i32 noundef %11321) #10
  br label %11323

11323:                                            ; preds = %11306, %11289
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #10
  br label %11324

11324:                                            ; preds = %11323
  br label %11325

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

11326:                                            ; No predecessors!
  br label %11327

11327:                                            ; preds = %11326
  br label %11328

11328:                                            ; preds = %11327, %11269
  br label %11329

11329:                                            ; preds = %11328
  br label %11330

11330:                                            ; preds = %11329
  br label %11331

11331:                                            ; preds = %11330
  %11332 = load i32, ptr @test_count, align 4, !tbaa !5
  %11333 = add nsw i32 %11332, 1
  store i32 %11333, ptr @test_count, align 4, !tbaa !5
  %11334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11335 = load i32, ptr %11334, align 4, !tbaa !5
  %11336 = call ptr @s2n_strerror_debug(i32 noundef %11335, ptr noundef @.str.4)
  %11337 = icmp eq ptr %11336, null
  br i1 %11337, label %11338, label %11391

11338:                                            ; preds = %11331
  br label %11339

11339:                                            ; preds = %11338
  br label %11340

11340:                                            ; preds = %11339
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #10
  %11341 = call ptr @__errno_location() #11
  %11342 = load i32, ptr %11341, align 4, !tbaa !5
  store i32 %11342, ptr %213, align 4, !tbaa !5
  %11343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11344 = call i32 @s2n_print_stacktrace(ptr noundef %11343)
  %11345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11346 = trunc i8 %11345 to i1
  br i1 %11346, label %11347, label %11369

11347:                                            ; preds = %11340
  %11348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11349 = call i32 @fileno(ptr noundef %11348) #10
  %11350 = call i32 @isatty(i32 noundef %11349) #10
  %11351 = icmp ne i32 %11350, 0
  br i1 %11351, label %11352, label %11369

11352:                                            ; preds = %11347
  %11353 = load i32, ptr %213, align 4, !tbaa !5
  %11354 = call ptr @__errno_location() #11
  store i32 %11353, ptr %11354, align 4, !tbaa !5
  %11355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11356 = load i32, ptr @test_count, align 4, !tbaa !5
  %11357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11358 = load i32, ptr %11357, align 4, !tbaa !5
  %11359 = call ptr @s2n_strerror(i32 noundef %11358, ptr noundef @.str.4)
  %11360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11361 = load i32, ptr %11360, align 4, !tbaa !5
  %11362 = call ptr @s2n_strerror_debug(i32 noundef %11361, ptr noundef @.str.4)
  %11363 = call ptr @__errno_location() #11
  %11364 = load i32, ptr %11363, align 4, !tbaa !5
  %11365 = call ptr @strerror(i32 noundef %11364) #10
  %11366 = call ptr @__errno_location() #11
  %11367 = load i32, ptr %11366, align 4, !tbaa !5
  %11368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11355, ptr noundef @.str.2, i32 noundef %11356, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 538, ptr noundef %11359, ptr noundef %11362, ptr noundef %11365, i32 noundef %11367) #10
  br label %11386

11369:                                            ; preds = %11347, %11340
  %11370 = load i32, ptr %213, align 4, !tbaa !5
  %11371 = call ptr @__errno_location() #11
  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() #11
  %11381 = load i32, ptr %11380, align 4, !tbaa !5
  %11382 = call ptr @strerror(i32 noundef %11381) #10
  %11383 = call ptr @__errno_location() #11
  %11384 = load i32, ptr %11383, align 4, !tbaa !5
  %11385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11372, ptr noundef @.str.5, i32 noundef %11373, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 538, ptr noundef %11376, ptr noundef %11379, ptr noundef %11382, i32 noundef %11384) #10
  br label %11386

11386:                                            ; preds = %11369, %11352
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #10
  br label %11387

11387:                                            ; preds = %11386
  br label %11388

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

11389:                                            ; No predecessors!
  br label %11390

11390:                                            ; preds = %11389
  br label %11391

11391:                                            ; preds = %11390, %11331
  br label %11392

11392:                                            ; preds = %11391
  br label %11393

11393:                                            ; preds = %11392
  br label %11394

11394:                                            ; preds = %11393
  br label %11395

11395:                                            ; preds = %11394
  br label %11396

11396:                                            ; preds = %11395
  %11397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11397, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11398 = call ptr @__errno_location() #11
  store i32 0, ptr %11398, align 4, !tbaa !5
  br label %11399

11399:                                            ; preds = %11396
  br label %11400

11400:                                            ; preds = %11399
  br label %11401

11401:                                            ; preds = %11400
  br label %11402

11402:                                            ; preds = %11401
  %11403 = load ptr, ptr %144, align 8, !tbaa !9
  %11404 = call i32 @s2n_config_free(ptr noundef %11403)
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #10
  %11405 = call ptr @s2n_config_new()
  store ptr %11405, ptr %214, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #10
  %11406 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11406, ptr %215, align 8, !tbaa !9
  %11407 = load ptr, ptr %215, align 8, !tbaa !9
  %11408 = load ptr, ptr %214, align 8, !tbaa !9
  %11409 = call i32 @s2n_connection_set_config(ptr noundef %11407, ptr noundef %11408)
  br label %11410

11410:                                            ; preds = %11402
  %11411 = load i32, ptr @test_count, align 4, !tbaa !5
  %11412 = add nsw i32 %11411, 1
  store i32 %11412, ptr @test_count, align 4, !tbaa !5
  %11413 = load ptr, ptr %215, align 8, !tbaa !9
  %11414 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11413, ptr noundef @.str.79)
  %11415 = icmp eq i32 %11414, -1
  br i1 %11415, label %11416, label %11469

11416:                                            ; preds = %11410
  br label %11417

11417:                                            ; preds = %11416
  br label %11418

11418:                                            ; preds = %11417
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #10
  %11419 = call ptr @__errno_location() #11
  %11420 = load i32, ptr %11419, align 4, !tbaa !5
  store i32 %11420, ptr %216, align 4, !tbaa !5
  %11421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11422 = call i32 @s2n_print_stacktrace(ptr noundef %11421)
  %11423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11424 = trunc i8 %11423 to i1
  br i1 %11424, label %11425, label %11447

11425:                                            ; preds = %11418
  %11426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11427 = call i32 @fileno(ptr noundef %11426) #10
  %11428 = call i32 @isatty(i32 noundef %11427) #10
  %11429 = icmp ne i32 %11428, 0
  br i1 %11429, label %11430, label %11447

11430:                                            ; preds = %11425
  %11431 = load i32, ptr %216, align 4, !tbaa !5
  %11432 = call ptr @__errno_location() #11
  store i32 %11431, ptr %11432, align 4, !tbaa !5
  %11433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11434 = load i32, ptr @test_count, align 4, !tbaa !5
  %11435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11436 = load i32, ptr %11435, align 4, !tbaa !5
  %11437 = call ptr @s2n_strerror(i32 noundef %11436, ptr noundef @.str.4)
  %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_debug(i32 noundef %11439, ptr noundef @.str.4)
  %11441 = call ptr @__errno_location() #11
  %11442 = load i32, ptr %11441, align 4, !tbaa !5
  %11443 = call ptr @strerror(i32 noundef %11442) #10
  %11444 = call ptr @__errno_location() #11
  %11445 = load i32, ptr %11444, align 4, !tbaa !5
  %11446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11433, ptr noundef @.str.2, i32 noundef %11434, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 548, ptr noundef %11437, ptr noundef %11440, ptr noundef %11443, i32 noundef %11445) #10
  br label %11464

11447:                                            ; preds = %11425, %11418
  %11448 = load i32, ptr %216, align 4, !tbaa !5
  %11449 = call ptr @__errno_location() #11
  store i32 %11448, ptr %11449, align 4, !tbaa !5
  %11450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11451 = load i32, ptr @test_count, align 4, !tbaa !5
  %11452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11453 = load i32, ptr %11452, align 4, !tbaa !5
  %11454 = call ptr @s2n_strerror(i32 noundef %11453, ptr noundef @.str.4)
  %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_debug(i32 noundef %11456, ptr noundef @.str.4)
  %11458 = call ptr @__errno_location() #11
  %11459 = load i32, ptr %11458, align 4, !tbaa !5
  %11460 = call ptr @strerror(i32 noundef %11459) #10
  %11461 = call ptr @__errno_location() #11
  %11462 = load i32, ptr %11461, align 4, !tbaa !5
  %11463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11450, ptr noundef @.str.5, i32 noundef %11451, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 548, ptr noundef %11454, ptr noundef %11457, ptr noundef %11460, i32 noundef %11462) #10
  br label %11464

11464:                                            ; preds = %11447, %11430
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #10
  br label %11465

11465:                                            ; preds = %11464
  br label %11466

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

11467:                                            ; No predecessors!
  br label %11468

11468:                                            ; preds = %11467
  br label %11469

11469:                                            ; preds = %11468, %11410
  br label %11470

11470:                                            ; preds = %11469
  br label %11471

11471:                                            ; preds = %11470
  br label %11472

11472:                                            ; preds = %11471
  %11473 = load i32, ptr @test_count, align 4, !tbaa !5
  %11474 = add nsw i32 %11473, 1
  store i32 %11474, ptr @test_count, align 4, !tbaa !5
  %11475 = load ptr, ptr %215, align 8, !tbaa !9
  %11476 = call i32 @s2n_connection_get_security_policy(ptr noundef %11475, ptr noundef %39)
  %11477 = icmp eq i32 %11476, -1
  br i1 %11477, label %11478, label %11531

11478:                                            ; preds = %11472
  br label %11479

11479:                                            ; preds = %11478
  br label %11480

11480:                                            ; preds = %11479
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %11481 = call ptr @__errno_location() #11
  %11482 = load i32, ptr %11481, align 4, !tbaa !5
  store i32 %11482, ptr %217, align 4, !tbaa !5
  %11483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11484 = call i32 @s2n_print_stacktrace(ptr noundef %11483)
  %11485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11486 = trunc i8 %11485 to i1
  br i1 %11486, label %11487, label %11509

11487:                                            ; preds = %11480
  %11488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11489 = call i32 @fileno(ptr noundef %11488) #10
  %11490 = call i32 @isatty(i32 noundef %11489) #10
  %11491 = icmp ne i32 %11490, 0
  br i1 %11491, label %11492, label %11509

11492:                                            ; preds = %11487
  %11493 = load i32, ptr %217, align 4, !tbaa !5
  %11494 = call ptr @__errno_location() #11
  store i32 %11493, ptr %11494, align 4, !tbaa !5
  %11495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11496 = load i32, ptr @test_count, align 4, !tbaa !5
  %11497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11498 = load i32, ptr %11497, align 4, !tbaa !5
  %11499 = call ptr @s2n_strerror(i32 noundef %11498, ptr noundef @.str.4)
  %11500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11501 = load i32, ptr %11500, align 4, !tbaa !5
  %11502 = call ptr @s2n_strerror_debug(i32 noundef %11501, ptr noundef @.str.4)
  %11503 = call ptr @__errno_location() #11
  %11504 = load i32, ptr %11503, align 4, !tbaa !5
  %11505 = call ptr @strerror(i32 noundef %11504) #10
  %11506 = call ptr @__errno_location() #11
  %11507 = load i32, ptr %11506, align 4, !tbaa !5
  %11508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11495, ptr noundef @.str.2, i32 noundef %11496, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 549, ptr noundef %11499, ptr noundef %11502, ptr noundef %11505, i32 noundef %11507) #10
  br label %11526

11509:                                            ; preds = %11487, %11480
  %11510 = load i32, ptr %217, align 4, !tbaa !5
  %11511 = call ptr @__errno_location() #11
  store i32 %11510, ptr %11511, align 4, !tbaa !5
  %11512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11513 = load i32, ptr @test_count, align 4, !tbaa !5
  %11514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11515 = load i32, ptr %11514, align 4, !tbaa !5
  %11516 = call ptr @s2n_strerror(i32 noundef %11515, ptr noundef @.str.4)
  %11517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11518 = load i32, ptr %11517, align 4, !tbaa !5
  %11519 = call ptr @s2n_strerror_debug(i32 noundef %11518, ptr noundef @.str.4)
  %11520 = call ptr @__errno_location() #11
  %11521 = load i32, ptr %11520, align 4, !tbaa !5
  %11522 = call ptr @strerror(i32 noundef %11521) #10
  %11523 = call ptr @__errno_location() #11
  %11524 = load i32, ptr %11523, align 4, !tbaa !5
  %11525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11512, ptr noundef @.str.5, i32 noundef %11513, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 549, ptr noundef %11516, ptr noundef %11519, ptr noundef %11522, i32 noundef %11524) #10
  br label %11526

11526:                                            ; preds = %11509, %11492
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %11527

11527:                                            ; preds = %11526
  br label %11528

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

11529:                                            ; No predecessors!
  br label %11530

11530:                                            ; preds = %11529
  br label %11531

11531:                                            ; preds = %11530, %11472
  br label %11532

11532:                                            ; preds = %11531
  br label %11533

11533:                                            ; preds = %11532
  br label %11534

11534:                                            ; preds = %11533
  %11535 = load i32, ptr @test_count, align 4, !tbaa !5
  %11536 = add nsw i32 %11535, 1
  store i32 %11536, ptr @test_count, align 4, !tbaa !5
  %11537 = load ptr, ptr %39, align 8, !tbaa !9
  %11538 = icmp eq ptr %11537, @security_policy_20170210
  br i1 %11538, label %11592, label %11539

11539:                                            ; preds = %11534
  br label %11540

11540:                                            ; preds = %11539
  br label %11541

11541:                                            ; preds = %11540
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #10
  %11542 = call ptr @__errno_location() #11
  %11543 = load i32, ptr %11542, align 4, !tbaa !5
  store i32 %11543, ptr %218, align 4, !tbaa !5
  %11544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11545 = call i32 @s2n_print_stacktrace(ptr noundef %11544)
  %11546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11547 = trunc i8 %11546 to i1
  br i1 %11547, label %11548, label %11570

11548:                                            ; preds = %11541
  %11549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11550 = call i32 @fileno(ptr noundef %11549) #10
  %11551 = call i32 @isatty(i32 noundef %11550) #10
  %11552 = icmp ne i32 %11551, 0
  br i1 %11552, label %11553, label %11570

11553:                                            ; preds = %11548
  %11554 = load i32, ptr %218, align 4, !tbaa !5
  %11555 = call ptr @__errno_location() #11
  store i32 %11554, ptr %11555, align 4, !tbaa !5
  %11556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11557 = load i32, ptr @test_count, align 4, !tbaa !5
  %11558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11559 = load i32, ptr %11558, align 4, !tbaa !5
  %11560 = call ptr @s2n_strerror(i32 noundef %11559, ptr noundef @.str.4)
  %11561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11562 = load i32, ptr %11561, align 4, !tbaa !5
  %11563 = call ptr @s2n_strerror_debug(i32 noundef %11562, ptr noundef @.str.4)
  %11564 = call ptr @__errno_location() #11
  %11565 = load i32, ptr %11564, align 4, !tbaa !5
  %11566 = call ptr @strerror(i32 noundef %11565) #10
  %11567 = call ptr @__errno_location() #11
  %11568 = load i32, ptr %11567, align 4, !tbaa !5
  %11569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11556, ptr noundef @.str.2, i32 noundef %11557, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11560, ptr noundef %11563, ptr noundef %11566, i32 noundef %11568) #10
  br label %11587

11570:                                            ; preds = %11548, %11541
  %11571 = load i32, ptr %218, align 4, !tbaa !5
  %11572 = call ptr @__errno_location() #11
  store i32 %11571, ptr %11572, align 4, !tbaa !5
  %11573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11574 = load i32, ptr @test_count, align 4, !tbaa !5
  %11575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11576 = load i32, ptr %11575, align 4, !tbaa !5
  %11577 = call ptr @s2n_strerror(i32 noundef %11576, ptr noundef @.str.4)
  %11578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11579 = load i32, ptr %11578, align 4, !tbaa !5
  %11580 = call ptr @s2n_strerror_debug(i32 noundef %11579, ptr noundef @.str.4)
  %11581 = call ptr @__errno_location() #11
  %11582 = load i32, ptr %11581, align 4, !tbaa !5
  %11583 = call ptr @strerror(i32 noundef %11582) #10
  %11584 = call ptr @__errno_location() #11
  %11585 = load i32, ptr %11584, align 4, !tbaa !5
  %11586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11573, ptr noundef @.str.5, i32 noundef %11574, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11577, ptr noundef %11580, ptr noundef %11583, i32 noundef %11585) #10
  br label %11587

11587:                                            ; preds = %11570, %11553
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #10
  br label %11588

11588:                                            ; preds = %11587
  br label %11589

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

11590:                                            ; No predecessors!
  br label %11591

11591:                                            ; preds = %11590
  br label %11592

11592:                                            ; preds = %11591, %11534
  br label %11593

11593:                                            ; preds = %11592
  br label %11594

11594:                                            ; preds = %11593
  br label %11595

11595:                                            ; preds = %11594
  %11596 = load i32, ptr @test_count, align 4, !tbaa !5
  %11597 = add nsw i32 %11596, 1
  store i32 %11597, ptr @test_count, align 4, !tbaa !5
  %11598 = load ptr, ptr %39, align 8, !tbaa !9
  %11599 = getelementptr inbounds %struct.s2n_security_policy, ptr %11598, i32 0, i32 1
  %11600 = load ptr, ptr %11599, align 8, !tbaa !31
  %11601 = icmp eq ptr %11600, @cipher_preferences_20170210
  br i1 %11601, label %11655, label %11602

11602:                                            ; preds = %11595
  br label %11603

11603:                                            ; preds = %11602
  br label %11604

11604:                                            ; preds = %11603
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #10
  %11605 = call ptr @__errno_location() #11
  %11606 = load i32, ptr %11605, align 4, !tbaa !5
  store i32 %11606, ptr %219, align 4, !tbaa !5
  %11607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11608 = call i32 @s2n_print_stacktrace(ptr noundef %11607)
  %11609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11610 = trunc i8 %11609 to i1
  br i1 %11610, label %11611, label %11633

11611:                                            ; preds = %11604
  %11612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11613 = call i32 @fileno(ptr noundef %11612) #10
  %11614 = call i32 @isatty(i32 noundef %11613) #10
  %11615 = icmp ne i32 %11614, 0
  br i1 %11615, label %11616, label %11633

11616:                                            ; preds = %11611
  %11617 = load i32, ptr %219, align 4, !tbaa !5
  %11618 = call ptr @__errno_location() #11
  store i32 %11617, ptr %11618, align 4, !tbaa !5
  %11619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11620 = load i32, ptr @test_count, align 4, !tbaa !5
  %11621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11622 = load i32, ptr %11621, align 4, !tbaa !5
  %11623 = call ptr @s2n_strerror(i32 noundef %11622, ptr noundef @.str.4)
  %11624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11625 = load i32, ptr %11624, align 4, !tbaa !5
  %11626 = call ptr @s2n_strerror_debug(i32 noundef %11625, ptr noundef @.str.4)
  %11627 = call ptr @__errno_location() #11
  %11628 = load i32, ptr %11627, align 4, !tbaa !5
  %11629 = call ptr @strerror(i32 noundef %11628) #10
  %11630 = call ptr @__errno_location() #11
  %11631 = load i32, ptr %11630, align 4, !tbaa !5
  %11632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11619, ptr noundef @.str.2, i32 noundef %11620, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 551, ptr noundef %11623, ptr noundef %11626, ptr noundef %11629, i32 noundef %11631) #10
  br label %11650

11633:                                            ; preds = %11611, %11604
  %11634 = load i32, ptr %219, align 4, !tbaa !5
  %11635 = call ptr @__errno_location() #11
  store i32 %11634, ptr %11635, align 4, !tbaa !5
  %11636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11637 = load i32, ptr @test_count, align 4, !tbaa !5
  %11638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11639 = load i32, ptr %11638, align 4, !tbaa !5
  %11640 = call ptr @s2n_strerror(i32 noundef %11639, ptr noundef @.str.4)
  %11641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11642 = load i32, ptr %11641, align 4, !tbaa !5
  %11643 = call ptr @s2n_strerror_debug(i32 noundef %11642, ptr noundef @.str.4)
  %11644 = call ptr @__errno_location() #11
  %11645 = load i32, ptr %11644, align 4, !tbaa !5
  %11646 = call ptr @strerror(i32 noundef %11645) #10
  %11647 = call ptr @__errno_location() #11
  %11648 = load i32, ptr %11647, align 4, !tbaa !5
  %11649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11636, ptr noundef @.str.5, i32 noundef %11637, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 551, ptr noundef %11640, ptr noundef %11643, ptr noundef %11646, i32 noundef %11648) #10
  br label %11650

11650:                                            ; preds = %11633, %11616
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #10
  br label %11651

11651:                                            ; preds = %11650
  br label %11652

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

11653:                                            ; No predecessors!
  br label %11654

11654:                                            ; preds = %11653
  br label %11655

11655:                                            ; preds = %11654, %11595
  br label %11656

11656:                                            ; preds = %11655
  br label %11657

11657:                                            ; preds = %11656
  br label %11658

11658:                                            ; preds = %11657
  %11659 = load i32, ptr @test_count, align 4, !tbaa !5
  %11660 = add nsw i32 %11659, 1
  store i32 %11660, ptr @test_count, align 4, !tbaa !5
  %11661 = load ptr, ptr %39, align 8, !tbaa !9
  %11662 = getelementptr inbounds %struct.s2n_security_policy, ptr %11661, i32 0, i32 2
  %11663 = load ptr, ptr %11662, align 8, !tbaa !20
  %11664 = icmp eq ptr %11663, @kem_preferences_null
  br i1 %11664, label %11718, label %11665

11665:                                            ; preds = %11658
  br label %11666

11666:                                            ; preds = %11665
  br label %11667

11667:                                            ; preds = %11666
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #10
  %11668 = call ptr @__errno_location() #11
  %11669 = load i32, ptr %11668, align 4, !tbaa !5
  store i32 %11669, ptr %220, align 4, !tbaa !5
  %11670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11671 = call i32 @s2n_print_stacktrace(ptr noundef %11670)
  %11672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11673 = trunc i8 %11672 to i1
  br i1 %11673, label %11674, label %11696

11674:                                            ; preds = %11667
  %11675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11676 = call i32 @fileno(ptr noundef %11675) #10
  %11677 = call i32 @isatty(i32 noundef %11676) #10
  %11678 = icmp ne i32 %11677, 0
  br i1 %11678, label %11679, label %11696

11679:                                            ; preds = %11674
  %11680 = load i32, ptr %220, align 4, !tbaa !5
  %11681 = call ptr @__errno_location() #11
  store i32 %11680, ptr %11681, align 4, !tbaa !5
  %11682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11683 = load i32, ptr @test_count, align 4, !tbaa !5
  %11684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11685 = load i32, ptr %11684, align 4, !tbaa !5
  %11686 = call ptr @s2n_strerror(i32 noundef %11685, ptr noundef @.str.4)
  %11687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11688 = load i32, ptr %11687, align 4, !tbaa !5
  %11689 = call ptr @s2n_strerror_debug(i32 noundef %11688, ptr noundef @.str.4)
  %11690 = call ptr @__errno_location() #11
  %11691 = load i32, ptr %11690, align 4, !tbaa !5
  %11692 = call ptr @strerror(i32 noundef %11691) #10
  %11693 = call ptr @__errno_location() #11
  %11694 = load i32, ptr %11693, align 4, !tbaa !5
  %11695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11682, ptr noundef @.str.2, i32 noundef %11683, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 552, ptr noundef %11686, ptr noundef %11689, ptr noundef %11692, i32 noundef %11694) #10
  br label %11713

11696:                                            ; preds = %11674, %11667
  %11697 = load i32, ptr %220, align 4, !tbaa !5
  %11698 = call ptr @__errno_location() #11
  store i32 %11697, ptr %11698, align 4, !tbaa !5
  %11699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11700 = load i32, ptr @test_count, align 4, !tbaa !5
  %11701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11702 = load i32, ptr %11701, align 4, !tbaa !5
  %11703 = call ptr @s2n_strerror(i32 noundef %11702, ptr noundef @.str.4)
  %11704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11705 = load i32, ptr %11704, align 4, !tbaa !5
  %11706 = call ptr @s2n_strerror_debug(i32 noundef %11705, ptr noundef @.str.4)
  %11707 = call ptr @__errno_location() #11
  %11708 = load i32, ptr %11707, align 4, !tbaa !5
  %11709 = call ptr @strerror(i32 noundef %11708) #10
  %11710 = call ptr @__errno_location() #11
  %11711 = load i32, ptr %11710, align 4, !tbaa !5
  %11712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11699, ptr noundef @.str.5, i32 noundef %11700, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 552, ptr noundef %11703, ptr noundef %11706, ptr noundef %11709, i32 noundef %11711) #10
  br label %11713

11713:                                            ; preds = %11696, %11679
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  br label %11714

11714:                                            ; preds = %11713
  br label %11715

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

11716:                                            ; No predecessors!
  br label %11717

11717:                                            ; preds = %11716
  br label %11718

11718:                                            ; preds = %11717, %11658
  br label %11719

11719:                                            ; preds = %11718
  br label %11720

11720:                                            ; preds = %11719
  br label %11721

11721:                                            ; preds = %11720
  %11722 = load i32, ptr @test_count, align 4, !tbaa !5
  %11723 = add nsw i32 %11722, 1
  store i32 %11723, ptr @test_count, align 4, !tbaa !5
  %11724 = load ptr, ptr %39, align 8, !tbaa !9
  %11725 = getelementptr inbounds %struct.s2n_security_policy, ptr %11724, i32 0, i32 3
  %11726 = load ptr, ptr %11725, align 8, !tbaa !38
  %11727 = icmp eq ptr %11726, @s2n_signature_preferences_20140601
  br i1 %11727, label %11781, label %11728

11728:                                            ; preds = %11721
  br label %11729

11729:                                            ; preds = %11728
  br label %11730

11730:                                            ; preds = %11729
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #10
  %11731 = call ptr @__errno_location() #11
  %11732 = load i32, ptr %11731, align 4, !tbaa !5
  store i32 %11732, ptr %221, align 4, !tbaa !5
  %11733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11734 = call i32 @s2n_print_stacktrace(ptr noundef %11733)
  %11735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11736 = trunc i8 %11735 to i1
  br i1 %11736, label %11737, label %11759

11737:                                            ; preds = %11730
  %11738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11739 = call i32 @fileno(ptr noundef %11738) #10
  %11740 = call i32 @isatty(i32 noundef %11739) #10
  %11741 = icmp ne i32 %11740, 0
  br i1 %11741, label %11742, label %11759

11742:                                            ; preds = %11737
  %11743 = load i32, ptr %221, align 4, !tbaa !5
  %11744 = call ptr @__errno_location() #11
  store i32 %11743, ptr %11744, align 4, !tbaa !5
  %11745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11746 = load i32, ptr @test_count, align 4, !tbaa !5
  %11747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11748 = load i32, ptr %11747, align 4, !tbaa !5
  %11749 = call ptr @s2n_strerror(i32 noundef %11748, ptr noundef @.str.4)
  %11750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11751 = load i32, ptr %11750, align 4, !tbaa !5
  %11752 = call ptr @s2n_strerror_debug(i32 noundef %11751, ptr noundef @.str.4)
  %11753 = call ptr @__errno_location() #11
  %11754 = load i32, ptr %11753, align 4, !tbaa !5
  %11755 = call ptr @strerror(i32 noundef %11754) #10
  %11756 = call ptr @__errno_location() #11
  %11757 = load i32, ptr %11756, align 4, !tbaa !5
  %11758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11745, ptr noundef @.str.2, i32 noundef %11746, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 553, ptr noundef %11749, ptr noundef %11752, ptr noundef %11755, i32 noundef %11757) #10
  br label %11776

11759:                                            ; preds = %11737, %11730
  %11760 = load i32, ptr %221, align 4, !tbaa !5
  %11761 = call ptr @__errno_location() #11
  store i32 %11760, ptr %11761, align 4, !tbaa !5
  %11762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11763 = load i32, ptr @test_count, align 4, !tbaa !5
  %11764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11765 = load i32, ptr %11764, align 4, !tbaa !5
  %11766 = call ptr @s2n_strerror(i32 noundef %11765, ptr noundef @.str.4)
  %11767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11768 = load i32, ptr %11767, align 4, !tbaa !5
  %11769 = call ptr @s2n_strerror_debug(i32 noundef %11768, ptr noundef @.str.4)
  %11770 = call ptr @__errno_location() #11
  %11771 = load i32, ptr %11770, align 4, !tbaa !5
  %11772 = call ptr @strerror(i32 noundef %11771) #10
  %11773 = call ptr @__errno_location() #11
  %11774 = load i32, ptr %11773, align 4, !tbaa !5
  %11775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11762, ptr noundef @.str.5, i32 noundef %11763, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 553, ptr noundef %11766, ptr noundef %11769, ptr noundef %11772, i32 noundef %11774) #10
  br label %11776

11776:                                            ; preds = %11759, %11742
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #10
  br label %11777

11777:                                            ; preds = %11776
  br label %11778

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

11779:                                            ; No predecessors!
  br label %11780

11780:                                            ; preds = %11779
  br label %11781

11781:                                            ; preds = %11780, %11721
  br label %11782

11782:                                            ; preds = %11781
  br label %11783

11783:                                            ; preds = %11782
  br label %11784

11784:                                            ; preds = %11783
  %11785 = load i32, ptr @test_count, align 4, !tbaa !5
  %11786 = add nsw i32 %11785, 1
  store i32 %11786, ptr @test_count, align 4, !tbaa !5
  %11787 = load ptr, ptr %39, align 8, !tbaa !9
  %11788 = getelementptr inbounds %struct.s2n_security_policy, ptr %11787, i32 0, i32 5
  %11789 = load ptr, ptr %11788, align 8, !tbaa !60
  %11790 = icmp eq ptr %11789, @s2n_ecc_preferences_20140601
  br i1 %11790, label %11844, label %11791

11791:                                            ; preds = %11784
  br label %11792

11792:                                            ; preds = %11791
  br label %11793

11793:                                            ; preds = %11792
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #10
  %11794 = call ptr @__errno_location() #11
  %11795 = load i32, ptr %11794, align 4, !tbaa !5
  store i32 %11795, ptr %222, align 4, !tbaa !5
  %11796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11797 = call i32 @s2n_print_stacktrace(ptr noundef %11796)
  %11798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11799 = trunc i8 %11798 to i1
  br i1 %11799, label %11800, label %11822

11800:                                            ; preds = %11793
  %11801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11802 = call i32 @fileno(ptr noundef %11801) #10
  %11803 = call i32 @isatty(i32 noundef %11802) #10
  %11804 = icmp ne i32 %11803, 0
  br i1 %11804, label %11805, label %11822

11805:                                            ; preds = %11800
  %11806 = load i32, ptr %222, align 4, !tbaa !5
  %11807 = call ptr @__errno_location() #11
  store i32 %11806, ptr %11807, align 4, !tbaa !5
  %11808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11809 = load i32, ptr @test_count, align 4, !tbaa !5
  %11810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11811 = load i32, ptr %11810, align 4, !tbaa !5
  %11812 = call ptr @s2n_strerror(i32 noundef %11811, ptr noundef @.str.4)
  %11813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11814 = load i32, ptr %11813, align 4, !tbaa !5
  %11815 = call ptr @s2n_strerror_debug(i32 noundef %11814, ptr noundef @.str.4)
  %11816 = call ptr @__errno_location() #11
  %11817 = load i32, ptr %11816, align 4, !tbaa !5
  %11818 = call ptr @strerror(i32 noundef %11817) #10
  %11819 = call ptr @__errno_location() #11
  %11820 = load i32, ptr %11819, align 4, !tbaa !5
  %11821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11808, ptr noundef @.str.2, i32 noundef %11809, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11812, ptr noundef %11815, ptr noundef %11818, i32 noundef %11820) #10
  br label %11839

11822:                                            ; preds = %11800, %11793
  %11823 = load i32, ptr %222, align 4, !tbaa !5
  %11824 = call ptr @__errno_location() #11
  store i32 %11823, ptr %11824, align 4, !tbaa !5
  %11825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11826 = load i32, ptr @test_count, align 4, !tbaa !5
  %11827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11828 = load i32, ptr %11827, align 4, !tbaa !5
  %11829 = call ptr @s2n_strerror(i32 noundef %11828, ptr noundef @.str.4)
  %11830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11831 = load i32, ptr %11830, align 4, !tbaa !5
  %11832 = call ptr @s2n_strerror_debug(i32 noundef %11831, ptr noundef @.str.4)
  %11833 = call ptr @__errno_location() #11
  %11834 = load i32, ptr %11833, align 4, !tbaa !5
  %11835 = call ptr @strerror(i32 noundef %11834) #10
  %11836 = call ptr @__errno_location() #11
  %11837 = load i32, ptr %11836, align 4, !tbaa !5
  %11838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11825, ptr noundef @.str.5, i32 noundef %11826, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11829, ptr noundef %11832, ptr noundef %11835, i32 noundef %11837) #10
  br label %11839

11839:                                            ; preds = %11822, %11805
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #10
  br label %11840

11840:                                            ; preds = %11839
  br label %11841

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

11842:                                            ; No predecessors!
  br label %11843

11843:                                            ; preds = %11842
  br label %11844

11844:                                            ; preds = %11843, %11784
  br label %11845

11845:                                            ; preds = %11844
  br label %11846

11846:                                            ; preds = %11845
  br label %11847

11847:                                            ; preds = %11846
  %11848 = load i32, ptr @test_count, align 4, !tbaa !5
  %11849 = add nsw i32 %11848, 1
  store i32 %11849, ptr @test_count, align 4, !tbaa !5
  %11850 = load ptr, ptr %215, align 8, !tbaa !9
  %11851 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11850, ptr noundef @.str.86)
  %11852 = icmp eq i32 %11851, -1
  br i1 %11852, label %11853, label %11906

11853:                                            ; preds = %11847
  br label %11854

11854:                                            ; preds = %11853
  br label %11855

11855:                                            ; preds = %11854
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #10
  %11856 = call ptr @__errno_location() #11
  %11857 = load i32, ptr %11856, align 4, !tbaa !5
  store i32 %11857, ptr %223, align 4, !tbaa !5
  %11858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11859 = call i32 @s2n_print_stacktrace(ptr noundef %11858)
  %11860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11861 = trunc i8 %11860 to i1
  br i1 %11861, label %11862, label %11884

11862:                                            ; preds = %11855
  %11863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11864 = call i32 @fileno(ptr noundef %11863) #10
  %11865 = call i32 @isatty(i32 noundef %11864) #10
  %11866 = icmp ne i32 %11865, 0
  br i1 %11866, label %11867, label %11884

11867:                                            ; preds = %11862
  %11868 = load i32, ptr %223, align 4, !tbaa !5
  %11869 = call ptr @__errno_location() #11
  store i32 %11868, ptr %11869, align 4, !tbaa !5
  %11870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11871 = load i32, ptr @test_count, align 4, !tbaa !5
  %11872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11873 = load i32, ptr %11872, align 4, !tbaa !5
  %11874 = call ptr @s2n_strerror(i32 noundef %11873, ptr noundef @.str.4)
  %11875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11876 = load i32, ptr %11875, align 4, !tbaa !5
  %11877 = call ptr @s2n_strerror_debug(i32 noundef %11876, ptr noundef @.str.4)
  %11878 = call ptr @__errno_location() #11
  %11879 = load i32, ptr %11878, align 4, !tbaa !5
  %11880 = call ptr @strerror(i32 noundef %11879) #10
  %11881 = call ptr @__errno_location() #11
  %11882 = load i32, ptr %11881, align 4, !tbaa !5
  %11883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11870, ptr noundef @.str.2, i32 noundef %11871, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 556, ptr noundef %11874, ptr noundef %11877, ptr noundef %11880, i32 noundef %11882) #10
  br label %11901

11884:                                            ; preds = %11862, %11855
  %11885 = load i32, ptr %223, align 4, !tbaa !5
  %11886 = call ptr @__errno_location() #11
  store i32 %11885, ptr %11886, align 4, !tbaa !5
  %11887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11888 = load i32, ptr @test_count, align 4, !tbaa !5
  %11889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11890 = load i32, ptr %11889, align 4, !tbaa !5
  %11891 = call ptr @s2n_strerror(i32 noundef %11890, ptr noundef @.str.4)
  %11892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11893 = load i32, ptr %11892, align 4, !tbaa !5
  %11894 = call ptr @s2n_strerror_debug(i32 noundef %11893, ptr noundef @.str.4)
  %11895 = call ptr @__errno_location() #11
  %11896 = load i32, ptr %11895, align 4, !tbaa !5
  %11897 = call ptr @strerror(i32 noundef %11896) #10
  %11898 = call ptr @__errno_location() #11
  %11899 = load i32, ptr %11898, align 4, !tbaa !5
  %11900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11887, ptr noundef @.str.5, i32 noundef %11888, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 556, ptr noundef %11891, ptr noundef %11894, ptr noundef %11897, i32 noundef %11899) #10
  br label %11901

11901:                                            ; preds = %11884, %11867
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #10
  br label %11902

11902:                                            ; preds = %11901
  br label %11903

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

11904:                                            ; No predecessors!
  br label %11905

11905:                                            ; preds = %11904
  br label %11906

11906:                                            ; preds = %11905, %11847
  br label %11907

11907:                                            ; preds = %11906
  br label %11908

11908:                                            ; preds = %11907
  br label %11909

11909:                                            ; preds = %11908
  %11910 = load i32, ptr @test_count, align 4, !tbaa !5
  %11911 = add nsw i32 %11910, 1
  store i32 %11911, ptr @test_count, align 4, !tbaa !5
  %11912 = load ptr, ptr %215, align 8, !tbaa !9
  %11913 = call i32 @s2n_connection_get_security_policy(ptr noundef %11912, ptr noundef %39)
  %11914 = icmp eq i32 %11913, -1
  br i1 %11914, label %11915, label %11968

11915:                                            ; preds = %11909
  br label %11916

11916:                                            ; preds = %11915
  br label %11917

11917:                                            ; preds = %11916
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #10
  %11918 = call ptr @__errno_location() #11
  %11919 = load i32, ptr %11918, align 4, !tbaa !5
  store i32 %11919, ptr %224, align 4, !tbaa !5
  %11920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11921 = call i32 @s2n_print_stacktrace(ptr noundef %11920)
  %11922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11923 = trunc i8 %11922 to i1
  br i1 %11923, label %11924, label %11946

11924:                                            ; preds = %11917
  %11925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11926 = call i32 @fileno(ptr noundef %11925) #10
  %11927 = call i32 @isatty(i32 noundef %11926) #10
  %11928 = icmp ne i32 %11927, 0
  br i1 %11928, label %11929, label %11946

11929:                                            ; preds = %11924
  %11930 = load i32, ptr %224, align 4, !tbaa !5
  %11931 = call ptr @__errno_location() #11
  store i32 %11930, ptr %11931, align 4, !tbaa !5
  %11932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11933 = load i32, ptr @test_count, align 4, !tbaa !5
  %11934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11935 = load i32, ptr %11934, align 4, !tbaa !5
  %11936 = call ptr @s2n_strerror(i32 noundef %11935, ptr noundef @.str.4)
  %11937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11938 = load i32, ptr %11937, align 4, !tbaa !5
  %11939 = call ptr @s2n_strerror_debug(i32 noundef %11938, ptr noundef @.str.4)
  %11940 = call ptr @__errno_location() #11
  %11941 = load i32, ptr %11940, align 4, !tbaa !5
  %11942 = call ptr @strerror(i32 noundef %11941) #10
  %11943 = call ptr @__errno_location() #11
  %11944 = load i32, ptr %11943, align 4, !tbaa !5
  %11945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11932, ptr noundef @.str.2, i32 noundef %11933, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 557, ptr noundef %11936, ptr noundef %11939, ptr noundef %11942, i32 noundef %11944) #10
  br label %11963

11946:                                            ; preds = %11924, %11917
  %11947 = load i32, ptr %224, align 4, !tbaa !5
  %11948 = call ptr @__errno_location() #11
  store i32 %11947, ptr %11948, align 4, !tbaa !5
  %11949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11950 = load i32, ptr @test_count, align 4, !tbaa !5
  %11951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11952 = load i32, ptr %11951, align 4, !tbaa !5
  %11953 = call ptr @s2n_strerror(i32 noundef %11952, ptr noundef @.str.4)
  %11954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11955 = load i32, ptr %11954, align 4, !tbaa !5
  %11956 = call ptr @s2n_strerror_debug(i32 noundef %11955, ptr noundef @.str.4)
  %11957 = call ptr @__errno_location() #11
  %11958 = load i32, ptr %11957, align 4, !tbaa !5
  %11959 = call ptr @strerror(i32 noundef %11958) #10
  %11960 = call ptr @__errno_location() #11
  %11961 = load i32, ptr %11960, align 4, !tbaa !5
  %11962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11949, ptr noundef @.str.5, i32 noundef %11950, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 557, ptr noundef %11953, ptr noundef %11956, ptr noundef %11959, i32 noundef %11961) #10
  br label %11963

11963:                                            ; preds = %11946, %11929
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #10
  br label %11964

11964:                                            ; preds = %11963
  br label %11965

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

11966:                                            ; No predecessors!
  br label %11967

11967:                                            ; preds = %11966
  br label %11968

11968:                                            ; preds = %11967, %11909
  br label %11969

11969:                                            ; preds = %11968
  br label %11970

11970:                                            ; preds = %11969
  br label %11971

11971:                                            ; preds = %11970
  %11972 = load i32, ptr @test_count, align 4, !tbaa !5
  %11973 = add nsw i32 %11972, 1
  store i32 %11973, ptr @test_count, align 4, !tbaa !5
  %11974 = load ptr, ptr %39, align 8, !tbaa !9
  %11975 = icmp eq ptr %11974, @security_policy_20190801
  br i1 %11975, label %12029, label %11976

11976:                                            ; preds = %11971
  br label %11977

11977:                                            ; preds = %11976
  br label %11978

11978:                                            ; preds = %11977
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #10
  %11979 = call ptr @__errno_location() #11
  %11980 = load i32, ptr %11979, align 4, !tbaa !5
  store i32 %11980, ptr %225, align 4, !tbaa !5
  %11981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11982 = call i32 @s2n_print_stacktrace(ptr noundef %11981)
  %11983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11984 = trunc i8 %11983 to i1
  br i1 %11984, label %11985, label %12007

11985:                                            ; preds = %11978
  %11986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11987 = call i32 @fileno(ptr noundef %11986) #10
  %11988 = call i32 @isatty(i32 noundef %11987) #10
  %11989 = icmp ne i32 %11988, 0
  br i1 %11989, label %11990, label %12007

11990:                                            ; preds = %11985
  %11991 = load i32, ptr %225, align 4, !tbaa !5
  %11992 = call ptr @__errno_location() #11
  store i32 %11991, ptr %11992, align 4, !tbaa !5
  %11993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11994 = load i32, ptr @test_count, align 4, !tbaa !5
  %11995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11996 = load i32, ptr %11995, align 4, !tbaa !5
  %11997 = call ptr @s2n_strerror(i32 noundef %11996, ptr noundef @.str.4)
  %11998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11999 = load i32, ptr %11998, align 4, !tbaa !5
  %12000 = call ptr @s2n_strerror_debug(i32 noundef %11999, ptr noundef @.str.4)
  %12001 = call ptr @__errno_location() #11
  %12002 = load i32, ptr %12001, align 4, !tbaa !5
  %12003 = call ptr @strerror(i32 noundef %12002) #10
  %12004 = call ptr @__errno_location() #11
  %12005 = load i32, ptr %12004, align 4, !tbaa !5
  %12006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11993, ptr noundef @.str.2, i32 noundef %11994, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 558, ptr noundef %11997, ptr noundef %12000, ptr noundef %12003, i32 noundef %12005) #10
  br label %12024

12007:                                            ; preds = %11985, %11978
  %12008 = load i32, ptr %225, align 4, !tbaa !5
  %12009 = call ptr @__errno_location() #11
  store i32 %12008, ptr %12009, align 4, !tbaa !5
  %12010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12011 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %12013, ptr noundef @.str.4)
  %12015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12016 = load i32, ptr %12015, align 4, !tbaa !5
  %12017 = call ptr @s2n_strerror_debug(i32 noundef %12016, ptr noundef @.str.4)
  %12018 = call ptr @__errno_location() #11
  %12019 = load i32, ptr %12018, align 4, !tbaa !5
  %12020 = call ptr @strerror(i32 noundef %12019) #10
  %12021 = call ptr @__errno_location() #11
  %12022 = load i32, ptr %12021, align 4, !tbaa !5
  %12023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12010, ptr noundef @.str.5, i32 noundef %12011, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 558, ptr noundef %12014, ptr noundef %12017, ptr noundef %12020, i32 noundef %12022) #10
  br label %12024

12024:                                            ; preds = %12007, %11990
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #10
  br label %12025

12025:                                            ; preds = %12024
  br label %12026

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

12027:                                            ; No predecessors!
  br label %12028

12028:                                            ; preds = %12027
  br label %12029

12029:                                            ; preds = %12028, %11971
  br label %12030

12030:                                            ; preds = %12029
  br label %12031

12031:                                            ; preds = %12030
  br label %12032

12032:                                            ; preds = %12031
  %12033 = load i32, ptr @test_count, align 4, !tbaa !5
  %12034 = add nsw i32 %12033, 1
  store i32 %12034, ptr @test_count, align 4, !tbaa !5
  %12035 = load ptr, ptr %39, align 8, !tbaa !9
  %12036 = getelementptr inbounds %struct.s2n_security_policy, ptr %12035, i32 0, i32 1
  %12037 = load ptr, ptr %12036, align 8, !tbaa !31
  %12038 = icmp eq ptr %12037, @cipher_preferences_20190801
  br i1 %12038, label %12092, label %12039

12039:                                            ; preds = %12032
  br label %12040

12040:                                            ; preds = %12039
  br label %12041

12041:                                            ; preds = %12040
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #10
  %12042 = call ptr @__errno_location() #11
  %12043 = load i32, ptr %12042, align 4, !tbaa !5
  store i32 %12043, ptr %226, align 4, !tbaa !5
  %12044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12045 = call i32 @s2n_print_stacktrace(ptr noundef %12044)
  %12046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12047 = trunc i8 %12046 to i1
  br i1 %12047, label %12048, label %12070

12048:                                            ; preds = %12041
  %12049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12050 = call i32 @fileno(ptr noundef %12049) #10
  %12051 = call i32 @isatty(i32 noundef %12050) #10
  %12052 = icmp ne i32 %12051, 0
  br i1 %12052, label %12053, label %12070

12053:                                            ; preds = %12048
  %12054 = load i32, ptr %226, align 4, !tbaa !5
  %12055 = call ptr @__errno_location() #11
  store i32 %12054, ptr %12055, align 4, !tbaa !5
  %12056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12057 = load i32, ptr @test_count, align 4, !tbaa !5
  %12058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12059 = load i32, ptr %12058, align 4, !tbaa !5
  %12060 = call ptr @s2n_strerror(i32 noundef %12059, ptr noundef @.str.4)
  %12061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12062 = load i32, ptr %12061, align 4, !tbaa !5
  %12063 = call ptr @s2n_strerror_debug(i32 noundef %12062, ptr noundef @.str.4)
  %12064 = call ptr @__errno_location() #11
  %12065 = load i32, ptr %12064, align 4, !tbaa !5
  %12066 = call ptr @strerror(i32 noundef %12065) #10
  %12067 = call ptr @__errno_location() #11
  %12068 = load i32, ptr %12067, align 4, !tbaa !5
  %12069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12056, ptr noundef @.str.2, i32 noundef %12057, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 559, ptr noundef %12060, ptr noundef %12063, ptr noundef %12066, i32 noundef %12068) #10
  br label %12087

12070:                                            ; preds = %12048, %12041
  %12071 = load i32, ptr %226, align 4, !tbaa !5
  %12072 = call ptr @__errno_location() #11
  store i32 %12071, ptr %12072, align 4, !tbaa !5
  %12073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12074 = load i32, ptr @test_count, align 4, !tbaa !5
  %12075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12076 = load i32, ptr %12075, align 4, !tbaa !5
  %12077 = call ptr @s2n_strerror(i32 noundef %12076, ptr noundef @.str.4)
  %12078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12079 = load i32, ptr %12078, align 4, !tbaa !5
  %12080 = call ptr @s2n_strerror_debug(i32 noundef %12079, ptr noundef @.str.4)
  %12081 = call ptr @__errno_location() #11
  %12082 = load i32, ptr %12081, align 4, !tbaa !5
  %12083 = call ptr @strerror(i32 noundef %12082) #10
  %12084 = call ptr @__errno_location() #11
  %12085 = load i32, ptr %12084, align 4, !tbaa !5
  %12086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12073, ptr noundef @.str.5, i32 noundef %12074, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 559, ptr noundef %12077, ptr noundef %12080, ptr noundef %12083, i32 noundef %12085) #10
  br label %12087

12087:                                            ; preds = %12070, %12053
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #10
  br label %12088

12088:                                            ; preds = %12087
  br label %12089

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

12090:                                            ; No predecessors!
  br label %12091

12091:                                            ; preds = %12090
  br label %12092

12092:                                            ; preds = %12091, %12032
  br label %12093

12093:                                            ; preds = %12092
  br label %12094

12094:                                            ; preds = %12093
  br label %12095

12095:                                            ; preds = %12094
  %12096 = load i32, ptr @test_count, align 4, !tbaa !5
  %12097 = add nsw i32 %12096, 1
  store i32 %12097, ptr @test_count, align 4, !tbaa !5
  %12098 = load ptr, ptr %39, align 8, !tbaa !9
  %12099 = getelementptr inbounds %struct.s2n_security_policy, ptr %12098, i32 0, i32 2
  %12100 = load ptr, ptr %12099, align 8, !tbaa !20
  %12101 = icmp eq ptr %12100, @kem_preferences_null
  br i1 %12101, label %12155, label %12102

12102:                                            ; preds = %12095
  br label %12103

12103:                                            ; preds = %12102
  br label %12104

12104:                                            ; preds = %12103
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #10
  %12105 = call ptr @__errno_location() #11
  %12106 = load i32, ptr %12105, align 4, !tbaa !5
  store i32 %12106, ptr %227, align 4, !tbaa !5
  %12107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12108 = call i32 @s2n_print_stacktrace(ptr noundef %12107)
  %12109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12110 = trunc i8 %12109 to i1
  br i1 %12110, label %12111, label %12133

12111:                                            ; preds = %12104
  %12112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12113 = call i32 @fileno(ptr noundef %12112) #10
  %12114 = call i32 @isatty(i32 noundef %12113) #10
  %12115 = icmp ne i32 %12114, 0
  br i1 %12115, label %12116, label %12133

12116:                                            ; preds = %12111
  %12117 = load i32, ptr %227, align 4, !tbaa !5
  %12118 = call ptr @__errno_location() #11
  store i32 %12117, ptr %12118, align 4, !tbaa !5
  %12119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12120 = load i32, ptr @test_count, align 4, !tbaa !5
  %12121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12122 = load i32, ptr %12121, align 4, !tbaa !5
  %12123 = call ptr @s2n_strerror(i32 noundef %12122, ptr noundef @.str.4)
  %12124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12125 = load i32, ptr %12124, align 4, !tbaa !5
  %12126 = call ptr @s2n_strerror_debug(i32 noundef %12125, ptr noundef @.str.4)
  %12127 = call ptr @__errno_location() #11
  %12128 = load i32, ptr %12127, align 4, !tbaa !5
  %12129 = call ptr @strerror(i32 noundef %12128) #10
  %12130 = call ptr @__errno_location() #11
  %12131 = load i32, ptr %12130, align 4, !tbaa !5
  %12132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12119, ptr noundef @.str.2, i32 noundef %12120, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 560, ptr noundef %12123, ptr noundef %12126, ptr noundef %12129, i32 noundef %12131) #10
  br label %12150

12133:                                            ; preds = %12111, %12104
  %12134 = load i32, ptr %227, align 4, !tbaa !5
  %12135 = call ptr @__errno_location() #11
  store i32 %12134, ptr %12135, align 4, !tbaa !5
  %12136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12137 = load i32, ptr @test_count, align 4, !tbaa !5
  %12138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12139 = load i32, ptr %12138, align 4, !tbaa !5
  %12140 = call ptr @s2n_strerror(i32 noundef %12139, ptr noundef @.str.4)
  %12141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12142 = load i32, ptr %12141, align 4, !tbaa !5
  %12143 = call ptr @s2n_strerror_debug(i32 noundef %12142, ptr noundef @.str.4)
  %12144 = call ptr @__errno_location() #11
  %12145 = load i32, ptr %12144, align 4, !tbaa !5
  %12146 = call ptr @strerror(i32 noundef %12145) #10
  %12147 = call ptr @__errno_location() #11
  %12148 = load i32, ptr %12147, align 4, !tbaa !5
  %12149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12136, ptr noundef @.str.5, i32 noundef %12137, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 560, ptr noundef %12140, ptr noundef %12143, ptr noundef %12146, i32 noundef %12148) #10
  br label %12150

12150:                                            ; preds = %12133, %12116
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #10
  br label %12151

12151:                                            ; preds = %12150
  br label %12152

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

12153:                                            ; No predecessors!
  br label %12154

12154:                                            ; preds = %12153
  br label %12155

12155:                                            ; preds = %12154, %12095
  br label %12156

12156:                                            ; preds = %12155
  br label %12157

12157:                                            ; preds = %12156
  br label %12158

12158:                                            ; preds = %12157
  %12159 = load i32, ptr @test_count, align 4, !tbaa !5
  %12160 = add nsw i32 %12159, 1
  store i32 %12160, ptr @test_count, align 4, !tbaa !5
  %12161 = load ptr, ptr %39, align 8, !tbaa !9
  %12162 = getelementptr inbounds %struct.s2n_security_policy, ptr %12161, i32 0, i32 3
  %12163 = load ptr, ptr %12162, align 8, !tbaa !38
  %12164 = icmp eq ptr %12163, @s2n_signature_preferences_20200207
  br i1 %12164, label %12218, label %12165

12165:                                            ; preds = %12158
  br label %12166

12166:                                            ; preds = %12165
  br label %12167

12167:                                            ; preds = %12166
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #10
  %12168 = call ptr @__errno_location() #11
  %12169 = load i32, ptr %12168, align 4, !tbaa !5
  store i32 %12169, ptr %228, align 4, !tbaa !5
  %12170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12171 = call i32 @s2n_print_stacktrace(ptr noundef %12170)
  %12172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12173 = trunc i8 %12172 to i1
  br i1 %12173, label %12174, label %12196

12174:                                            ; preds = %12167
  %12175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12176 = call i32 @fileno(ptr noundef %12175) #10
  %12177 = call i32 @isatty(i32 noundef %12176) #10
  %12178 = icmp ne i32 %12177, 0
  br i1 %12178, label %12179, label %12196

12179:                                            ; preds = %12174
  %12180 = load i32, ptr %228, align 4, !tbaa !5
  %12181 = call ptr @__errno_location() #11
  store i32 %12180, ptr %12181, align 4, !tbaa !5
  %12182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12183 = load i32, ptr @test_count, align 4, !tbaa !5
  %12184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12185 = load i32, ptr %12184, align 4, !tbaa !5
  %12186 = call ptr @s2n_strerror(i32 noundef %12185, ptr noundef @.str.4)
  %12187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12188 = load i32, ptr %12187, align 4, !tbaa !5
  %12189 = call ptr @s2n_strerror_debug(i32 noundef %12188, ptr noundef @.str.4)
  %12190 = call ptr @__errno_location() #11
  %12191 = load i32, ptr %12190, align 4, !tbaa !5
  %12192 = call ptr @strerror(i32 noundef %12191) #10
  %12193 = call ptr @__errno_location() #11
  %12194 = load i32, ptr %12193, align 4, !tbaa !5
  %12195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12182, ptr noundef @.str.2, i32 noundef %12183, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 561, ptr noundef %12186, ptr noundef %12189, ptr noundef %12192, i32 noundef %12194) #10
  br label %12213

12196:                                            ; preds = %12174, %12167
  %12197 = load i32, ptr %228, align 4, !tbaa !5
  %12198 = call ptr @__errno_location() #11
  store i32 %12197, ptr %12198, align 4, !tbaa !5
  %12199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12200 = load i32, ptr @test_count, align 4, !tbaa !5
  %12201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12202 = load i32, ptr %12201, align 4, !tbaa !5
  %12203 = call ptr @s2n_strerror(i32 noundef %12202, ptr noundef @.str.4)
  %12204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12205 = load i32, ptr %12204, align 4, !tbaa !5
  %12206 = call ptr @s2n_strerror_debug(i32 noundef %12205, ptr noundef @.str.4)
  %12207 = call ptr @__errno_location() #11
  %12208 = load i32, ptr %12207, align 4, !tbaa !5
  %12209 = call ptr @strerror(i32 noundef %12208) #10
  %12210 = call ptr @__errno_location() #11
  %12211 = load i32, ptr %12210, align 4, !tbaa !5
  %12212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12199, ptr noundef @.str.5, i32 noundef %12200, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 561, ptr noundef %12203, ptr noundef %12206, ptr noundef %12209, i32 noundef %12211) #10
  br label %12213

12213:                                            ; preds = %12196, %12179
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  br label %12214

12214:                                            ; preds = %12213
  br label %12215

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

12216:                                            ; No predecessors!
  br label %12217

12217:                                            ; preds = %12216
  br label %12218

12218:                                            ; preds = %12217, %12158
  br label %12219

12219:                                            ; preds = %12218
  br label %12220

12220:                                            ; preds = %12219
  br label %12221

12221:                                            ; preds = %12220
  %12222 = load i32, ptr @test_count, align 4, !tbaa !5
  %12223 = add nsw i32 %12222, 1
  store i32 %12223, ptr @test_count, align 4, !tbaa !5
  %12224 = load ptr, ptr %39, align 8, !tbaa !9
  %12225 = getelementptr inbounds %struct.s2n_security_policy, ptr %12224, i32 0, i32 5
  %12226 = load ptr, ptr %12225, align 8, !tbaa !60
  %12227 = icmp eq ptr %12226, @s2n_ecc_preferences_20200310
  br i1 %12227, label %12281, label %12228

12228:                                            ; preds = %12221
  br label %12229

12229:                                            ; preds = %12228
  br label %12230

12230:                                            ; preds = %12229
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #10
  %12231 = call ptr @__errno_location() #11
  %12232 = load i32, ptr %12231, align 4, !tbaa !5
  store i32 %12232, ptr %229, align 4, !tbaa !5
  %12233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12234 = call i32 @s2n_print_stacktrace(ptr noundef %12233)
  %12235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12236 = trunc i8 %12235 to i1
  br i1 %12236, label %12237, label %12259

12237:                                            ; preds = %12230
  %12238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12239 = call i32 @fileno(ptr noundef %12238) #10
  %12240 = call i32 @isatty(i32 noundef %12239) #10
  %12241 = icmp ne i32 %12240, 0
  br i1 %12241, label %12242, label %12259

12242:                                            ; preds = %12237
  %12243 = load i32, ptr %229, align 4, !tbaa !5
  %12244 = call ptr @__errno_location() #11
  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() #11
  %12254 = load i32, ptr %12253, align 4, !tbaa !5
  %12255 = call ptr @strerror(i32 noundef %12254) #10
  %12256 = call ptr @__errno_location() #11
  %12257 = load i32, ptr %12256, align 4, !tbaa !5
  %12258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12245, ptr noundef @.str.2, i32 noundef %12246, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 562, ptr noundef %12249, ptr noundef %12252, ptr noundef %12255, i32 noundef %12257) #10
  br label %12276

12259:                                            ; preds = %12237, %12230
  %12260 = load i32, ptr %229, align 4, !tbaa !5
  %12261 = call ptr @__errno_location() #11
  store i32 %12260, ptr %12261, align 4, !tbaa !5
  %12262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12263 = load i32, ptr @test_count, align 4, !tbaa !5
  %12264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12265 = load i32, ptr %12264, align 4, !tbaa !5
  %12266 = call ptr @s2n_strerror(i32 noundef %12265, ptr noundef @.str.4)
  %12267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12268 = load i32, ptr %12267, align 4, !tbaa !5
  %12269 = call ptr @s2n_strerror_debug(i32 noundef %12268, ptr noundef @.str.4)
  %12270 = call ptr @__errno_location() #11
  %12271 = load i32, ptr %12270, align 4, !tbaa !5
  %12272 = call ptr @strerror(i32 noundef %12271) #10
  %12273 = call ptr @__errno_location() #11
  %12274 = load i32, ptr %12273, align 4, !tbaa !5
  %12275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12262, ptr noundef @.str.5, i32 noundef %12263, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 562, ptr noundef %12266, ptr noundef %12269, ptr noundef %12272, i32 noundef %12274) #10
  br label %12276

12276:                                            ; preds = %12259, %12242
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #10
  br label %12277

12277:                                            ; preds = %12276
  br label %12278

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

12279:                                            ; No predecessors!
  br label %12280

12280:                                            ; preds = %12279
  br label %12281

12281:                                            ; preds = %12280, %12221
  br label %12282

12282:                                            ; preds = %12281
  br label %12283

12283:                                            ; preds = %12282
  br label %12284

12284:                                            ; preds = %12283
  %12285 = load i32, ptr @test_count, align 4, !tbaa !5
  %12286 = add nsw i32 %12285, 1
  store i32 %12286, ptr @test_count, align 4, !tbaa !5
  %12287 = load ptr, ptr %215, align 8, !tbaa !9
  %12288 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %12287, ptr noundef @.str.50)
  %12289 = icmp eq i32 %12288, -1
  br i1 %12289, label %12290, label %12343

12290:                                            ; preds = %12284
  br label %12291

12291:                                            ; preds = %12290
  br label %12292

12292:                                            ; preds = %12291
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #10
  %12293 = call ptr @__errno_location() #11
  %12294 = load i32, ptr %12293, align 4, !tbaa !5
  store i32 %12294, ptr %230, align 4, !tbaa !5
  %12295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12296 = call i32 @s2n_print_stacktrace(ptr noundef %12295)
  %12297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12298 = trunc i8 %12297 to i1
  br i1 %12298, label %12299, label %12321

12299:                                            ; preds = %12292
  %12300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12301 = call i32 @fileno(ptr noundef %12300) #10
  %12302 = call i32 @isatty(i32 noundef %12301) #10
  %12303 = icmp ne i32 %12302, 0
  br i1 %12303, label %12304, label %12321

12304:                                            ; preds = %12299
  %12305 = load i32, ptr %230, align 4, !tbaa !5
  %12306 = call ptr @__errno_location() #11
  store i32 %12305, ptr %12306, align 4, !tbaa !5
  %12307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12308 = load i32, ptr @test_count, align 4, !tbaa !5
  %12309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12310 = load i32, ptr %12309, align 4, !tbaa !5
  %12311 = call ptr @s2n_strerror(i32 noundef %12310, ptr noundef @.str.4)
  %12312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12313 = load i32, ptr %12312, align 4, !tbaa !5
  %12314 = call ptr @s2n_strerror_debug(i32 noundef %12313, ptr noundef @.str.4)
  %12315 = call ptr @__errno_location() #11
  %12316 = load i32, ptr %12315, align 4, !tbaa !5
  %12317 = call ptr @strerror(i32 noundef %12316) #10
  %12318 = call ptr @__errno_location() #11
  %12319 = load i32, ptr %12318, align 4, !tbaa !5
  %12320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12307, ptr noundef @.str.2, i32 noundef %12308, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 564, ptr noundef %12311, ptr noundef %12314, ptr noundef %12317, i32 noundef %12319) #10
  br label %12338

12321:                                            ; preds = %12299, %12292
  %12322 = load i32, ptr %230, align 4, !tbaa !5
  %12323 = call ptr @__errno_location() #11
  store i32 %12322, ptr %12323, align 4, !tbaa !5
  %12324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12325 = load i32, ptr @test_count, align 4, !tbaa !5
  %12326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12327 = load i32, ptr %12326, align 4, !tbaa !5
  %12328 = call ptr @s2n_strerror(i32 noundef %12327, ptr noundef @.str.4)
  %12329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12330 = load i32, ptr %12329, align 4, !tbaa !5
  %12331 = call ptr @s2n_strerror_debug(i32 noundef %12330, ptr noundef @.str.4)
  %12332 = call ptr @__errno_location() #11
  %12333 = load i32, ptr %12332, align 4, !tbaa !5
  %12334 = call ptr @strerror(i32 noundef %12333) #10
  %12335 = call ptr @__errno_location() #11
  %12336 = load i32, ptr %12335, align 4, !tbaa !5
  %12337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12324, ptr noundef @.str.5, i32 noundef %12325, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 564, ptr noundef %12328, ptr noundef %12331, ptr noundef %12334, i32 noundef %12336) #10
  br label %12338

12338:                                            ; preds = %12321, %12304
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #10
  br label %12339

12339:                                            ; preds = %12338
  br label %12340

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

12341:                                            ; No predecessors!
  br label %12342

12342:                                            ; preds = %12341
  br label %12343

12343:                                            ; preds = %12342, %12284
  br label %12344

12344:                                            ; preds = %12343
  br label %12345

12345:                                            ; preds = %12344
  br label %12346

12346:                                            ; preds = %12345
  %12347 = load i32, ptr @test_count, align 4, !tbaa !5
  %12348 = add nsw i32 %12347, 1
  store i32 %12348, ptr @test_count, align 4, !tbaa !5
  %12349 = load ptr, ptr %215, align 8, !tbaa !9
  %12350 = call i32 @s2n_connection_get_security_policy(ptr noundef %12349, ptr noundef %39)
  %12351 = icmp eq i32 %12350, -1
  br i1 %12351, label %12352, label %12405

12352:                                            ; preds = %12346
  br label %12353

12353:                                            ; preds = %12352
  br label %12354

12354:                                            ; preds = %12353
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #10
  %12355 = call ptr @__errno_location() #11
  %12356 = load i32, ptr %12355, align 4, !tbaa !5
  store i32 %12356, ptr %231, align 4, !tbaa !5
  %12357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12358 = call i32 @s2n_print_stacktrace(ptr noundef %12357)
  %12359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12360 = trunc i8 %12359 to i1
  br i1 %12360, label %12361, label %12383

12361:                                            ; preds = %12354
  %12362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12363 = call i32 @fileno(ptr noundef %12362) #10
  %12364 = call i32 @isatty(i32 noundef %12363) #10
  %12365 = icmp ne i32 %12364, 0
  br i1 %12365, label %12366, label %12383

12366:                                            ; preds = %12361
  %12367 = load i32, ptr %231, align 4, !tbaa !5
  %12368 = call ptr @__errno_location() #11
  store i32 %12367, ptr %12368, align 4, !tbaa !5
  %12369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12370 = load i32, ptr @test_count, align 4, !tbaa !5
  %12371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12372 = load i32, ptr %12371, align 4, !tbaa !5
  %12373 = call ptr @s2n_strerror(i32 noundef %12372, ptr noundef @.str.4)
  %12374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12375 = load i32, ptr %12374, align 4, !tbaa !5
  %12376 = call ptr @s2n_strerror_debug(i32 noundef %12375, ptr noundef @.str.4)
  %12377 = call ptr @__errno_location() #11
  %12378 = load i32, ptr %12377, align 4, !tbaa !5
  %12379 = call ptr @strerror(i32 noundef %12378) #10
  %12380 = call ptr @__errno_location() #11
  %12381 = load i32, ptr %12380, align 4, !tbaa !5
  %12382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12369, ptr noundef @.str.2, i32 noundef %12370, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 565, ptr noundef %12373, ptr noundef %12376, ptr noundef %12379, i32 noundef %12381) #10
  br label %12400

12383:                                            ; preds = %12361, %12354
  %12384 = load i32, ptr %231, align 4, !tbaa !5
  %12385 = call ptr @__errno_location() #11
  store i32 %12384, ptr %12385, align 4, !tbaa !5
  %12386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12387 = load i32, ptr @test_count, align 4, !tbaa !5
  %12388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12389 = load i32, ptr %12388, align 4, !tbaa !5
  %12390 = call ptr @s2n_strerror(i32 noundef %12389, ptr noundef @.str.4)
  %12391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12392 = load i32, ptr %12391, align 4, !tbaa !5
  %12393 = call ptr @s2n_strerror_debug(i32 noundef %12392, ptr noundef @.str.4)
  %12394 = call ptr @__errno_location() #11
  %12395 = load i32, ptr %12394, align 4, !tbaa !5
  %12396 = call ptr @strerror(i32 noundef %12395) #10
  %12397 = call ptr @__errno_location() #11
  %12398 = load i32, ptr %12397, align 4, !tbaa !5
  %12399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12386, ptr noundef @.str.5, i32 noundef %12387, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 565, ptr noundef %12390, ptr noundef %12393, ptr noundef %12396, i32 noundef %12398) #10
  br label %12400

12400:                                            ; preds = %12383, %12366
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #10
  br label %12401

12401:                                            ; preds = %12400
  br label %12402

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

12403:                                            ; No predecessors!
  br label %12404

12404:                                            ; preds = %12403
  br label %12405

12405:                                            ; preds = %12404, %12346
  br label %12406

12406:                                            ; preds = %12405
  br label %12407

12407:                                            ; preds = %12406
  br label %12408

12408:                                            ; preds = %12407
  %12409 = load i32, ptr @test_count, align 4, !tbaa !5
  %12410 = add nsw i32 %12409, 1
  store i32 %12410, ptr @test_count, align 4, !tbaa !5
  %12411 = load ptr, ptr %39, align 8, !tbaa !9
  %12412 = icmp eq ptr %12411, @security_policy_test_all
  br i1 %12412, label %12466, label %12413

12413:                                            ; preds = %12408
  br label %12414

12414:                                            ; preds = %12413
  br label %12415

12415:                                            ; preds = %12414
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #10
  %12416 = call ptr @__errno_location() #11
  %12417 = load i32, ptr %12416, align 4, !tbaa !5
  store i32 %12417, ptr %232, align 4, !tbaa !5
  %12418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12419 = call i32 @s2n_print_stacktrace(ptr noundef %12418)
  %12420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12421 = trunc i8 %12420 to i1
  br i1 %12421, label %12422, label %12444

12422:                                            ; preds = %12415
  %12423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12424 = call i32 @fileno(ptr noundef %12423) #10
  %12425 = call i32 @isatty(i32 noundef %12424) #10
  %12426 = icmp ne i32 %12425, 0
  br i1 %12426, label %12427, label %12444

12427:                                            ; preds = %12422
  %12428 = load i32, ptr %232, align 4, !tbaa !5
  %12429 = call ptr @__errno_location() #11
  store i32 %12428, ptr %12429, align 4, !tbaa !5
  %12430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12431 = load i32, ptr @test_count, align 4, !tbaa !5
  %12432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12433 = load i32, ptr %12432, align 4, !tbaa !5
  %12434 = call ptr @s2n_strerror(i32 noundef %12433, ptr noundef @.str.4)
  %12435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12436 = load i32, ptr %12435, align 4, !tbaa !5
  %12437 = call ptr @s2n_strerror_debug(i32 noundef %12436, ptr noundef @.str.4)
  %12438 = call ptr @__errno_location() #11
  %12439 = load i32, ptr %12438, align 4, !tbaa !5
  %12440 = call ptr @strerror(i32 noundef %12439) #10
  %12441 = call ptr @__errno_location() #11
  %12442 = load i32, ptr %12441, align 4, !tbaa !5
  %12443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12430, ptr noundef @.str.2, i32 noundef %12431, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 566, ptr noundef %12434, ptr noundef %12437, ptr noundef %12440, i32 noundef %12442) #10
  br label %12461

12444:                                            ; preds = %12422, %12415
  %12445 = load i32, ptr %232, align 4, !tbaa !5
  %12446 = call ptr @__errno_location() #11
  store i32 %12445, ptr %12446, align 4, !tbaa !5
  %12447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12448 = load i32, ptr @test_count, align 4, !tbaa !5
  %12449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12450 = load i32, ptr %12449, align 4, !tbaa !5
  %12451 = call ptr @s2n_strerror(i32 noundef %12450, ptr noundef @.str.4)
  %12452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12453 = load i32, ptr %12452, align 4, !tbaa !5
  %12454 = call ptr @s2n_strerror_debug(i32 noundef %12453, ptr noundef @.str.4)
  %12455 = call ptr @__errno_location() #11
  %12456 = load i32, ptr %12455, align 4, !tbaa !5
  %12457 = call ptr @strerror(i32 noundef %12456) #10
  %12458 = call ptr @__errno_location() #11
  %12459 = load i32, ptr %12458, align 4, !tbaa !5
  %12460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12447, ptr noundef @.str.5, i32 noundef %12448, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 566, ptr noundef %12451, ptr noundef %12454, ptr noundef %12457, i32 noundef %12459) #10
  br label %12461

12461:                                            ; preds = %12444, %12427
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #10
  br label %12462

12462:                                            ; preds = %12461
  br label %12463

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

12464:                                            ; No predecessors!
  br label %12465

12465:                                            ; preds = %12464
  br label %12466

12466:                                            ; preds = %12465, %12408
  br label %12467

12467:                                            ; preds = %12466
  br label %12468

12468:                                            ; preds = %12467
  br label %12469

12469:                                            ; preds = %12468
  %12470 = load i32, ptr @test_count, align 4, !tbaa !5
  %12471 = add nsw i32 %12470, 1
  store i32 %12471, ptr @test_count, align 4, !tbaa !5
  %12472 = load ptr, ptr %39, align 8, !tbaa !9
  %12473 = getelementptr inbounds %struct.s2n_security_policy, ptr %12472, i32 0, i32 1
  %12474 = load ptr, ptr %12473, align 8, !tbaa !31
  %12475 = icmp eq ptr %12474, @cipher_preferences_test_all
  br i1 %12475, label %12529, label %12476

12476:                                            ; preds = %12469
  br label %12477

12477:                                            ; preds = %12476
  br label %12478

12478:                                            ; preds = %12477
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #10
  %12479 = call ptr @__errno_location() #11
  %12480 = load i32, ptr %12479, align 4, !tbaa !5
  store i32 %12480, ptr %233, align 4, !tbaa !5
  %12481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12482 = call i32 @s2n_print_stacktrace(ptr noundef %12481)
  %12483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12484 = trunc i8 %12483 to i1
  br i1 %12484, label %12485, label %12507

12485:                                            ; preds = %12478
  %12486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12487 = call i32 @fileno(ptr noundef %12486) #10
  %12488 = call i32 @isatty(i32 noundef %12487) #10
  %12489 = icmp ne i32 %12488, 0
  br i1 %12489, label %12490, label %12507

12490:                                            ; preds = %12485
  %12491 = load i32, ptr %233, align 4, !tbaa !5
  %12492 = call ptr @__errno_location() #11
  store i32 %12491, ptr %12492, align 4, !tbaa !5
  %12493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12494 = load i32, ptr @test_count, align 4, !tbaa !5
  %12495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12496 = load i32, ptr %12495, align 4, !tbaa !5
  %12497 = call ptr @s2n_strerror(i32 noundef %12496, ptr noundef @.str.4)
  %12498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12499 = load i32, ptr %12498, align 4, !tbaa !5
  %12500 = call ptr @s2n_strerror_debug(i32 noundef %12499, ptr noundef @.str.4)
  %12501 = call ptr @__errno_location() #11
  %12502 = load i32, ptr %12501, align 4, !tbaa !5
  %12503 = call ptr @strerror(i32 noundef %12502) #10
  %12504 = call ptr @__errno_location() #11
  %12505 = load i32, ptr %12504, align 4, !tbaa !5
  %12506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12493, ptr noundef @.str.2, i32 noundef %12494, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 567, ptr noundef %12497, ptr noundef %12500, ptr noundef %12503, i32 noundef %12505) #10
  br label %12524

12507:                                            ; preds = %12485, %12478
  %12508 = load i32, ptr %233, align 4, !tbaa !5
  %12509 = call ptr @__errno_location() #11
  store i32 %12508, ptr %12509, align 4, !tbaa !5
  %12510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12511 = load i32, ptr @test_count, align 4, !tbaa !5
  %12512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12513 = load i32, ptr %12512, align 4, !tbaa !5
  %12514 = call ptr @s2n_strerror(i32 noundef %12513, ptr noundef @.str.4)
  %12515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12516 = load i32, ptr %12515, align 4, !tbaa !5
  %12517 = call ptr @s2n_strerror_debug(i32 noundef %12516, ptr noundef @.str.4)
  %12518 = call ptr @__errno_location() #11
  %12519 = load i32, ptr %12518, align 4, !tbaa !5
  %12520 = call ptr @strerror(i32 noundef %12519) #10
  %12521 = call ptr @__errno_location() #11
  %12522 = load i32, ptr %12521, align 4, !tbaa !5
  %12523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12510, ptr noundef @.str.5, i32 noundef %12511, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 567, ptr noundef %12514, ptr noundef %12517, ptr noundef %12520, i32 noundef %12522) #10
  br label %12524

12524:                                            ; preds = %12507, %12490
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #10
  br label %12525

12525:                                            ; preds = %12524
  br label %12526

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

12527:                                            ; No predecessors!
  br label %12528

12528:                                            ; preds = %12527
  br label %12529

12529:                                            ; preds = %12528, %12469
  br label %12530

12530:                                            ; preds = %12529
  br label %12531

12531:                                            ; preds = %12530
  br label %12532

12532:                                            ; preds = %12531
  %12533 = load i32, ptr @test_count, align 4, !tbaa !5
  %12534 = add nsw i32 %12533, 1
  store i32 %12534, ptr @test_count, align 4, !tbaa !5
  %12535 = load ptr, ptr %39, align 8, !tbaa !9
  %12536 = getelementptr inbounds %struct.s2n_security_policy, ptr %12535, i32 0, i32 2
  %12537 = load ptr, ptr %12536, align 8, !tbaa !20
  %12538 = icmp eq ptr %12537, @kem_preferences_all
  br i1 %12538, label %12592, label %12539

12539:                                            ; preds = %12532
  br label %12540

12540:                                            ; preds = %12539
  br label %12541

12541:                                            ; preds = %12540
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #10
  %12542 = call ptr @__errno_location() #11
  %12543 = load i32, ptr %12542, align 4, !tbaa !5
  store i32 %12543, ptr %234, align 4, !tbaa !5
  %12544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12545 = call i32 @s2n_print_stacktrace(ptr noundef %12544)
  %12546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12547 = trunc i8 %12546 to i1
  br i1 %12547, label %12548, label %12570

12548:                                            ; preds = %12541
  %12549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12550 = call i32 @fileno(ptr noundef %12549) #10
  %12551 = call i32 @isatty(i32 noundef %12550) #10
  %12552 = icmp ne i32 %12551, 0
  br i1 %12552, label %12553, label %12570

12553:                                            ; preds = %12548
  %12554 = load i32, ptr %234, align 4, !tbaa !5
  %12555 = call ptr @__errno_location() #11
  store i32 %12554, ptr %12555, align 4, !tbaa !5
  %12556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12557 = load i32, ptr @test_count, align 4, !tbaa !5
  %12558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12559 = load i32, ptr %12558, align 4, !tbaa !5
  %12560 = call ptr @s2n_strerror(i32 noundef %12559, ptr noundef @.str.4)
  %12561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12562 = load i32, ptr %12561, align 4, !tbaa !5
  %12563 = call ptr @s2n_strerror_debug(i32 noundef %12562, ptr noundef @.str.4)
  %12564 = call ptr @__errno_location() #11
  %12565 = load i32, ptr %12564, align 4, !tbaa !5
  %12566 = call ptr @strerror(i32 noundef %12565) #10
  %12567 = call ptr @__errno_location() #11
  %12568 = load i32, ptr %12567, align 4, !tbaa !5
  %12569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12556, ptr noundef @.str.2, i32 noundef %12557, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12560, ptr noundef %12563, ptr noundef %12566, i32 noundef %12568) #10
  br label %12587

12570:                                            ; preds = %12548, %12541
  %12571 = load i32, ptr %234, align 4, !tbaa !5
  %12572 = call ptr @__errno_location() #11
  store i32 %12571, ptr %12572, align 4, !tbaa !5
  %12573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12574 = load i32, ptr @test_count, align 4, !tbaa !5
  %12575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12576 = load i32, ptr %12575, align 4, !tbaa !5
  %12577 = call ptr @s2n_strerror(i32 noundef %12576, ptr noundef @.str.4)
  %12578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12579 = load i32, ptr %12578, align 4, !tbaa !5
  %12580 = call ptr @s2n_strerror_debug(i32 noundef %12579, ptr noundef @.str.4)
  %12581 = call ptr @__errno_location() #11
  %12582 = load i32, ptr %12581, align 4, !tbaa !5
  %12583 = call ptr @strerror(i32 noundef %12582) #10
  %12584 = call ptr @__errno_location() #11
  %12585 = load i32, ptr %12584, align 4, !tbaa !5
  %12586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12573, ptr noundef @.str.5, i32 noundef %12574, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12577, ptr noundef %12580, ptr noundef %12583, i32 noundef %12585) #10
  br label %12587

12587:                                            ; preds = %12570, %12553
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #10
  br label %12588

12588:                                            ; preds = %12587
  br label %12589

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

12590:                                            ; No predecessors!
  br label %12591

12591:                                            ; preds = %12590
  br label %12592

12592:                                            ; preds = %12591, %12532
  br label %12593

12593:                                            ; preds = %12592
  br label %12594

12594:                                            ; preds = %12593
  br label %12595

12595:                                            ; preds = %12594
  %12596 = load i32, ptr @test_count, align 4, !tbaa !5
  %12597 = add nsw i32 %12596, 1
  store i32 %12597, ptr @test_count, align 4, !tbaa !5
  %12598 = load ptr, ptr %39, align 8, !tbaa !9
  %12599 = getelementptr inbounds %struct.s2n_security_policy, ptr %12598, i32 0, i32 3
  %12600 = load ptr, ptr %12599, align 8, !tbaa !38
  %12601 = icmp eq ptr %12600, @s2n_signature_preferences_all
  br i1 %12601, label %12655, label %12602

12602:                                            ; preds = %12595
  br label %12603

12603:                                            ; preds = %12602
  br label %12604

12604:                                            ; preds = %12603
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #10
  %12605 = call ptr @__errno_location() #11
  %12606 = load i32, ptr %12605, align 4, !tbaa !5
  store i32 %12606, ptr %235, align 4, !tbaa !5
  %12607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12608 = call i32 @s2n_print_stacktrace(ptr noundef %12607)
  %12609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12610 = trunc i8 %12609 to i1
  br i1 %12610, label %12611, label %12633

12611:                                            ; preds = %12604
  %12612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12613 = call i32 @fileno(ptr noundef %12612) #10
  %12614 = call i32 @isatty(i32 noundef %12613) #10
  %12615 = icmp ne i32 %12614, 0
  br i1 %12615, label %12616, label %12633

12616:                                            ; preds = %12611
  %12617 = load i32, ptr %235, align 4, !tbaa !5
  %12618 = call ptr @__errno_location() #11
  store i32 %12617, ptr %12618, align 4, !tbaa !5
  %12619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12620 = load i32, ptr @test_count, align 4, !tbaa !5
  %12621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12622 = load i32, ptr %12621, align 4, !tbaa !5
  %12623 = call ptr @s2n_strerror(i32 noundef %12622, ptr noundef @.str.4)
  %12624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12625 = load i32, ptr %12624, align 4, !tbaa !5
  %12626 = call ptr @s2n_strerror_debug(i32 noundef %12625, ptr noundef @.str.4)
  %12627 = call ptr @__errno_location() #11
  %12628 = load i32, ptr %12627, align 4, !tbaa !5
  %12629 = call ptr @strerror(i32 noundef %12628) #10
  %12630 = call ptr @__errno_location() #11
  %12631 = load i32, ptr %12630, align 4, !tbaa !5
  %12632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12619, ptr noundef @.str.2, i32 noundef %12620, ptr noundef @.str.151, ptr noundef @.str.1, i32 noundef 569, ptr noundef %12623, ptr noundef %12626, ptr noundef %12629, i32 noundef %12631) #10
  br label %12650

12633:                                            ; preds = %12611, %12604
  %12634 = load i32, ptr %235, align 4, !tbaa !5
  %12635 = call ptr @__errno_location() #11
  store i32 %12634, ptr %12635, align 4, !tbaa !5
  %12636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12637 = load i32, ptr @test_count, align 4, !tbaa !5
  %12638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12639 = load i32, ptr %12638, align 4, !tbaa !5
  %12640 = call ptr @s2n_strerror(i32 noundef %12639, ptr noundef @.str.4)
  %12641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12642 = load i32, ptr %12641, align 4, !tbaa !5
  %12643 = call ptr @s2n_strerror_debug(i32 noundef %12642, ptr noundef @.str.4)
  %12644 = call ptr @__errno_location() #11
  %12645 = load i32, ptr %12644, align 4, !tbaa !5
  %12646 = call ptr @strerror(i32 noundef %12645) #10
  %12647 = call ptr @__errno_location() #11
  %12648 = load i32, ptr %12647, align 4, !tbaa !5
  %12649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12636, ptr noundef @.str.5, i32 noundef %12637, ptr noundef @.str.151, ptr noundef @.str.1, i32 noundef 569, ptr noundef %12640, ptr noundef %12643, ptr noundef %12646, i32 noundef %12648) #10
  br label %12650

12650:                                            ; preds = %12633, %12616
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #10
  br label %12651

12651:                                            ; preds = %12650
  br label %12652

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

12653:                                            ; No predecessors!
  br label %12654

12654:                                            ; preds = %12653
  br label %12655

12655:                                            ; preds = %12654, %12595
  br label %12656

12656:                                            ; preds = %12655
  br label %12657

12657:                                            ; preds = %12656
  br label %12658

12658:                                            ; preds = %12657
  %12659 = load i32, ptr @test_count, align 4, !tbaa !5
  %12660 = add nsw i32 %12659, 1
  store i32 %12660, ptr @test_count, align 4, !tbaa !5
  %12661 = load ptr, ptr %39, align 8, !tbaa !9
  %12662 = getelementptr inbounds %struct.s2n_security_policy, ptr %12661, i32 0, i32 5
  %12663 = load ptr, ptr %12662, align 8, !tbaa !60
  %12664 = icmp eq ptr %12663, @s2n_ecc_preferences_test_all
  br i1 %12664, label %12718, label %12665

12665:                                            ; preds = %12658
  br label %12666

12666:                                            ; preds = %12665
  br label %12667

12667:                                            ; preds = %12666
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #10
  %12668 = call ptr @__errno_location() #11
  %12669 = load i32, ptr %12668, align 4, !tbaa !5
  store i32 %12669, ptr %236, align 4, !tbaa !5
  %12670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12671 = call i32 @s2n_print_stacktrace(ptr noundef %12670)
  %12672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12673 = trunc i8 %12672 to i1
  br i1 %12673, label %12674, label %12696

12674:                                            ; preds = %12667
  %12675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12676 = call i32 @fileno(ptr noundef %12675) #10
  %12677 = call i32 @isatty(i32 noundef %12676) #10
  %12678 = icmp ne i32 %12677, 0
  br i1 %12678, label %12679, label %12696

12679:                                            ; preds = %12674
  %12680 = load i32, ptr %236, align 4, !tbaa !5
  %12681 = call ptr @__errno_location() #11
  store i32 %12680, ptr %12681, align 4, !tbaa !5
  %12682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12683 = load i32, ptr @test_count, align 4, !tbaa !5
  %12684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12685 = load i32, ptr %12684, align 4, !tbaa !5
  %12686 = call ptr @s2n_strerror(i32 noundef %12685, ptr noundef @.str.4)
  %12687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12688 = load i32, ptr %12687, align 4, !tbaa !5
  %12689 = call ptr @s2n_strerror_debug(i32 noundef %12688, ptr noundef @.str.4)
  %12690 = call ptr @__errno_location() #11
  %12691 = load i32, ptr %12690, align 4, !tbaa !5
  %12692 = call ptr @strerror(i32 noundef %12691) #10
  %12693 = call ptr @__errno_location() #11
  %12694 = load i32, ptr %12693, align 4, !tbaa !5
  %12695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12682, ptr noundef @.str.2, i32 noundef %12683, ptr noundef @.str.152, ptr noundef @.str.1, i32 noundef 570, ptr noundef %12686, ptr noundef %12689, ptr noundef %12692, i32 noundef %12694) #10
  br label %12713

12696:                                            ; preds = %12674, %12667
  %12697 = load i32, ptr %236, align 4, !tbaa !5
  %12698 = call ptr @__errno_location() #11
  store i32 %12697, ptr %12698, align 4, !tbaa !5
  %12699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12700 = load i32, ptr @test_count, align 4, !tbaa !5
  %12701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12702 = load i32, ptr %12701, align 4, !tbaa !5
  %12703 = call ptr @s2n_strerror(i32 noundef %12702, ptr noundef @.str.4)
  %12704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12705 = load i32, ptr %12704, align 4, !tbaa !5
  %12706 = call ptr @s2n_strerror_debug(i32 noundef %12705, ptr noundef @.str.4)
  %12707 = call ptr @__errno_location() #11
  %12708 = load i32, ptr %12707, align 4, !tbaa !5
  %12709 = call ptr @strerror(i32 noundef %12708) #10
  %12710 = call ptr @__errno_location() #11
  %12711 = load i32, ptr %12710, align 4, !tbaa !5
  %12712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12699, ptr noundef @.str.5, i32 noundef %12700, ptr noundef @.str.152, ptr noundef @.str.1, i32 noundef 570, ptr noundef %12703, ptr noundef %12706, ptr noundef %12709, i32 noundef %12711) #10
  br label %12713

12713:                                            ; preds = %12696, %12679
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #10
  br label %12714

12714:                                            ; preds = %12713
  br label %12715

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

12716:                                            ; No predecessors!
  br label %12717

12717:                                            ; preds = %12716
  br label %12718

12718:                                            ; preds = %12717, %12658
  br label %12719

12719:                                            ; preds = %12718
  br label %12720

12720:                                            ; preds = %12719
  br label %12721

12721:                                            ; preds = %12720
  %12722 = load i32, ptr @test_count, align 4, !tbaa !5
  %12723 = add nsw i32 %12722, 1
  store i32 %12723, ptr @test_count, align 4, !tbaa !5
  %12724 = load ptr, ptr %215, align 8, !tbaa !9
  %12725 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %12724, ptr noundef @.str.104)
  %12726 = icmp eq i32 %12725, -1
  br i1 %12726, label %12727, label %12780

12727:                                            ; preds = %12721
  br label %12728

12728:                                            ; preds = %12727
  br label %12729

12729:                                            ; preds = %12728
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #10
  %12730 = call ptr @__errno_location() #11
  %12731 = load i32, ptr %12730, align 4, !tbaa !5
  store i32 %12731, ptr %237, align 4, !tbaa !5
  %12732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12733 = call i32 @s2n_print_stacktrace(ptr noundef %12732)
  %12734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12735 = trunc i8 %12734 to i1
  br i1 %12735, label %12736, label %12758

12736:                                            ; preds = %12729
  %12737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12738 = call i32 @fileno(ptr noundef %12737) #10
  %12739 = call i32 @isatty(i32 noundef %12738) #10
  %12740 = icmp ne i32 %12739, 0
  br i1 %12740, label %12741, label %12758

12741:                                            ; preds = %12736
  %12742 = load i32, ptr %237, align 4, !tbaa !5
  %12743 = call ptr @__errno_location() #11
  store i32 %12742, ptr %12743, align 4, !tbaa !5
  %12744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12745 = load i32, ptr @test_count, align 4, !tbaa !5
  %12746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12747 = load i32, ptr %12746, align 4, !tbaa !5
  %12748 = call ptr @s2n_strerror(i32 noundef %12747, ptr noundef @.str.4)
  %12749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12750 = load i32, ptr %12749, align 4, !tbaa !5
  %12751 = call ptr @s2n_strerror_debug(i32 noundef %12750, ptr noundef @.str.4)
  %12752 = call ptr @__errno_location() #11
  %12753 = load i32, ptr %12752, align 4, !tbaa !5
  %12754 = call ptr @strerror(i32 noundef %12753) #10
  %12755 = call ptr @__errno_location() #11
  %12756 = load i32, ptr %12755, align 4, !tbaa !5
  %12757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12744, ptr noundef @.str.2, i32 noundef %12745, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 572, ptr noundef %12748, ptr noundef %12751, ptr noundef %12754, i32 noundef %12756) #10
  br label %12775

12758:                                            ; preds = %12736, %12729
  %12759 = load i32, ptr %237, align 4, !tbaa !5
  %12760 = call ptr @__errno_location() #11
  store i32 %12759, ptr %12760, align 4, !tbaa !5
  %12761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12762 = load i32, ptr @test_count, align 4, !tbaa !5
  %12763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12764 = load i32, ptr %12763, align 4, !tbaa !5
  %12765 = call ptr @s2n_strerror(i32 noundef %12764, ptr noundef @.str.4)
  %12766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12767 = load i32, ptr %12766, align 4, !tbaa !5
  %12768 = call ptr @s2n_strerror_debug(i32 noundef %12767, ptr noundef @.str.4)
  %12769 = call ptr @__errno_location() #11
  %12770 = load i32, ptr %12769, align 4, !tbaa !5
  %12771 = call ptr @strerror(i32 noundef %12770) #10
  %12772 = call ptr @__errno_location() #11
  %12773 = load i32, ptr %12772, align 4, !tbaa !5
  %12774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12761, ptr noundef @.str.5, i32 noundef %12762, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 572, ptr noundef %12765, ptr noundef %12768, ptr noundef %12771, i32 noundef %12773) #10
  br label %12775

12775:                                            ; preds = %12758, %12741
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #10
  br label %12776

12776:                                            ; preds = %12775
  br label %12777

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

12778:                                            ; No predecessors!
  br label %12779

12779:                                            ; preds = %12778
  br label %12780

12780:                                            ; preds = %12779, %12721
  br label %12781

12781:                                            ; preds = %12780
  br label %12782

12782:                                            ; preds = %12781
  br label %12783

12783:                                            ; preds = %12782
  %12784 = load i32, ptr @test_count, align 4, !tbaa !5
  %12785 = add nsw i32 %12784, 1
  store i32 %12785, ptr @test_count, align 4, !tbaa !5
  %12786 = load ptr, ptr %215, align 8, !tbaa !9
  %12787 = call i32 @s2n_connection_get_security_policy(ptr noundef %12786, ptr noundef %39)
  %12788 = icmp eq i32 %12787, -1
  br i1 %12788, label %12789, label %12842

12789:                                            ; preds = %12783
  br label %12790

12790:                                            ; preds = %12789
  br label %12791

12791:                                            ; preds = %12790
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #10
  %12792 = call ptr @__errno_location() #11
  %12793 = load i32, ptr %12792, align 4, !tbaa !5
  store i32 %12793, ptr %238, align 4, !tbaa !5
  %12794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12795 = call i32 @s2n_print_stacktrace(ptr noundef %12794)
  %12796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12797 = trunc i8 %12796 to i1
  br i1 %12797, label %12798, label %12820

12798:                                            ; preds = %12791
  %12799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12800 = call i32 @fileno(ptr noundef %12799) #10
  %12801 = call i32 @isatty(i32 noundef %12800) #10
  %12802 = icmp ne i32 %12801, 0
  br i1 %12802, label %12803, label %12820

12803:                                            ; preds = %12798
  %12804 = load i32, ptr %238, align 4, !tbaa !5
  %12805 = call ptr @__errno_location() #11
  store i32 %12804, ptr %12805, align 4, !tbaa !5
  %12806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12807 = load i32, ptr @test_count, align 4, !tbaa !5
  %12808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12809 = load i32, ptr %12808, align 4, !tbaa !5
  %12810 = call ptr @s2n_strerror(i32 noundef %12809, ptr noundef @.str.4)
  %12811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12812 = load i32, ptr %12811, align 4, !tbaa !5
  %12813 = call ptr @s2n_strerror_debug(i32 noundef %12812, ptr noundef @.str.4)
  %12814 = call ptr @__errno_location() #11
  %12815 = load i32, ptr %12814, align 4, !tbaa !5
  %12816 = call ptr @strerror(i32 noundef %12815) #10
  %12817 = call ptr @__errno_location() #11
  %12818 = load i32, ptr %12817, align 4, !tbaa !5
  %12819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12806, ptr noundef @.str.2, i32 noundef %12807, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 573, ptr noundef %12810, ptr noundef %12813, ptr noundef %12816, i32 noundef %12818) #10
  br label %12837

12820:                                            ; preds = %12798, %12791
  %12821 = load i32, ptr %238, align 4, !tbaa !5
  %12822 = call ptr @__errno_location() #11
  store i32 %12821, ptr %12822, align 4, !tbaa !5
  %12823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12824 = load i32, ptr @test_count, align 4, !tbaa !5
  %12825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12826 = load i32, ptr %12825, align 4, !tbaa !5
  %12827 = call ptr @s2n_strerror(i32 noundef %12826, ptr noundef @.str.4)
  %12828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12829 = load i32, ptr %12828, align 4, !tbaa !5
  %12830 = call ptr @s2n_strerror_debug(i32 noundef %12829, ptr noundef @.str.4)
  %12831 = call ptr @__errno_location() #11
  %12832 = load i32, ptr %12831, align 4, !tbaa !5
  %12833 = call ptr @strerror(i32 noundef %12832) #10
  %12834 = call ptr @__errno_location() #11
  %12835 = load i32, ptr %12834, align 4, !tbaa !5
  %12836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12823, ptr noundef @.str.5, i32 noundef %12824, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 573, ptr noundef %12827, ptr noundef %12830, ptr noundef %12833, i32 noundef %12835) #10
  br label %12837

12837:                                            ; preds = %12820, %12803
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #10
  br label %12838

12838:                                            ; preds = %12837
  br label %12839

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

12840:                                            ; No predecessors!
  br label %12841

12841:                                            ; preds = %12840
  br label %12842

12842:                                            ; preds = %12841, %12783
  br label %12843

12843:                                            ; preds = %12842
  br label %12844

12844:                                            ; preds = %12843
  br label %12845

12845:                                            ; preds = %12844
  %12846 = load i32, ptr @test_count, align 4, !tbaa !5
  %12847 = add nsw i32 %12846, 1
  store i32 %12847, ptr @test_count, align 4, !tbaa !5
  %12848 = load ptr, ptr %39, align 8, !tbaa !9
  %12849 = icmp eq ptr %12848, @security_policy_test_all_tls12
  br i1 %12849, label %12903, label %12850

12850:                                            ; preds = %12845
  br label %12851

12851:                                            ; preds = %12850
  br label %12852

12852:                                            ; preds = %12851
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #10
  %12853 = call ptr @__errno_location() #11
  %12854 = load i32, ptr %12853, align 4, !tbaa !5
  store i32 %12854, ptr %239, 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) #10
  %12862 = call i32 @isatty(i32 noundef %12861) #10
  %12863 = icmp ne i32 %12862, 0
  br i1 %12863, label %12864, label %12881

12864:                                            ; preds = %12859
  %12865 = load i32, ptr %239, align 4, !tbaa !5
  %12866 = call ptr @__errno_location() #11
  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() #11
  %12876 = load i32, ptr %12875, align 4, !tbaa !5
  %12877 = call ptr @strerror(i32 noundef %12876) #10
  %12878 = call ptr @__errno_location() #11
  %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.154, ptr noundef @.str.1, i32 noundef 574, ptr noundef %12871, ptr noundef %12874, ptr noundef %12877, i32 noundef %12879) #10
  br label %12898

12881:                                            ; preds = %12859, %12852
  %12882 = load i32, ptr %239, align 4, !tbaa !5
  %12883 = call ptr @__errno_location() #11
  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() #11
  %12893 = load i32, ptr %12892, align 4, !tbaa !5
  %12894 = call ptr @strerror(i32 noundef %12893) #10
  %12895 = call ptr @__errno_location() #11
  %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.154, ptr noundef @.str.1, i32 noundef 574, ptr noundef %12888, ptr noundef %12891, ptr noundef %12894, i32 noundef %12896) #10
  br label %12898

12898:                                            ; preds = %12881, %12864
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #10
  br label %12899

12899:                                            ; preds = %12898
  br label %12900

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

12901:                                            ; No predecessors!
  br label %12902

12902:                                            ; preds = %12901
  br label %12903

12903:                                            ; preds = %12902, %12845
  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 %39, align 8, !tbaa !9
  %12910 = getelementptr inbounds %struct.s2n_security_policy, ptr %12909, i32 0, i32 1
  %12911 = load ptr, ptr %12910, align 8, !tbaa !31
  %12912 = icmp eq ptr %12911, @cipher_preferences_test_all_tls12
  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 %240) #10
  %12916 = call ptr @__errno_location() #11
  %12917 = load i32, ptr %12916, align 4, !tbaa !5
  store i32 %12917, ptr %240, 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) #10
  %12925 = call i32 @isatty(i32 noundef %12924) #10
  %12926 = icmp ne i32 %12925, 0
  br i1 %12926, label %12927, label %12944

12927:                                            ; preds = %12922
  %12928 = load i32, ptr %240, align 4, !tbaa !5
  %12929 = call ptr @__errno_location() #11
  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() #11
  %12939 = load i32, ptr %12938, align 4, !tbaa !5
  %12940 = call ptr @strerror(i32 noundef %12939) #10
  %12941 = call ptr @__errno_location() #11
  %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.155, ptr noundef @.str.1, i32 noundef 575, ptr noundef %12934, ptr noundef %12937, ptr noundef %12940, i32 noundef %12942) #10
  br label %12961

12944:                                            ; preds = %12922, %12915
  %12945 = load i32, ptr %240, align 4, !tbaa !5
  %12946 = call ptr @__errno_location() #11
  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() #11
  %12956 = load i32, ptr %12955, align 4, !tbaa !5
  %12957 = call ptr @strerror(i32 noundef %12956) #10
  %12958 = call ptr @__errno_location() #11
  %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.155, ptr noundef @.str.1, i32 noundef 575, ptr noundef %12951, ptr noundef %12954, ptr noundef %12957, i32 noundef %12959) #10
  br label %12961

12961:                                            ; preds = %12944, %12927
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #10
  br label %12962

12962:                                            ; preds = %12961
  br label %12963

12963:                                            ; preds = %12962
  call void @exit(i32 noundef 1) #12
  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
  %12970 = load i32, ptr @test_count, align 4, !tbaa !5
  %12971 = add nsw i32 %12970, 1
  store i32 %12971, ptr @test_count, align 4, !tbaa !5
  %12972 = load ptr, ptr %39, align 8, !tbaa !9
  %12973 = getelementptr inbounds %struct.s2n_security_policy, ptr %12972, i32 0, i32 2
  %12974 = load ptr, ptr %12973, align 8, !tbaa !20
  %12975 = icmp eq ptr %12974, @kem_preferences_pq_tls_1_0_2021_05
  br i1 %12975, label %13029, label %12976

12976:                                            ; preds = %12969
  br label %12977

12977:                                            ; preds = %12976
  br label %12978

12978:                                            ; preds = %12977
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #10
  %12979 = call ptr @__errno_location() #11
  %12980 = load i32, ptr %12979, align 4, !tbaa !5
  store i32 %12980, ptr %241, align 4, !tbaa !5
  %12981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12982 = call i32 @s2n_print_stacktrace(ptr noundef %12981)
  %12983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12984 = trunc i8 %12983 to i1
  br i1 %12984, label %12985, label %13007

12985:                                            ; preds = %12978
  %12986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12987 = call i32 @fileno(ptr noundef %12986) #10
  %12988 = call i32 @isatty(i32 noundef %12987) #10
  %12989 = icmp ne i32 %12988, 0
  br i1 %12989, label %12990, label %13007

12990:                                            ; preds = %12985
  %12991 = load i32, ptr %241, align 4, !tbaa !5
  %12992 = call ptr @__errno_location() #11
  store i32 %12991, ptr %12992, align 4, !tbaa !5
  %12993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12994 = load i32, ptr @test_count, align 4, !tbaa !5
  %12995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12996 = load i32, ptr %12995, align 4, !tbaa !5
  %12997 = call ptr @s2n_strerror(i32 noundef %12996, ptr noundef @.str.4)
  %12998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12999 = load i32, ptr %12998, align 4, !tbaa !5
  %13000 = call ptr @s2n_strerror_debug(i32 noundef %12999, ptr noundef @.str.4)
  %13001 = call ptr @__errno_location() #11
  %13002 = load i32, ptr %13001, align 4, !tbaa !5
  %13003 = call ptr @strerror(i32 noundef %13002) #10
  %13004 = call ptr @__errno_location() #11
  %13005 = load i32, ptr %13004, align 4, !tbaa !5
  %13006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12993, ptr noundef @.str.2, i32 noundef %12994, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 576, ptr noundef %12997, ptr noundef %13000, ptr noundef %13003, i32 noundef %13005) #10
  br label %13024

13007:                                            ; preds = %12985, %12978
  %13008 = load i32, ptr %241, align 4, !tbaa !5
  %13009 = call ptr @__errno_location() #11
  store i32 %13008, ptr %13009, align 4, !tbaa !5
  %13010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13011 = load i32, ptr @test_count, align 4, !tbaa !5
  %13012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13013 = load i32, ptr %13012, align 4, !tbaa !5
  %13014 = call ptr @s2n_strerror(i32 noundef %13013, ptr noundef @.str.4)
  %13015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13016 = load i32, ptr %13015, align 4, !tbaa !5
  %13017 = call ptr @s2n_strerror_debug(i32 noundef %13016, ptr noundef @.str.4)
  %13018 = call ptr @__errno_location() #11
  %13019 = load i32, ptr %13018, align 4, !tbaa !5
  %13020 = call ptr @strerror(i32 noundef %13019) #10
  %13021 = call ptr @__errno_location() #11
  %13022 = load i32, ptr %13021, align 4, !tbaa !5
  %13023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13010, ptr noundef @.str.5, i32 noundef %13011, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 576, ptr noundef %13014, ptr noundef %13017, ptr noundef %13020, i32 noundef %13022) #10
  br label %13024

13024:                                            ; preds = %13007, %12990
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #10
  br label %13025

13025:                                            ; preds = %13024
  br label %13026

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

13027:                                            ; No predecessors!
  br label %13028

13028:                                            ; preds = %13027
  br label %13029

13029:                                            ; preds = %13028, %12969
  br label %13030

13030:                                            ; preds = %13029
  br label %13031

13031:                                            ; preds = %13030
  br label %13032

13032:                                            ; preds = %13031
  %13033 = load i32, ptr @test_count, align 4, !tbaa !5
  %13034 = add nsw i32 %13033, 1
  store i32 %13034, ptr @test_count, align 4, !tbaa !5
  %13035 = load ptr, ptr %39, align 8, !tbaa !9
  %13036 = getelementptr inbounds %struct.s2n_security_policy, ptr %13035, i32 0, i32 3
  %13037 = load ptr, ptr %13036, align 8, !tbaa !38
  %13038 = icmp eq ptr %13037, @s2n_signature_preferences_20201021
  br i1 %13038, label %13092, label %13039

13039:                                            ; preds = %13032
  br label %13040

13040:                                            ; preds = %13039
  br label %13041

13041:                                            ; preds = %13040
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #10
  %13042 = call ptr @__errno_location() #11
  %13043 = load i32, ptr %13042, align 4, !tbaa !5
  store i32 %13043, ptr %242, align 4, !tbaa !5
  %13044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13045 = call i32 @s2n_print_stacktrace(ptr noundef %13044)
  %13046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13047 = trunc i8 %13046 to i1
  br i1 %13047, label %13048, label %13070

13048:                                            ; preds = %13041
  %13049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13050 = call i32 @fileno(ptr noundef %13049) #10
  %13051 = call i32 @isatty(i32 noundef %13050) #10
  %13052 = icmp ne i32 %13051, 0
  br i1 %13052, label %13053, label %13070

13053:                                            ; preds = %13048
  %13054 = load i32, ptr %242, align 4, !tbaa !5
  %13055 = call ptr @__errno_location() #11
  store i32 %13054, ptr %13055, align 4, !tbaa !5
  %13056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13057 = load i32, ptr @test_count, align 4, !tbaa !5
  %13058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13059 = load i32, ptr %13058, align 4, !tbaa !5
  %13060 = call ptr @s2n_strerror(i32 noundef %13059, ptr noundef @.str.4)
  %13061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13062 = load i32, ptr %13061, align 4, !tbaa !5
  %13063 = call ptr @s2n_strerror_debug(i32 noundef %13062, ptr noundef @.str.4)
  %13064 = call ptr @__errno_location() #11
  %13065 = load i32, ptr %13064, align 4, !tbaa !5
  %13066 = call ptr @strerror(i32 noundef %13065) #10
  %13067 = call ptr @__errno_location() #11
  %13068 = load i32, ptr %13067, align 4, !tbaa !5
  %13069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13056, ptr noundef @.str.2, i32 noundef %13057, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 577, ptr noundef %13060, ptr noundef %13063, ptr noundef %13066, i32 noundef %13068) #10
  br label %13087

13070:                                            ; preds = %13048, %13041
  %13071 = load i32, ptr %242, align 4, !tbaa !5
  %13072 = call ptr @__errno_location() #11
  store i32 %13071, ptr %13072, align 4, !tbaa !5
  %13073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13074 = load i32, ptr @test_count, align 4, !tbaa !5
  %13075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13076 = load i32, ptr %13075, align 4, !tbaa !5
  %13077 = call ptr @s2n_strerror(i32 noundef %13076, ptr noundef @.str.4)
  %13078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13079 = load i32, ptr %13078, align 4, !tbaa !5
  %13080 = call ptr @s2n_strerror_debug(i32 noundef %13079, ptr noundef @.str.4)
  %13081 = call ptr @__errno_location() #11
  %13082 = load i32, ptr %13081, align 4, !tbaa !5
  %13083 = call ptr @strerror(i32 noundef %13082) #10
  %13084 = call ptr @__errno_location() #11
  %13085 = load i32, ptr %13084, align 4, !tbaa !5
  %13086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13073, ptr noundef @.str.5, i32 noundef %13074, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 577, ptr noundef %13077, ptr noundef %13080, ptr noundef %13083, i32 noundef %13085) #10
  br label %13087

13087:                                            ; preds = %13070, %13053
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #10
  br label %13088

13088:                                            ; preds = %13087
  br label %13089

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

13090:                                            ; No predecessors!
  br label %13091

13091:                                            ; preds = %13090
  br label %13092

13092:                                            ; preds = %13091, %13032
  br label %13093

13093:                                            ; preds = %13092
  br label %13094

13094:                                            ; preds = %13093
  br label %13095

13095:                                            ; preds = %13094
  %13096 = load i32, ptr @test_count, align 4, !tbaa !5
  %13097 = add nsw i32 %13096, 1
  store i32 %13097, ptr @test_count, align 4, !tbaa !5
  %13098 = load ptr, ptr %39, align 8, !tbaa !9
  %13099 = getelementptr inbounds %struct.s2n_security_policy, ptr %13098, i32 0, i32 5
  %13100 = load ptr, ptr %13099, align 8, !tbaa !60
  %13101 = icmp eq ptr %13100, @s2n_ecc_preferences_20201021
  br i1 %13101, label %13155, label %13102

13102:                                            ; preds = %13095
  br label %13103

13103:                                            ; preds = %13102
  br label %13104

13104:                                            ; preds = %13103
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #10
  %13105 = call ptr @__errno_location() #11
  %13106 = load i32, ptr %13105, align 4, !tbaa !5
  store i32 %13106, ptr %243, align 4, !tbaa !5
  %13107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13108 = call i32 @s2n_print_stacktrace(ptr noundef %13107)
  %13109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13110 = trunc i8 %13109 to i1
  br i1 %13110, label %13111, label %13133

13111:                                            ; preds = %13104
  %13112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13113 = call i32 @fileno(ptr noundef %13112) #10
  %13114 = call i32 @isatty(i32 noundef %13113) #10
  %13115 = icmp ne i32 %13114, 0
  br i1 %13115, label %13116, label %13133

13116:                                            ; preds = %13111
  %13117 = load i32, ptr %243, align 4, !tbaa !5
  %13118 = call ptr @__errno_location() #11
  store i32 %13117, ptr %13118, align 4, !tbaa !5
  %13119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13120 = load i32, ptr @test_count, align 4, !tbaa !5
  %13121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13122 = load i32, ptr %13121, align 4, !tbaa !5
  %13123 = call ptr @s2n_strerror(i32 noundef %13122, ptr noundef @.str.4)
  %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_debug(i32 noundef %13125, ptr noundef @.str.4)
  %13127 = call ptr @__errno_location() #11
  %13128 = load i32, ptr %13127, align 4, !tbaa !5
  %13129 = call ptr @strerror(i32 noundef %13128) #10
  %13130 = call ptr @__errno_location() #11
  %13131 = load i32, ptr %13130, align 4, !tbaa !5
  %13132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13119, ptr noundef @.str.2, i32 noundef %13120, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 578, ptr noundef %13123, ptr noundef %13126, ptr noundef %13129, i32 noundef %13131) #10
  br label %13150

13133:                                            ; preds = %13111, %13104
  %13134 = load i32, ptr %243, align 4, !tbaa !5
  %13135 = call ptr @__errno_location() #11
  store i32 %13134, ptr %13135, align 4, !tbaa !5
  %13136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13137 = load i32, ptr @test_count, align 4, !tbaa !5
  %13138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13139 = load i32, ptr %13138, align 4, !tbaa !5
  %13140 = call ptr @s2n_strerror(i32 noundef %13139, ptr noundef @.str.4)
  %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_debug(i32 noundef %13142, ptr noundef @.str.4)
  %13144 = call ptr @__errno_location() #11
  %13145 = load i32, ptr %13144, align 4, !tbaa !5
  %13146 = call ptr @strerror(i32 noundef %13145) #10
  %13147 = call ptr @__errno_location() #11
  %13148 = load i32, ptr %13147, align 4, !tbaa !5
  %13149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13136, ptr noundef @.str.5, i32 noundef %13137, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 578, ptr noundef %13140, ptr noundef %13143, ptr noundef %13146, i32 noundef %13148) #10
  br label %13150

13150:                                            ; preds = %13133, %13116
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #10
  br label %13151

13151:                                            ; preds = %13150
  br label %13152

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

13153:                                            ; No predecessors!
  br label %13154

13154:                                            ; preds = %13153
  br label %13155

13155:                                            ; preds = %13154, %13095
  br label %13156

13156:                                            ; preds = %13155
  br label %13157

13157:                                            ; preds = %13156
  br label %13158

13158:                                            ; preds = %13157
  br label %13159

13159:                                            ; preds = %13158
  br label %13160

13160:                                            ; preds = %13159
  %13161 = load i32, ptr @test_count, align 4, !tbaa !5
  %13162 = add nsw i32 %13161, 1
  store i32 %13162, ptr @test_count, align 4, !tbaa !5
  %13163 = load ptr, ptr %215, align 8, !tbaa !9
  %13164 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %13163, ptr noundef @.str.132)
  %13165 = icmp eq i32 %13164, -1
  br i1 %13165, label %13219, label %13166

13166:                                            ; preds = %13160
  br label %13167

13167:                                            ; preds = %13166
  br label %13168

13168:                                            ; preds = %13167
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #10
  %13169 = call ptr @__errno_location() #11
  %13170 = load i32, ptr %13169, align 4, !tbaa !5
  store i32 %13170, ptr %244, align 4, !tbaa !5
  %13171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13172 = call i32 @s2n_print_stacktrace(ptr noundef %13171)
  %13173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13174 = trunc i8 %13173 to i1
  br i1 %13174, label %13175, label %13197

13175:                                            ; preds = %13168
  %13176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13177 = call i32 @fileno(ptr noundef %13176) #10
  %13178 = call i32 @isatty(i32 noundef %13177) #10
  %13179 = icmp ne i32 %13178, 0
  br i1 %13179, label %13180, label %13197

13180:                                            ; preds = %13175
  %13181 = load i32, ptr %244, align 4, !tbaa !5
  %13182 = call ptr @__errno_location() #11
  store i32 %13181, ptr %13182, align 4, !tbaa !5
  %13183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13184 = load i32, ptr @test_count, align 4, !tbaa !5
  %13185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13186 = load i32, ptr %13185, align 4, !tbaa !5
  %13187 = call ptr @s2n_strerror(i32 noundef %13186, ptr noundef @.str.4)
  %13188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13189 = load i32, ptr %13188, align 4, !tbaa !5
  %13190 = call ptr @s2n_strerror_debug(i32 noundef %13189, ptr noundef @.str.4)
  %13191 = call ptr @__errno_location() #11
  %13192 = load i32, ptr %13191, align 4, !tbaa !5
  %13193 = call ptr @strerror(i32 noundef %13192) #10
  %13194 = call ptr @__errno_location() #11
  %13195 = load i32, ptr %13194, align 4, !tbaa !5
  %13196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13183, ptr noundef @.str.2, i32 noundef %13184, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13187, ptr noundef %13190, ptr noundef %13193, i32 noundef %13195) #10
  br label %13214

13197:                                            ; preds = %13175, %13168
  %13198 = load i32, ptr %244, align 4, !tbaa !5
  %13199 = call ptr @__errno_location() #11
  store i32 %13198, ptr %13199, align 4, !tbaa !5
  %13200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13201 = load i32, ptr @test_count, align 4, !tbaa !5
  %13202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13203 = load i32, ptr %13202, align 4, !tbaa !5
  %13204 = call ptr @s2n_strerror(i32 noundef %13203, ptr noundef @.str.4)
  %13205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13206 = load i32, ptr %13205, align 4, !tbaa !5
  %13207 = call ptr @s2n_strerror_debug(i32 noundef %13206, ptr noundef @.str.4)
  %13208 = call ptr @__errno_location() #11
  %13209 = load i32, ptr %13208, align 4, !tbaa !5
  %13210 = call ptr @strerror(i32 noundef %13209) #10
  %13211 = call ptr @__errno_location() #11
  %13212 = load i32, ptr %13211, align 4, !tbaa !5
  %13213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13200, ptr noundef @.str.5, i32 noundef %13201, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13204, ptr noundef %13207, ptr noundef %13210, i32 noundef %13212) #10
  br label %13214

13214:                                            ; preds = %13197, %13180
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #10
  br label %13215

13215:                                            ; preds = %13214
  br label %13216

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

13217:                                            ; No predecessors!
  br label %13218

13218:                                            ; preds = %13217
  br label %13219

13219:                                            ; preds = %13218, %13160
  br label %13220

13220:                                            ; preds = %13219
  br label %13221

13221:                                            ; preds = %13220
  br label %13222

13222:                                            ; preds = %13221
  %13223 = load i32, ptr @test_count, align 4, !tbaa !5
  %13224 = add nsw i32 %13223, 1
  store i32 %13224, ptr @test_count, align 4, !tbaa !5
  %13225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13226 = load i32, ptr %13225, align 4, !tbaa !5
  %13227 = icmp eq i32 %13226, 469762101
  br i1 %13227, label %13281, label %13228

13228:                                            ; preds = %13222
  br label %13229

13229:                                            ; preds = %13228
  br label %13230

13230:                                            ; preds = %13229
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #10
  %13231 = call ptr @__errno_location() #11
  %13232 = load i32, ptr %13231, align 4, !tbaa !5
  store i32 %13232, ptr %245, align 4, !tbaa !5
  %13233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13234 = call i32 @s2n_print_stacktrace(ptr noundef %13233)
  %13235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13236 = trunc i8 %13235 to i1
  br i1 %13236, label %13237, label %13259

13237:                                            ; preds = %13230
  %13238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13239 = call i32 @fileno(ptr noundef %13238) #10
  %13240 = call i32 @isatty(i32 noundef %13239) #10
  %13241 = icmp ne i32 %13240, 0
  br i1 %13241, label %13242, label %13259

13242:                                            ; preds = %13237
  %13243 = load i32, ptr %245, align 4, !tbaa !5
  %13244 = call ptr @__errno_location() #11
  store i32 %13243, ptr %13244, align 4, !tbaa !5
  %13245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13246 = load i32, ptr @test_count, align 4, !tbaa !5
  %13247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13248 = load i32, ptr %13247, align 4, !tbaa !5
  %13249 = call ptr @s2n_strerror(i32 noundef %13248, ptr noundef @.str.4)
  %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_debug(i32 noundef %13251, ptr noundef @.str.4)
  %13253 = call ptr @__errno_location() #11
  %13254 = load i32, ptr %13253, align 4, !tbaa !5
  %13255 = call ptr @strerror(i32 noundef %13254) #10
  %13256 = call ptr @__errno_location() #11
  %13257 = load i32, ptr %13256, align 4, !tbaa !5
  %13258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13245, ptr noundef @.str.2, i32 noundef %13246, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13249, ptr noundef %13252, ptr noundef %13255, i32 noundef %13257) #10
  br label %13276

13259:                                            ; preds = %13237, %13230
  %13260 = load i32, ptr %245, align 4, !tbaa !5
  %13261 = call ptr @__errno_location() #11
  store i32 %13260, ptr %13261, align 4, !tbaa !5
  %13262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13263 = load i32, ptr @test_count, align 4, !tbaa !5
  %13264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13265 = load i32, ptr %13264, align 4, !tbaa !5
  %13266 = call ptr @s2n_strerror(i32 noundef %13265, ptr noundef @.str.4)
  %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_debug(i32 noundef %13268, ptr noundef @.str.4)
  %13270 = call ptr @__errno_location() #11
  %13271 = load i32, ptr %13270, align 4, !tbaa !5
  %13272 = call ptr @strerror(i32 noundef %13271) #10
  %13273 = call ptr @__errno_location() #11
  %13274 = load i32, ptr %13273, align 4, !tbaa !5
  %13275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13262, ptr noundef @.str.5, i32 noundef %13263, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13266, ptr noundef %13269, ptr noundef %13272, i32 noundef %13274) #10
  br label %13276

13276:                                            ; preds = %13259, %13242
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #10
  br label %13277

13277:                                            ; preds = %13276
  br label %13278

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

13279:                                            ; No predecessors!
  br label %13280

13280:                                            ; preds = %13279
  br label %13281

13281:                                            ; preds = %13280, %13222
  br label %13282

13282:                                            ; preds = %13281
  br label %13283

13283:                                            ; preds = %13282
  br label %13284

13284:                                            ; preds = %13283
  %13285 = load i32, ptr @test_count, align 4, !tbaa !5
  %13286 = add nsw i32 %13285, 1
  store i32 %13286, ptr @test_count, align 4, !tbaa !5
  %13287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13288 = load i32, ptr %13287, align 4, !tbaa !5
  %13289 = call ptr @s2n_strerror_debug(i32 noundef %13288, ptr noundef @.str.4)
  %13290 = icmp eq ptr %13289, null
  br i1 %13290, label %13291, label %13344

13291:                                            ; preds = %13284
  br label %13292

13292:                                            ; preds = %13291
  br label %13293

13293:                                            ; preds = %13292
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #10
  %13294 = call ptr @__errno_location() #11
  %13295 = load i32, ptr %13294, align 4, !tbaa !5
  store i32 %13295, ptr %246, align 4, !tbaa !5
  %13296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13297 = call i32 @s2n_print_stacktrace(ptr noundef %13296)
  %13298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13299 = trunc i8 %13298 to i1
  br i1 %13299, label %13300, label %13322

13300:                                            ; preds = %13293
  %13301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13302 = call i32 @fileno(ptr noundef %13301) #10
  %13303 = call i32 @isatty(i32 noundef %13302) #10
  %13304 = icmp ne i32 %13303, 0
  br i1 %13304, label %13305, label %13322

13305:                                            ; preds = %13300
  %13306 = load i32, ptr %246, align 4, !tbaa !5
  %13307 = call ptr @__errno_location() #11
  store i32 %13306, ptr %13307, align 4, !tbaa !5
  %13308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13309 = load i32, ptr @test_count, align 4, !tbaa !5
  %13310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13311 = load i32, ptr %13310, align 4, !tbaa !5
  %13312 = call ptr @s2n_strerror(i32 noundef %13311, ptr noundef @.str.4)
  %13313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13314 = load i32, ptr %13313, align 4, !tbaa !5
  %13315 = call ptr @s2n_strerror_debug(i32 noundef %13314, ptr noundef @.str.4)
  %13316 = call ptr @__errno_location() #11
  %13317 = load i32, ptr %13316, align 4, !tbaa !5
  %13318 = call ptr @strerror(i32 noundef %13317) #10
  %13319 = call ptr @__errno_location() #11
  %13320 = load i32, ptr %13319, align 4, !tbaa !5
  %13321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13308, ptr noundef @.str.2, i32 noundef %13309, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13312, ptr noundef %13315, ptr noundef %13318, i32 noundef %13320) #10
  br label %13339

13322:                                            ; preds = %13300, %13293
  %13323 = load i32, ptr %246, align 4, !tbaa !5
  %13324 = call ptr @__errno_location() #11
  store i32 %13323, ptr %13324, align 4, !tbaa !5
  %13325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13326 = load i32, ptr @test_count, align 4, !tbaa !5
  %13327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13328 = load i32, ptr %13327, align 4, !tbaa !5
  %13329 = call ptr @s2n_strerror(i32 noundef %13328, ptr noundef @.str.4)
  %13330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13331 = load i32, ptr %13330, align 4, !tbaa !5
  %13332 = call ptr @s2n_strerror_debug(i32 noundef %13331, ptr noundef @.str.4)
  %13333 = call ptr @__errno_location() #11
  %13334 = load i32, ptr %13333, align 4, !tbaa !5
  %13335 = call ptr @strerror(i32 noundef %13334) #10
  %13336 = call ptr @__errno_location() #11
  %13337 = load i32, ptr %13336, align 4, !tbaa !5
  %13338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13325, ptr noundef @.str.5, i32 noundef %13326, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13329, ptr noundef %13332, ptr noundef %13335, i32 noundef %13337) #10
  br label %13339

13339:                                            ; preds = %13322, %13305
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #10
  br label %13340

13340:                                            ; preds = %13339
  br label %13341

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

13342:                                            ; No predecessors!
  br label %13343

13343:                                            ; preds = %13342
  br label %13344

13344:                                            ; preds = %13343, %13284
  br label %13345

13345:                                            ; preds = %13344
  br label %13346

13346:                                            ; preds = %13345
  br label %13347

13347:                                            ; preds = %13346
  br label %13348

13348:                                            ; preds = %13347
  br label %13349

13349:                                            ; preds = %13348
  %13350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %13350, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %13351 = call ptr @__errno_location() #11
  store i32 0, ptr %13351, align 4, !tbaa !5
  br label %13352

13352:                                            ; preds = %13349
  br label %13353

13353:                                            ; preds = %13352
  br label %13354

13354:                                            ; preds = %13353
  br label %13355

13355:                                            ; preds = %13354
  %13356 = load ptr, ptr %214, align 8, !tbaa !9
  %13357 = call i32 @s2n_config_free(ptr noundef %13356)
  %13358 = load ptr, ptr %215, align 8, !tbaa !9
  %13359 = call i32 @s2n_connection_free(ptr noundef %13358)
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #10
  store i32 0, ptr %247, align 4, !tbaa !5
  br label %13360

13360:                                            ; preds = %13929, %13355
  %13361 = load i32, ptr %247, align 4, !tbaa !5
  %13362 = sext i32 %13361 to i64
  %13363 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %13362
  %13364 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %13363, i32 0, i32 0
  %13365 = load ptr, ptr %13364, align 8, !tbaa !17
  %13366 = icmp ne ptr %13365, null
  br i1 %13366, label %13368, label %13367

13367:                                            ; preds = %13360
  store i32 1268, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #10
  br label %13932

13368:                                            ; preds = %13360
  %13369 = load i32, ptr %247, align 4, !tbaa !5
  %13370 = sext i32 %13369 to i64
  %13371 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %13370
  %13372 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %13371, i32 0, i32 1
  %13373 = load ptr, ptr %13372, align 8, !tbaa !19
  store ptr %13373, ptr %39, align 8, !tbaa !9
  br label %13374

13374:                                            ; preds = %13368
  %13375 = load i32, ptr @test_count, align 4, !tbaa !5
  %13376 = add nsw i32 %13375, 1
  store i32 %13376, ptr @test_count, align 4, !tbaa !5
  %13377 = load ptr, ptr %39, align 8, !tbaa !9
  %13378 = icmp eq ptr %13377, null
  br i1 %13378, label %13379, label %13432

13379:                                            ; preds = %13374
  br label %13380

13380:                                            ; preds = %13379
  br label %13381

13381:                                            ; preds = %13380
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #10
  %13382 = call ptr @__errno_location() #11
  %13383 = load i32, ptr %13382, align 4, !tbaa !5
  store i32 %13383, ptr %248, align 4, !tbaa !5
  %13384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13385 = call i32 @s2n_print_stacktrace(ptr noundef %13384)
  %13386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13387 = trunc i8 %13386 to i1
  br i1 %13387, label %13388, label %13410

13388:                                            ; preds = %13381
  %13389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13390 = call i32 @fileno(ptr noundef %13389) #10
  %13391 = call i32 @isatty(i32 noundef %13390) #10
  %13392 = icmp ne i32 %13391, 0
  br i1 %13392, label %13393, label %13410

13393:                                            ; preds = %13388
  %13394 = load i32, ptr %248, align 4, !tbaa !5
  %13395 = call ptr @__errno_location() #11
  store i32 %13394, ptr %13395, align 4, !tbaa !5
  %13396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13397 = load i32, ptr @test_count, align 4, !tbaa !5
  %13398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13399 = load i32, ptr %13398, align 4, !tbaa !5
  %13400 = call ptr @s2n_strerror(i32 noundef %13399, ptr noundef @.str.4)
  %13401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13402 = load i32, ptr %13401, align 4, !tbaa !5
  %13403 = call ptr @s2n_strerror_debug(i32 noundef %13402, ptr noundef @.str.4)
  %13404 = call ptr @__errno_location() #11
  %13405 = load i32, ptr %13404, align 4, !tbaa !5
  %13406 = call ptr @strerror(i32 noundef %13405) #10
  %13407 = call ptr @__errno_location() #11
  %13408 = load i32, ptr %13407, align 4, !tbaa !5
  %13409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13396, ptr noundef @.str.2, i32 noundef %13397, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 591, ptr noundef %13400, ptr noundef %13403, ptr noundef %13406, i32 noundef %13408) #10
  br label %13427

13410:                                            ; preds = %13388, %13381
  %13411 = load i32, ptr %248, align 4, !tbaa !5
  %13412 = call ptr @__errno_location() #11
  store i32 %13411, ptr %13412, align 4, !tbaa !5
  %13413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13414 = load i32, ptr @test_count, align 4, !tbaa !5
  %13415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13416 = load i32, ptr %13415, align 4, !tbaa !5
  %13417 = call ptr @s2n_strerror(i32 noundef %13416, ptr noundef @.str.4)
  %13418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13419 = load i32, ptr %13418, align 4, !tbaa !5
  %13420 = call ptr @s2n_strerror_debug(i32 noundef %13419, ptr noundef @.str.4)
  %13421 = call ptr @__errno_location() #11
  %13422 = load i32, ptr %13421, align 4, !tbaa !5
  %13423 = call ptr @strerror(i32 noundef %13422) #10
  %13424 = call ptr @__errno_location() #11
  %13425 = load i32, ptr %13424, align 4, !tbaa !5
  %13426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13413, ptr noundef @.str.5, i32 noundef %13414, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 591, ptr noundef %13417, ptr noundef %13420, ptr noundef %13423, i32 noundef %13425) #10
  br label %13427

13427:                                            ; preds = %13410, %13393
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #10
  br label %13428

13428:                                            ; preds = %13427
  br label %13429

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

13430:                                            ; No predecessors!
  br label %13431

13431:                                            ; preds = %13430
  br label %13432

13432:                                            ; preds = %13431, %13374
  br label %13433

13433:                                            ; preds = %13432
  br label %13434

13434:                                            ; preds = %13433
  br label %13435

13435:                                            ; preds = %13434
  %13436 = load i32, ptr @test_count, align 4, !tbaa !5
  %13437 = add nsw i32 %13436, 1
  store i32 %13437, ptr @test_count, align 4, !tbaa !5
  %13438 = load ptr, ptr %39, align 8, !tbaa !9
  %13439 = getelementptr inbounds %struct.s2n_security_policy, ptr %13438, i32 0, i32 3
  %13440 = load ptr, ptr %13439, align 8, !tbaa !38
  %13441 = icmp eq ptr %13440, null
  br i1 %13441, label %13442, label %13495

13442:                                            ; preds = %13435
  br label %13443

13443:                                            ; preds = %13442
  br label %13444

13444:                                            ; preds = %13443
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #10
  %13445 = call ptr @__errno_location() #11
  %13446 = load i32, ptr %13445, align 4, !tbaa !5
  store i32 %13446, ptr %249, align 4, !tbaa !5
  %13447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13448 = call i32 @s2n_print_stacktrace(ptr noundef %13447)
  %13449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13450 = trunc i8 %13449 to i1
  br i1 %13450, label %13451, label %13473

13451:                                            ; preds = %13444
  %13452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13453 = call i32 @fileno(ptr noundef %13452) #10
  %13454 = call i32 @isatty(i32 noundef %13453) #10
  %13455 = icmp ne i32 %13454, 0
  br i1 %13455, label %13456, label %13473

13456:                                            ; preds = %13451
  %13457 = load i32, ptr %249, align 4, !tbaa !5
  %13458 = call ptr @__errno_location() #11
  store i32 %13457, ptr %13458, align 4, !tbaa !5
  %13459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13460 = load i32, ptr @test_count, align 4, !tbaa !5
  %13461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13462 = load i32, ptr %13461, align 4, !tbaa !5
  %13463 = call ptr @s2n_strerror(i32 noundef %13462, ptr noundef @.str.4)
  %13464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13465 = load i32, ptr %13464, align 4, !tbaa !5
  %13466 = call ptr @s2n_strerror_debug(i32 noundef %13465, ptr noundef @.str.4)
  %13467 = call ptr @__errno_location() #11
  %13468 = load i32, ptr %13467, align 4, !tbaa !5
  %13469 = call ptr @strerror(i32 noundef %13468) #10
  %13470 = call ptr @__errno_location() #11
  %13471 = load i32, ptr %13470, align 4, !tbaa !5
  %13472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13459, ptr noundef @.str.2, i32 noundef %13460, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 592, ptr noundef %13463, ptr noundef %13466, ptr noundef %13469, i32 noundef %13471) #10
  br label %13490

13473:                                            ; preds = %13451, %13444
  %13474 = load i32, ptr %249, align 4, !tbaa !5
  %13475 = call ptr @__errno_location() #11
  store i32 %13474, ptr %13475, align 4, !tbaa !5
  %13476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13477 = load i32, ptr @test_count, align 4, !tbaa !5
  %13478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13479 = load i32, ptr %13478, align 4, !tbaa !5
  %13480 = call ptr @s2n_strerror(i32 noundef %13479, ptr noundef @.str.4)
  %13481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13482 = load i32, ptr %13481, align 4, !tbaa !5
  %13483 = call ptr @s2n_strerror_debug(i32 noundef %13482, ptr noundef @.str.4)
  %13484 = call ptr @__errno_location() #11
  %13485 = load i32, ptr %13484, align 4, !tbaa !5
  %13486 = call ptr @strerror(i32 noundef %13485) #10
  %13487 = call ptr @__errno_location() #11
  %13488 = load i32, ptr %13487, align 4, !tbaa !5
  %13489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13476, ptr noundef @.str.5, i32 noundef %13477, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 592, ptr noundef %13480, ptr noundef %13483, ptr noundef %13486, i32 noundef %13488) #10
  br label %13490

13490:                                            ; preds = %13473, %13456
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #10
  br label %13491

13491:                                            ; preds = %13490
  br label %13492

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

13493:                                            ; No predecessors!
  br label %13494

13494:                                            ; preds = %13493
  br label %13495

13495:                                            ; preds = %13494, %13435
  br label %13496

13496:                                            ; preds = %13495
  br label %13497

13497:                                            ; preds = %13496
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #10
  store i32 0, ptr %250, align 4, !tbaa !5
  br label %13498

13498:                                            ; preds = %13925, %13497
  %13499 = load i32, ptr %250, align 4, !tbaa !5
  %13500 = load ptr, ptr %39, align 8, !tbaa !9
  %13501 = getelementptr inbounds %struct.s2n_security_policy, ptr %13500, i32 0, i32 3
  %13502 = load ptr, ptr %13501, align 8, !tbaa !38
  %13503 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %13502, i32 0, i32 0
  %13504 = load i8, ptr %13503, align 8, !tbaa !39
  %13505 = zext i8 %13504 to i32
  %13506 = icmp slt i32 %13499, %13505
  br i1 %13506, label %13508, label %13507

13507:                                            ; preds = %13498
  store i32 1283, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #10
  br label %13928

13508:                                            ; preds = %13498
  call void @llvm.lifetime.start.p0(i64 8, ptr %251) #10
  %13509 = load ptr, ptr %39, align 8, !tbaa !9
  %13510 = getelementptr inbounds %struct.s2n_security_policy, ptr %13509, i32 0, i32 3
  %13511 = load ptr, ptr %13510, align 8, !tbaa !38
  %13512 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %13511, i32 0, i32 1
  %13513 = load ptr, ptr %13512, align 8, !tbaa !41
  %13514 = load i32, ptr %250, align 4, !tbaa !5
  %13515 = sext i32 %13514 to i64
  %13516 = getelementptr inbounds ptr, ptr %13513, i64 %13515
  %13517 = load ptr, ptr %13516, align 8, !tbaa !9
  store ptr %13517, ptr %251, align 8, !tbaa !9
  br label %13518

13518:                                            ; preds = %13508
  %13519 = load i32, ptr @test_count, align 4, !tbaa !5
  %13520 = add nsw i32 %13519, 1
  store i32 %13520, ptr @test_count, align 4, !tbaa !5
  %13521 = load ptr, ptr %251, align 8, !tbaa !9
  %13522 = icmp eq ptr %13521, null
  br i1 %13522, label %13523, label %13576

13523:                                            ; preds = %13518
  br label %13524

13524:                                            ; preds = %13523
  br label %13525

13525:                                            ; preds = %13524
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #10
  %13526 = call ptr @__errno_location() #11
  %13527 = load i32, ptr %13526, align 4, !tbaa !5
  store i32 %13527, ptr %252, align 4, !tbaa !5
  %13528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13529 = call i32 @s2n_print_stacktrace(ptr noundef %13528)
  %13530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13531 = trunc i8 %13530 to i1
  br i1 %13531, label %13532, label %13554

13532:                                            ; preds = %13525
  %13533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13534 = call i32 @fileno(ptr noundef %13533) #10
  %13535 = call i32 @isatty(i32 noundef %13534) #10
  %13536 = icmp ne i32 %13535, 0
  br i1 %13536, label %13537, label %13554

13537:                                            ; preds = %13532
  %13538 = load i32, ptr %252, align 4, !tbaa !5
  %13539 = call ptr @__errno_location() #11
  store i32 %13538, ptr %13539, align 4, !tbaa !5
  %13540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13541 = load i32, ptr @test_count, align 4, !tbaa !5
  %13542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13543 = load i32, ptr %13542, align 4, !tbaa !5
  %13544 = call ptr @s2n_strerror(i32 noundef %13543, ptr noundef @.str.4)
  %13545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13546 = load i32, ptr %13545, align 4, !tbaa !5
  %13547 = call ptr @s2n_strerror_debug(i32 noundef %13546, ptr noundef @.str.4)
  %13548 = call ptr @__errno_location() #11
  %13549 = load i32, ptr %13548, align 4, !tbaa !5
  %13550 = call ptr @strerror(i32 noundef %13549) #10
  %13551 = call ptr @__errno_location() #11
  %13552 = load i32, ptr %13551, align 4, !tbaa !5
  %13553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13540, ptr noundef @.str.2, i32 noundef %13541, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 597, ptr noundef %13544, ptr noundef %13547, ptr noundef %13550, i32 noundef %13552) #10
  br label %13571

13554:                                            ; preds = %13532, %13525
  %13555 = load i32, ptr %252, align 4, !tbaa !5
  %13556 = call ptr @__errno_location() #11
  store i32 %13555, ptr %13556, align 4, !tbaa !5
  %13557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13558 = load i32, ptr @test_count, align 4, !tbaa !5
  %13559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13560 = load i32, ptr %13559, align 4, !tbaa !5
  %13561 = call ptr @s2n_strerror(i32 noundef %13560, ptr noundef @.str.4)
  %13562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13563 = load i32, ptr %13562, align 4, !tbaa !5
  %13564 = call ptr @s2n_strerror_debug(i32 noundef %13563, ptr noundef @.str.4)
  %13565 = call ptr @__errno_location() #11
  %13566 = load i32, ptr %13565, align 4, !tbaa !5
  %13567 = call ptr @strerror(i32 noundef %13566) #10
  %13568 = call ptr @__errno_location() #11
  %13569 = load i32, ptr %13568, align 4, !tbaa !5
  %13570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13557, ptr noundef @.str.5, i32 noundef %13558, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 597, ptr noundef %13561, ptr noundef %13564, ptr noundef %13567, i32 noundef %13569) #10
  br label %13571

13571:                                            ; preds = %13554, %13537
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #10
  br label %13572

13572:                                            ; preds = %13571
  br label %13573

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

13574:                                            ; No predecessors!
  br label %13575

13575:                                            ; preds = %13574
  br label %13576

13576:                                            ; preds = %13575, %13518
  br label %13577

13577:                                            ; preds = %13576
  br label %13578

13578:                                            ; preds = %13577
  call void @llvm.lifetime.start.p0(i64 1, ptr %253) #10
  %13579 = load ptr, ptr %251, align 8, !tbaa !9
  %13580 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %13579, i32 0, i32 5
  %13581 = load i8, ptr %13580, align 1, !tbaa !44
  store i8 %13581, ptr %253, align 1, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 1, ptr %254) #10
  %13582 = load ptr, ptr %251, align 8, !tbaa !9
  %13583 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %13582, i32 0, i32 4
  %13584 = load i8, ptr %13583, align 8, !tbaa !42
  store i8 %13584, ptr %254, align 1, !tbaa !68
  br label %13585

13585:                                            ; preds = %13578
  %13586 = load i32, ptr @test_count, align 4, !tbaa !5
  %13587 = add nsw i32 %13586, 1
  store i32 %13587, ptr @test_count, align 4, !tbaa !5
  %13588 = load i8, ptr %253, align 1, !tbaa !68
  %13589 = zext i8 %13588 to i32
  %13590 = icmp eq i32 %13589, 0
  br i1 %13590, label %13650, label %13591

13591:                                            ; preds = %13585
  %13592 = load i8, ptr %254, align 1, !tbaa !68
  %13593 = zext i8 %13592 to i32
  %13594 = load i8, ptr %253, align 1, !tbaa !68
  %13595 = zext i8 %13594 to i32
  %13596 = icmp sle i32 %13593, %13595
  br i1 %13596, label %13650, label %13597

13597:                                            ; preds = %13591
  br label %13598

13598:                                            ; preds = %13597
  br label %13599

13599:                                            ; preds = %13598
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #10
  %13600 = call ptr @__errno_location() #11
  %13601 = load i32, ptr %13600, align 4, !tbaa !5
  store i32 %13601, ptr %255, align 4, !tbaa !5
  %13602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13603 = call i32 @s2n_print_stacktrace(ptr noundef %13602)
  %13604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13605 = trunc i8 %13604 to i1
  br i1 %13605, label %13606, label %13628

13606:                                            ; preds = %13599
  %13607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13608 = call i32 @fileno(ptr noundef %13607) #10
  %13609 = call i32 @isatty(i32 noundef %13608) #10
  %13610 = icmp ne i32 %13609, 0
  br i1 %13610, label %13611, label %13628

13611:                                            ; preds = %13606
  %13612 = load i32, ptr %255, align 4, !tbaa !5
  %13613 = call ptr @__errno_location() #11
  store i32 %13612, ptr %13613, align 4, !tbaa !5
  %13614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13615 = load i32, ptr @test_count, align 4, !tbaa !5
  %13616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13617 = load i32, ptr %13616, align 4, !tbaa !5
  %13618 = call ptr @s2n_strerror(i32 noundef %13617, ptr noundef @.str.4)
  %13619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13620 = load i32, ptr %13619, align 4, !tbaa !5
  %13621 = call ptr @s2n_strerror_debug(i32 noundef %13620, ptr noundef @.str.4)
  %13622 = call ptr @__errno_location() #11
  %13623 = load i32, ptr %13622, align 4, !tbaa !5
  %13624 = call ptr @strerror(i32 noundef %13623) #10
  %13625 = call ptr @__errno_location() #11
  %13626 = load i32, ptr %13625, align 4, !tbaa !5
  %13627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13614, ptr noundef @.str.2, i32 noundef %13615, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 602, ptr noundef %13618, ptr noundef %13621, ptr noundef %13624, i32 noundef %13626) #10
  br label %13645

13628:                                            ; preds = %13606, %13599
  %13629 = load i32, ptr %255, align 4, !tbaa !5
  %13630 = call ptr @__errno_location() #11
  store i32 %13629, ptr %13630, align 4, !tbaa !5
  %13631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13632 = load i32, ptr @test_count, align 4, !tbaa !5
  %13633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13634 = load i32, ptr %13633, align 4, !tbaa !5
  %13635 = call ptr @s2n_strerror(i32 noundef %13634, ptr noundef @.str.4)
  %13636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13637 = load i32, ptr %13636, align 4, !tbaa !5
  %13638 = call ptr @s2n_strerror_debug(i32 noundef %13637, ptr noundef @.str.4)
  %13639 = call ptr @__errno_location() #11
  %13640 = load i32, ptr %13639, align 4, !tbaa !5
  %13641 = call ptr @strerror(i32 noundef %13640) #10
  %13642 = call ptr @__errno_location() #11
  %13643 = load i32, ptr %13642, align 4, !tbaa !5
  %13644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13631, ptr noundef @.str.5, i32 noundef %13632, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 602, ptr noundef %13635, ptr noundef %13638, ptr noundef %13641, i32 noundef %13643) #10
  br label %13645

13645:                                            ; preds = %13628, %13611
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #10
  br label %13646

13646:                                            ; preds = %13645
  br label %13647

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

13648:                                            ; No predecessors!
  br label %13649

13649:                                            ; preds = %13648
  br label %13650

13650:                                            ; preds = %13649, %13591, %13585
  br label %13651

13651:                                            ; preds = %13650
  br label %13652

13652:                                            ; preds = %13651
  %13653 = load i8, ptr %253, align 1, !tbaa !68
  %13654 = zext i8 %13653 to i32
  %13655 = icmp eq i32 %13654, 0
  br i1 %13655, label %13660, label %13656

13656:                                            ; preds = %13652
  %13657 = load i8, ptr %253, align 1, !tbaa !68
  %13658 = zext i8 %13657 to i32
  %13659 = icmp sge i32 %13658, 34
  br i1 %13659, label %13660, label %13856

13660:                                            ; preds = %13656, %13652
  br label %13661

13661:                                            ; preds = %13660
  %13662 = load i32, ptr @test_count, align 4, !tbaa !5
  %13663 = add nsw i32 %13662, 1
  store i32 %13663, ptr @test_count, align 4, !tbaa !5
  %13664 = load ptr, ptr %251, align 8, !tbaa !9
  %13665 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %13664, i32 0, i32 2
  %13666 = load i32, ptr %13665, align 8, !tbaa !69
  %13667 = icmp eq i32 %13666, 2
  br i1 %13667, label %13668, label %13721

13668:                                            ; preds = %13661
  br label %13669

13669:                                            ; preds = %13668
  br label %13670

13670:                                            ; preds = %13669
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #10
  %13671 = call ptr @__errno_location() #11
  %13672 = load i32, ptr %13671, align 4, !tbaa !5
  store i32 %13672, ptr %256, align 4, !tbaa !5
  %13673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13674 = call i32 @s2n_print_stacktrace(ptr noundef %13673)
  %13675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13676 = trunc i8 %13675 to i1
  br i1 %13676, label %13677, label %13699

13677:                                            ; preds = %13670
  %13678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13679 = call i32 @fileno(ptr noundef %13678) #10
  %13680 = call i32 @isatty(i32 noundef %13679) #10
  %13681 = icmp ne i32 %13680, 0
  br i1 %13681, label %13682, label %13699

13682:                                            ; preds = %13677
  %13683 = load i32, ptr %256, align 4, !tbaa !5
  %13684 = call ptr @__errno_location() #11
  store i32 %13683, ptr %13684, align 4, !tbaa !5
  %13685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13686 = load i32, ptr @test_count, align 4, !tbaa !5
  %13687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13688 = load i32, ptr %13687, align 4, !tbaa !5
  %13689 = call ptr @s2n_strerror(i32 noundef %13688, ptr noundef @.str.4)
  %13690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13691 = load i32, ptr %13690, align 4, !tbaa !5
  %13692 = call ptr @s2n_strerror_debug(i32 noundef %13691, ptr noundef @.str.4)
  %13693 = call ptr @__errno_location() #11
  %13694 = load i32, ptr %13693, align 4, !tbaa !5
  %13695 = call ptr @strerror(i32 noundef %13694) #10
  %13696 = call ptr @__errno_location() #11
  %13697 = load i32, ptr %13696, align 4, !tbaa !5
  %13698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13685, ptr noundef @.str.2, i32 noundef %13686, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 606, ptr noundef %13689, ptr noundef %13692, ptr noundef %13695, i32 noundef %13697) #10
  br label %13716

13699:                                            ; preds = %13677, %13670
  %13700 = load i32, ptr %256, align 4, !tbaa !5
  %13701 = call ptr @__errno_location() #11
  store i32 %13700, ptr %13701, align 4, !tbaa !5
  %13702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13703 = load i32, ptr @test_count, align 4, !tbaa !5
  %13704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13705 = load i32, ptr %13704, align 4, !tbaa !5
  %13706 = call ptr @s2n_strerror(i32 noundef %13705, ptr noundef @.str.4)
  %13707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13708 = load i32, ptr %13707, align 4, !tbaa !5
  %13709 = call ptr @s2n_strerror_debug(i32 noundef %13708, ptr noundef @.str.4)
  %13710 = call ptr @__errno_location() #11
  %13711 = load i32, ptr %13710, align 4, !tbaa !5
  %13712 = call ptr @strerror(i32 noundef %13711) #10
  %13713 = call ptr @__errno_location() #11
  %13714 = load i32, ptr %13713, align 4, !tbaa !5
  %13715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13702, ptr noundef @.str.5, i32 noundef %13703, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 606, ptr noundef %13706, ptr noundef %13709, ptr noundef %13712, i32 noundef %13714) #10
  br label %13716

13716:                                            ; preds = %13699, %13682
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #10
  br label %13717

13717:                                            ; preds = %13716
  br label %13718

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

13719:                                            ; No predecessors!
  br label %13720

13720:                                            ; preds = %13719
  br label %13721

13721:                                            ; preds = %13720, %13661
  br label %13722

13722:                                            ; preds = %13721
  br label %13723

13723:                                            ; preds = %13722
  br label %13724

13724:                                            ; preds = %13723
  %13725 = load i32, ptr @test_count, align 4, !tbaa !5
  %13726 = add nsw i32 %13725, 1
  store i32 %13726, ptr @test_count, align 4, !tbaa !5
  %13727 = load ptr, ptr %251, align 8, !tbaa !9
  %13728 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %13727, i32 0, i32 3
  %13729 = load i32, ptr %13728, align 4, !tbaa !45
  %13730 = icmp eq i32 %13729, 1
  br i1 %13730, label %13731, label %13784

13731:                                            ; preds = %13724
  br label %13732

13732:                                            ; preds = %13731
  br label %13733

13733:                                            ; preds = %13732
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #10
  %13734 = call ptr @__errno_location() #11
  %13735 = load i32, ptr %13734, align 4, !tbaa !5
  store i32 %13735, ptr %257, align 4, !tbaa !5
  %13736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13737 = call i32 @s2n_print_stacktrace(ptr noundef %13736)
  %13738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13739 = trunc i8 %13738 to i1
  br i1 %13739, label %13740, label %13762

13740:                                            ; preds = %13733
  %13741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13742 = call i32 @fileno(ptr noundef %13741) #10
  %13743 = call i32 @isatty(i32 noundef %13742) #10
  %13744 = icmp ne i32 %13743, 0
  br i1 %13744, label %13745, label %13762

13745:                                            ; preds = %13740
  %13746 = load i32, ptr %257, align 4, !tbaa !5
  %13747 = call ptr @__errno_location() #11
  store i32 %13746, ptr %13747, align 4, !tbaa !5
  %13748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13749 = load i32, ptr @test_count, align 4, !tbaa !5
  %13750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13751 = load i32, ptr %13750, align 4, !tbaa !5
  %13752 = call ptr @s2n_strerror(i32 noundef %13751, ptr noundef @.str.4)
  %13753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13754 = load i32, ptr %13753, align 4, !tbaa !5
  %13755 = call ptr @s2n_strerror_debug(i32 noundef %13754, ptr noundef @.str.4)
  %13756 = call ptr @__errno_location() #11
  %13757 = load i32, ptr %13756, align 4, !tbaa !5
  %13758 = call ptr @strerror(i32 noundef %13757) #10
  %13759 = call ptr @__errno_location() #11
  %13760 = load i32, ptr %13759, align 4, !tbaa !5
  %13761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13748, ptr noundef @.str.2, i32 noundef %13749, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 607, ptr noundef %13752, ptr noundef %13755, ptr noundef %13758, i32 noundef %13760) #10
  br label %13779

13762:                                            ; preds = %13740, %13733
  %13763 = load i32, ptr %257, align 4, !tbaa !5
  %13764 = call ptr @__errno_location() #11
  store i32 %13763, ptr %13764, align 4, !tbaa !5
  %13765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13766 = load i32, ptr @test_count, align 4, !tbaa !5
  %13767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13768 = load i32, ptr %13767, align 4, !tbaa !5
  %13769 = call ptr @s2n_strerror(i32 noundef %13768, ptr noundef @.str.4)
  %13770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13771 = load i32, ptr %13770, align 4, !tbaa !5
  %13772 = call ptr @s2n_strerror_debug(i32 noundef %13771, ptr noundef @.str.4)
  %13773 = call ptr @__errno_location() #11
  %13774 = load i32, ptr %13773, align 4, !tbaa !5
  %13775 = call ptr @strerror(i32 noundef %13774) #10
  %13776 = call ptr @__errno_location() #11
  %13777 = load i32, ptr %13776, align 4, !tbaa !5
  %13778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13765, ptr noundef @.str.5, i32 noundef %13766, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 607, ptr noundef %13769, ptr noundef %13772, ptr noundef %13775, i32 noundef %13777) #10
  br label %13779

13779:                                            ; preds = %13762, %13745
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #10
  br label %13780

13780:                                            ; preds = %13779
  br label %13781

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

13782:                                            ; No predecessors!
  br label %13783

13783:                                            ; preds = %13782
  br label %13784

13784:                                            ; preds = %13783, %13724
  br label %13785

13785:                                            ; preds = %13784
  br label %13786

13786:                                            ; preds = %13785
  %13787 = load ptr, ptr %251, align 8, !tbaa !9
  %13788 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %13787, i32 0, i32 3
  %13789 = load i32, ptr %13788, align 4, !tbaa !45
  %13790 = icmp eq i32 %13789, 3
  br i1 %13790, label %13791, label %13855

13791:                                            ; preds = %13786
  br label %13792

13792:                                            ; preds = %13791
  %13793 = load i32, ptr @test_count, align 4, !tbaa !5
  %13794 = add nsw i32 %13793, 1
  store i32 %13794, ptr @test_count, align 4, !tbaa !5
  %13795 = load ptr, ptr %251, align 8, !tbaa !9
  %13796 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %13795, i32 0, i32 7
  %13797 = load ptr, ptr %13796, align 8, !tbaa !70
  %13798 = icmp eq ptr %13797, null
  br i1 %13798, label %13799, label %13852

13799:                                            ; preds = %13792
  br label %13800

13800:                                            ; preds = %13799
  br label %13801

13801:                                            ; preds = %13800
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #10
  %13802 = call ptr @__errno_location() #11
  %13803 = load i32, ptr %13802, align 4, !tbaa !5
  store i32 %13803, ptr %258, align 4, !tbaa !5
  %13804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13805 = call i32 @s2n_print_stacktrace(ptr noundef %13804)
  %13806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13807 = trunc i8 %13806 to i1
  br i1 %13807, label %13808, label %13830

13808:                                            ; preds = %13801
  %13809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13810 = call i32 @fileno(ptr noundef %13809) #10
  %13811 = call i32 @isatty(i32 noundef %13810) #10
  %13812 = icmp ne i32 %13811, 0
  br i1 %13812, label %13813, label %13830

13813:                                            ; preds = %13808
  %13814 = load i32, ptr %258, align 4, !tbaa !5
  %13815 = call ptr @__errno_location() #11
  store i32 %13814, ptr %13815, align 4, !tbaa !5
  %13816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13817 = load i32, ptr @test_count, align 4, !tbaa !5
  %13818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13819 = load i32, ptr %13818, align 4, !tbaa !5
  %13820 = call ptr @s2n_strerror(i32 noundef %13819, ptr noundef @.str.4)
  %13821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13822 = load i32, ptr %13821, align 4, !tbaa !5
  %13823 = call ptr @s2n_strerror_debug(i32 noundef %13822, ptr noundef @.str.4)
  %13824 = call ptr @__errno_location() #11
  %13825 = load i32, ptr %13824, align 4, !tbaa !5
  %13826 = call ptr @strerror(i32 noundef %13825) #10
  %13827 = call ptr @__errno_location() #11
  %13828 = load i32, ptr %13827, align 4, !tbaa !5
  %13829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13816, ptr noundef @.str.2, i32 noundef %13817, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 609, ptr noundef %13820, ptr noundef %13823, ptr noundef %13826, i32 noundef %13828) #10
  br label %13847

13830:                                            ; preds = %13808, %13801
  %13831 = load i32, ptr %258, align 4, !tbaa !5
  %13832 = call ptr @__errno_location() #11
  store i32 %13831, ptr %13832, align 4, !tbaa !5
  %13833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13834 = load i32, ptr @test_count, align 4, !tbaa !5
  %13835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13836 = load i32, ptr %13835, align 4, !tbaa !5
  %13837 = call ptr @s2n_strerror(i32 noundef %13836, ptr noundef @.str.4)
  %13838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13839 = load i32, ptr %13838, align 4, !tbaa !5
  %13840 = call ptr @s2n_strerror_debug(i32 noundef %13839, ptr noundef @.str.4)
  %13841 = call ptr @__errno_location() #11
  %13842 = load i32, ptr %13841, align 4, !tbaa !5
  %13843 = call ptr @strerror(i32 noundef %13842) #10
  %13844 = call ptr @__errno_location() #11
  %13845 = load i32, ptr %13844, align 4, !tbaa !5
  %13846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13833, ptr noundef @.str.5, i32 noundef %13834, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 609, ptr noundef %13837, ptr noundef %13840, ptr noundef %13843, i32 noundef %13845) #10
  br label %13847

13847:                                            ; preds = %13830, %13813
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #10
  br label %13848

13848:                                            ; preds = %13847
  br label %13849

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

13850:                                            ; No predecessors!
  br label %13851

13851:                                            ; preds = %13850
  br label %13852

13852:                                            ; preds = %13851, %13792
  br label %13853

13853:                                            ; preds = %13852
  br label %13854

13854:                                            ; preds = %13853
  br label %13855

13855:                                            ; preds = %13854, %13786
  br label %13856

13856:                                            ; preds = %13855, %13656
  %13857 = load i8, ptr %254, align 1, !tbaa !68
  %13858 = zext i8 %13857 to i32
  %13859 = icmp slt i32 %13858, 33
  br i1 %13859, label %13860, label %13924

13860:                                            ; preds = %13856
  br label %13861

13861:                                            ; preds = %13860
  %13862 = load i32, ptr @test_count, align 4, !tbaa !5
  %13863 = add nsw i32 %13862, 1
  store i32 %13863, ptr @test_count, align 4, !tbaa !5
  %13864 = load ptr, ptr %251, align 8, !tbaa !9
  %13865 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %13864, i32 0, i32 3
  %13866 = load i32, ptr %13865, align 4, !tbaa !45
  %13867 = icmp eq i32 %13866, 225
  br i1 %13867, label %13868, label %13921

13868:                                            ; preds = %13861
  br label %13869

13869:                                            ; preds = %13868
  br label %13870

13870:                                            ; preds = %13869
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #10
  %13871 = call ptr @__errno_location() #11
  %13872 = load i32, ptr %13871, align 4, !tbaa !5
  store i32 %13872, ptr %259, align 4, !tbaa !5
  %13873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13874 = call i32 @s2n_print_stacktrace(ptr noundef %13873)
  %13875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13876 = trunc i8 %13875 to i1
  br i1 %13876, label %13877, label %13899

13877:                                            ; preds = %13870
  %13878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13879 = call i32 @fileno(ptr noundef %13878) #10
  %13880 = call i32 @isatty(i32 noundef %13879) #10
  %13881 = icmp ne i32 %13880, 0
  br i1 %13881, label %13882, label %13899

13882:                                            ; preds = %13877
  %13883 = load i32, ptr %259, align 4, !tbaa !5
  %13884 = call ptr @__errno_location() #11
  store i32 %13883, ptr %13884, align 4, !tbaa !5
  %13885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13886 = load i32, ptr @test_count, align 4, !tbaa !5
  %13887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13888 = load i32, ptr %13887, align 4, !tbaa !5
  %13889 = call ptr @s2n_strerror(i32 noundef %13888, ptr noundef @.str.4)
  %13890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13891 = load i32, ptr %13890, align 4, !tbaa !5
  %13892 = call ptr @s2n_strerror_debug(i32 noundef %13891, ptr noundef @.str.4)
  %13893 = call ptr @__errno_location() #11
  %13894 = load i32, ptr %13893, align 4, !tbaa !5
  %13895 = call ptr @strerror(i32 noundef %13894) #10
  %13896 = call ptr @__errno_location() #11
  %13897 = load i32, ptr %13896, align 4, !tbaa !5
  %13898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13885, ptr noundef @.str.2, i32 noundef %13886, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 615, ptr noundef %13889, ptr noundef %13892, ptr noundef %13895, i32 noundef %13897) #10
  br label %13916

13899:                                            ; preds = %13877, %13870
  %13900 = load i32, ptr %259, align 4, !tbaa !5
  %13901 = call ptr @__errno_location() #11
  store i32 %13900, ptr %13901, align 4, !tbaa !5
  %13902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13903 = load i32, ptr @test_count, align 4, !tbaa !5
  %13904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13905 = load i32, ptr %13904, align 4, !tbaa !5
  %13906 = call ptr @s2n_strerror(i32 noundef %13905, ptr noundef @.str.4)
  %13907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13908 = load i32, ptr %13907, align 4, !tbaa !5
  %13909 = call ptr @s2n_strerror_debug(i32 noundef %13908, ptr noundef @.str.4)
  %13910 = call ptr @__errno_location() #11
  %13911 = load i32, ptr %13910, align 4, !tbaa !5
  %13912 = call ptr @strerror(i32 noundef %13911) #10
  %13913 = call ptr @__errno_location() #11
  %13914 = load i32, ptr %13913, align 4, !tbaa !5
  %13915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13902, ptr noundef @.str.5, i32 noundef %13903, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 615, ptr noundef %13906, ptr noundef %13909, ptr noundef %13912, i32 noundef %13914) #10
  br label %13916

13916:                                            ; preds = %13899, %13882
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #10
  br label %13917

13917:                                            ; preds = %13916
  br label %13918

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

13919:                                            ; No predecessors!
  br label %13920

13920:                                            ; preds = %13919
  br label %13921

13921:                                            ; preds = %13920, %13861
  br label %13922

13922:                                            ; preds = %13921
  br label %13923

13923:                                            ; preds = %13922
  br label %13924

13924:                                            ; preds = %13923, %13856
  call void @llvm.lifetime.end.p0(i64 1, ptr %254) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %253) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #10
  br label %13925

13925:                                            ; preds = %13924
  %13926 = load i32, ptr %250, align 4, !tbaa !5
  %13927 = add nsw i32 %13926, 1
  store i32 %13927, ptr %250, align 4, !tbaa !5
  br label %13498, !llvm.loop !71

13928:                                            ; preds = %13507
  br label %13929

13929:                                            ; preds = %13928
  %13930 = load i32, ptr %247, align 4, !tbaa !5
  %13931 = add nsw i32 %13930, 1
  store i32 %13931, ptr %247, align 4, !tbaa !5
  br label %13360, !llvm.loop !72

13932:                                            ; preds = %13367
  call void @llvm.lifetime.start.p0(i64 32, ptr %260) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %260, ptr align 8 @__const.main.test_curve, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %261) #10
  store ptr %260, ptr %261, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %262) #10
  %13933 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %262, i32 0, i32 0
  store i8 1, ptr %13933, align 8, !tbaa !73
  %13934 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %262, i32 0, i32 1
  %13935 = getelementptr inbounds [1 x ptr], ptr %261, i64 0, i64 0
  store ptr %13935, ptr %13934, align 8, !tbaa !75
  br label %13936

13936:                                            ; preds = %13932
  br label %13937

13937:                                            ; preds = %13936
  %13938 = load i32, ptr @test_count, align 4, !tbaa !5
  %13939 = add nsw i32 %13938, 1
  store i32 %13939, ptr @test_count, align 4, !tbaa !5
  %13940 = call i32 @s2n_check_ecc_preferences_curves_list(ptr noundef %262)
  %13941 = icmp eq i32 %13940, -1
  br i1 %13941, label %13995, label %13942

13942:                                            ; preds = %13937
  br label %13943

13943:                                            ; preds = %13942
  br label %13944

13944:                                            ; preds = %13943
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #10
  %13945 = call ptr @__errno_location() #11
  %13946 = load i32, ptr %13945, align 4, !tbaa !5
  store i32 %13946, ptr %263, align 4, !tbaa !5
  %13947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13948 = call i32 @s2n_print_stacktrace(ptr noundef %13947)
  %13949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13950 = trunc i8 %13949 to i1
  br i1 %13950, label %13951, label %13973

13951:                                            ; preds = %13944
  %13952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13953 = call i32 @fileno(ptr noundef %13952) #10
  %13954 = call i32 @isatty(i32 noundef %13953) #10
  %13955 = icmp ne i32 %13954, 0
  br i1 %13955, label %13956, label %13973

13956:                                            ; preds = %13951
  %13957 = load i32, ptr %263, align 4, !tbaa !5
  %13958 = call ptr @__errno_location() #11
  store i32 %13957, ptr %13958, align 4, !tbaa !5
  %13959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13960 = load i32, ptr @test_count, align 4, !tbaa !5
  %13961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13962 = load i32, ptr %13961, align 4, !tbaa !5
  %13963 = call ptr @s2n_strerror(i32 noundef %13962, ptr noundef @.str.4)
  %13964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13965 = load i32, ptr %13964, align 4, !tbaa !5
  %13966 = call ptr @s2n_strerror_debug(i32 noundef %13965, ptr noundef @.str.4)
  %13967 = call ptr @__errno_location() #11
  %13968 = load i32, ptr %13967, align 4, !tbaa !5
  %13969 = call ptr @strerror(i32 noundef %13968) #10
  %13970 = call ptr @__errno_location() #11
  %13971 = load i32, ptr %13970, align 4, !tbaa !5
  %13972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13959, ptr noundef @.str.2, i32 noundef %13960, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 639, ptr noundef %13963, ptr noundef %13966, ptr noundef %13969, i32 noundef %13971) #10
  br label %13990

13973:                                            ; preds = %13951, %13944
  %13974 = load i32, ptr %263, align 4, !tbaa !5
  %13975 = call ptr @__errno_location() #11
  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() #11
  %13985 = load i32, ptr %13984, align 4, !tbaa !5
  %13986 = call ptr @strerror(i32 noundef %13985) #10
  %13987 = call ptr @__errno_location() #11
  %13988 = load i32, ptr %13987, align 4, !tbaa !5
  %13989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13976, ptr noundef @.str.5, i32 noundef %13977, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 639, ptr noundef %13980, ptr noundef %13983, ptr noundef %13986, i32 noundef %13988) #10
  br label %13990

13990:                                            ; preds = %13973, %13956
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #10
  br label %13991

13991:                                            ; preds = %13990
  br label %13992

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

13993:                                            ; No predecessors!
  br label %13994

13994:                                            ; preds = %13993
  br label %13995

13995:                                            ; preds = %13994, %13937
  br label %13996

13996:                                            ; preds = %13995
  br label %13997

13997:                                            ; preds = %13996
  br label %13998

13998:                                            ; preds = %13997
  %13999 = load i32, ptr @test_count, align 4, !tbaa !5
  %14000 = add nsw i32 %13999, 1
  store i32 %14000, ptr @test_count, align 4, !tbaa !5
  %14001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14002 = load i32, ptr %14001, align 4, !tbaa !5
  %14003 = icmp eq i32 %14002, 0
  br i1 %14003, label %14004, label %14057

14004:                                            ; preds = %13998
  br label %14005

14005:                                            ; preds = %14004
  br label %14006

14006:                                            ; preds = %14005
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #10
  %14007 = call ptr @__errno_location() #11
  %14008 = load i32, ptr %14007, align 4, !tbaa !5
  store i32 %14008, ptr %264, align 4, !tbaa !5
  %14009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14010 = call i32 @s2n_print_stacktrace(ptr noundef %14009)
  %14011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14012 = trunc i8 %14011 to i1
  br i1 %14012, label %14013, label %14035

14013:                                            ; preds = %14006
  %14014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14015 = call i32 @fileno(ptr noundef %14014) #10
  %14016 = call i32 @isatty(i32 noundef %14015) #10
  %14017 = icmp ne i32 %14016, 0
  br i1 %14017, label %14018, label %14035

14018:                                            ; preds = %14013
  %14019 = load i32, ptr %264, align 4, !tbaa !5
  %14020 = call ptr @__errno_location() #11
  store i32 %14019, ptr %14020, align 4, !tbaa !5
  %14021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14022 = load i32, ptr @test_count, align 4, !tbaa !5
  %14023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14024 = load i32, ptr %14023, align 4, !tbaa !5
  %14025 = call ptr @s2n_strerror(i32 noundef %14024, ptr noundef @.str.4)
  %14026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14027 = load i32, ptr %14026, align 4, !tbaa !5
  %14028 = call ptr @s2n_strerror_debug(i32 noundef %14027, ptr noundef @.str.4)
  %14029 = call ptr @__errno_location() #11
  %14030 = load i32, ptr %14029, align 4, !tbaa !5
  %14031 = call ptr @strerror(i32 noundef %14030) #10
  %14032 = call ptr @__errno_location() #11
  %14033 = load i32, ptr %14032, align 4, !tbaa !5
  %14034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14021, ptr noundef @.str.2, i32 noundef %14022, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 639, ptr noundef %14025, ptr noundef %14028, ptr noundef %14031, i32 noundef %14033) #10
  br label %14052

14035:                                            ; preds = %14013, %14006
  %14036 = load i32, ptr %264, align 4, !tbaa !5
  %14037 = call ptr @__errno_location() #11
  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() #11
  %14047 = load i32, ptr %14046, align 4, !tbaa !5
  %14048 = call ptr @strerror(i32 noundef %14047) #10
  %14049 = call ptr @__errno_location() #11
  %14050 = load i32, ptr %14049, align 4, !tbaa !5
  %14051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14038, ptr noundef @.str.5, i32 noundef %14039, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 639, ptr noundef %14042, ptr noundef %14045, ptr noundef %14048, i32 noundef %14050) #10
  br label %14052

14052:                                            ; preds = %14035, %14018
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #10
  br label %14053

14053:                                            ; preds = %14052
  br label %14054

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

14055:                                            ; No predecessors!
  br label %14056

14056:                                            ; preds = %14055
  br label %14057

14057:                                            ; preds = %14056, %13998
  br label %14058

14058:                                            ; preds = %14057
  br label %14059

14059:                                            ; preds = %14058
  br label %14060

14060:                                            ; preds = %14059
  %14061 = load i32, ptr @test_count, align 4, !tbaa !5
  %14062 = add nsw i32 %14061, 1
  store i32 %14062, ptr @test_count, align 4, !tbaa !5
  %14063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14064 = load i32, ptr %14063, align 4, !tbaa !5
  %14065 = call ptr @s2n_strerror_debug(i32 noundef %14064, ptr noundef @.str.4)
  %14066 = icmp eq ptr %14065, null
  br i1 %14066, label %14067, label %14120

14067:                                            ; preds = %14060
  br label %14068

14068:                                            ; preds = %14067
  br label %14069

14069:                                            ; preds = %14068
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #10
  %14070 = call ptr @__errno_location() #11
  %14071 = load i32, ptr %14070, align 4, !tbaa !5
  store i32 %14071, ptr %265, align 4, !tbaa !5
  %14072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14073 = call i32 @s2n_print_stacktrace(ptr noundef %14072)
  %14074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14075 = trunc i8 %14074 to i1
  br i1 %14075, label %14076, label %14098

14076:                                            ; preds = %14069
  %14077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14078 = call i32 @fileno(ptr noundef %14077) #10
  %14079 = call i32 @isatty(i32 noundef %14078) #10
  %14080 = icmp ne i32 %14079, 0
  br i1 %14080, label %14081, label %14098

14081:                                            ; preds = %14076
  %14082 = load i32, ptr %265, align 4, !tbaa !5
  %14083 = call ptr @__errno_location() #11
  store i32 %14082, ptr %14083, align 4, !tbaa !5
  %14084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14085 = load i32, ptr @test_count, align 4, !tbaa !5
  %14086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14087 = load i32, ptr %14086, align 4, !tbaa !5
  %14088 = call ptr @s2n_strerror(i32 noundef %14087, ptr noundef @.str.4)
  %14089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14090 = load i32, ptr %14089, align 4, !tbaa !5
  %14091 = call ptr @s2n_strerror_debug(i32 noundef %14090, ptr noundef @.str.4)
  %14092 = call ptr @__errno_location() #11
  %14093 = load i32, ptr %14092, align 4, !tbaa !5
  %14094 = call ptr @strerror(i32 noundef %14093) #10
  %14095 = call ptr @__errno_location() #11
  %14096 = load i32, ptr %14095, align 4, !tbaa !5
  %14097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14084, ptr noundef @.str.2, i32 noundef %14085, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 639, ptr noundef %14088, ptr noundef %14091, ptr noundef %14094, i32 noundef %14096) #10
  br label %14115

14098:                                            ; preds = %14076, %14069
  %14099 = load i32, ptr %265, align 4, !tbaa !5
  %14100 = call ptr @__errno_location() #11
  store i32 %14099, ptr %14100, align 4, !tbaa !5
  %14101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14102 = load i32, ptr @test_count, align 4, !tbaa !5
  %14103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14104 = load i32, ptr %14103, align 4, !tbaa !5
  %14105 = call ptr @s2n_strerror(i32 noundef %14104, ptr noundef @.str.4)
  %14106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14107 = load i32, ptr %14106, align 4, !tbaa !5
  %14108 = call ptr @s2n_strerror_debug(i32 noundef %14107, ptr noundef @.str.4)
  %14109 = call ptr @__errno_location() #11
  %14110 = load i32, ptr %14109, align 4, !tbaa !5
  %14111 = call ptr @strerror(i32 noundef %14110) #10
  %14112 = call ptr @__errno_location() #11
  %14113 = load i32, ptr %14112, align 4, !tbaa !5
  %14114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14101, ptr noundef @.str.5, i32 noundef %14102, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 639, ptr noundef %14105, ptr noundef %14108, ptr noundef %14111, i32 noundef %14113) #10
  br label %14115

14115:                                            ; preds = %14098, %14081
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #10
  br label %14116

14116:                                            ; preds = %14115
  br label %14117

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

14118:                                            ; No predecessors!
  br label %14119

14119:                                            ; preds = %14118
  br label %14120

14120:                                            ; preds = %14119, %14060
  br label %14121

14121:                                            ; preds = %14120
  br label %14122

14122:                                            ; preds = %14121
  br label %14123

14123:                                            ; preds = %14122
  %14124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14124, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14125 = call ptr @__errno_location() #11
  store i32 0, ptr %14125, align 4, !tbaa !5
  br label %14126

14126:                                            ; preds = %14123
  br label %14127

14127:                                            ; preds = %14126
  br label %14128

14128:                                            ; preds = %14127
  br label %14129

14129:                                            ; preds = %14128
  call void @llvm.lifetime.end.p0(i64 16, ptr %262) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %260) #10
  br label %14130

14130:                                            ; preds = %14129
  br label %14131

14131:                                            ; preds = %14130
  br label %14132

14132:                                            ; preds = %14131
  %14133 = load i32, ptr @test_count, align 4, !tbaa !5
  %14134 = add nsw i32 %14133, 1
  store i32 %14134, ptr @test_count, align 4, !tbaa !5
  %14135 = call i32 @s2n_validate_kem_preferences(ptr noundef null, i1 noundef zeroext false)
  %14136 = icmp eq i32 %14135, -1
  br i1 %14136, label %14190, label %14137

14137:                                            ; preds = %14132
  br label %14138

14138:                                            ; preds = %14137
  br label %14139

14139:                                            ; preds = %14138
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #10
  %14140 = call ptr @__errno_location() #11
  %14141 = load i32, ptr %14140, align 4, !tbaa !5
  store i32 %14141, ptr %266, align 4, !tbaa !5
  %14142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14143 = call i32 @s2n_print_stacktrace(ptr noundef %14142)
  %14144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14145 = trunc i8 %14144 to i1
  br i1 %14145, label %14146, label %14168

14146:                                            ; preds = %14139
  %14147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14148 = call i32 @fileno(ptr noundef %14147) #10
  %14149 = call i32 @isatty(i32 noundef %14148) #10
  %14150 = icmp ne i32 %14149, 0
  br i1 %14150, label %14151, label %14168

14151:                                            ; preds = %14146
  %14152 = load i32, ptr %266, align 4, !tbaa !5
  %14153 = call ptr @__errno_location() #11
  store i32 %14152, ptr %14153, align 4, !tbaa !5
  %14154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14155 = load i32, ptr @test_count, align 4, !tbaa !5
  %14156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14157 = load i32, ptr %14156, align 4, !tbaa !5
  %14158 = call ptr @s2n_strerror(i32 noundef %14157, ptr noundef @.str.4)
  %14159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14160 = load i32, ptr %14159, align 4, !tbaa !5
  %14161 = call ptr @s2n_strerror_debug(i32 noundef %14160, ptr noundef @.str.4)
  %14162 = call ptr @__errno_location() #11
  %14163 = load i32, ptr %14162, align 4, !tbaa !5
  %14164 = call ptr @strerror(i32 noundef %14163) #10
  %14165 = call ptr @__errno_location() #11
  %14166 = load i32, ptr %14165, align 4, !tbaa !5
  %14167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14154, ptr noundef @.str.2, i32 noundef %14155, ptr noundef @.str.170, ptr noundef @.str.1, i32 noundef 644, ptr noundef %14158, ptr noundef %14161, ptr noundef %14164, i32 noundef %14166) #10
  br label %14185

14168:                                            ; preds = %14146, %14139
  %14169 = load i32, ptr %266, align 4, !tbaa !5
  %14170 = call ptr @__errno_location() #11
  store i32 %14169, ptr %14170, align 4, !tbaa !5
  %14171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14172 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %14174, ptr noundef @.str.4)
  %14176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14177 = load i32, ptr %14176, align 4, !tbaa !5
  %14178 = call ptr @s2n_strerror_debug(i32 noundef %14177, ptr noundef @.str.4)
  %14179 = call ptr @__errno_location() #11
  %14180 = load i32, ptr %14179, align 4, !tbaa !5
  %14181 = call ptr @strerror(i32 noundef %14180) #10
  %14182 = call ptr @__errno_location() #11
  %14183 = load i32, ptr %14182, align 4, !tbaa !5
  %14184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14171, ptr noundef @.str.5, i32 noundef %14172, ptr noundef @.str.170, ptr noundef @.str.1, i32 noundef 644, ptr noundef %14175, ptr noundef %14178, ptr noundef %14181, i32 noundef %14183) #10
  br label %14185

14185:                                            ; preds = %14168, %14151
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #10
  br label %14186

14186:                                            ; preds = %14185
  br label %14187

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

14188:                                            ; No predecessors!
  br label %14189

14189:                                            ; preds = %14188
  br label %14190

14190:                                            ; preds = %14189, %14132
  br label %14191

14191:                                            ; preds = %14190
  br label %14192

14192:                                            ; preds = %14191
  br label %14193

14193:                                            ; preds = %14192
  %14194 = load i32, ptr @test_count, align 4, !tbaa !5
  %14195 = add nsw i32 %14194, 1
  store i32 %14195, ptr @test_count, align 4, !tbaa !5
  %14196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14197 = load i32, ptr %14196, align 4, !tbaa !5
  %14198 = icmp eq i32 %14197, 402653193
  br i1 %14198, label %14252, label %14199

14199:                                            ; preds = %14193
  br label %14200

14200:                                            ; preds = %14199
  br label %14201

14201:                                            ; preds = %14200
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #10
  %14202 = call ptr @__errno_location() #11
  %14203 = load i32, ptr %14202, align 4, !tbaa !5
  store i32 %14203, ptr %267, align 4, !tbaa !5
  %14204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14205 = call i32 @s2n_print_stacktrace(ptr noundef %14204)
  %14206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14207 = trunc i8 %14206 to i1
  br i1 %14207, label %14208, label %14230

14208:                                            ; preds = %14201
  %14209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14210 = call i32 @fileno(ptr noundef %14209) #10
  %14211 = call i32 @isatty(i32 noundef %14210) #10
  %14212 = icmp ne i32 %14211, 0
  br i1 %14212, label %14213, label %14230

14213:                                            ; preds = %14208
  %14214 = load i32, ptr %267, align 4, !tbaa !5
  %14215 = call ptr @__errno_location() #11
  store i32 %14214, ptr %14215, align 4, !tbaa !5
  %14216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14217 = load i32, ptr @test_count, align 4, !tbaa !5
  %14218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14219 = load i32, ptr %14218, align 4, !tbaa !5
  %14220 = call ptr @s2n_strerror(i32 noundef %14219, ptr noundef @.str.4)
  %14221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14222 = load i32, ptr %14221, align 4, !tbaa !5
  %14223 = call ptr @s2n_strerror_debug(i32 noundef %14222, ptr noundef @.str.4)
  %14224 = call ptr @__errno_location() #11
  %14225 = load i32, ptr %14224, align 4, !tbaa !5
  %14226 = call ptr @strerror(i32 noundef %14225) #10
  %14227 = call ptr @__errno_location() #11
  %14228 = load i32, ptr %14227, align 4, !tbaa !5
  %14229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14216, ptr noundef @.str.2, i32 noundef %14217, ptr noundef @.str.171, ptr noundef @.str.1, i32 noundef 644, ptr noundef %14220, ptr noundef %14223, ptr noundef %14226, i32 noundef %14228) #10
  br label %14247

14230:                                            ; preds = %14208, %14201
  %14231 = load i32, ptr %267, align 4, !tbaa !5
  %14232 = call ptr @__errno_location() #11
  store i32 %14231, ptr %14232, align 4, !tbaa !5
  %14233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14234 = load i32, ptr @test_count, align 4, !tbaa !5
  %14235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14236 = load i32, ptr %14235, align 4, !tbaa !5
  %14237 = call ptr @s2n_strerror(i32 noundef %14236, ptr noundef @.str.4)
  %14238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14239 = load i32, ptr %14238, align 4, !tbaa !5
  %14240 = call ptr @s2n_strerror_debug(i32 noundef %14239, ptr noundef @.str.4)
  %14241 = call ptr @__errno_location() #11
  %14242 = load i32, ptr %14241, align 4, !tbaa !5
  %14243 = call ptr @strerror(i32 noundef %14242) #10
  %14244 = call ptr @__errno_location() #11
  %14245 = load i32, ptr %14244, align 4, !tbaa !5
  %14246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14233, ptr noundef @.str.5, i32 noundef %14234, ptr noundef @.str.171, ptr noundef @.str.1, i32 noundef 644, ptr noundef %14237, ptr noundef %14240, ptr noundef %14243, i32 noundef %14245) #10
  br label %14247

14247:                                            ; preds = %14230, %14213
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #10
  br label %14248

14248:                                            ; preds = %14247
  br label %14249

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

14250:                                            ; No predecessors!
  br label %14251

14251:                                            ; preds = %14250
  br label %14252

14252:                                            ; preds = %14251, %14193
  br label %14253

14253:                                            ; preds = %14252
  br label %14254

14254:                                            ; preds = %14253
  br label %14255

14255:                                            ; preds = %14254
  %14256 = load i32, ptr @test_count, align 4, !tbaa !5
  %14257 = add nsw i32 %14256, 1
  store i32 %14257, ptr @test_count, align 4, !tbaa !5
  %14258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14259 = load i32, ptr %14258, align 4, !tbaa !5
  %14260 = call ptr @s2n_strerror_debug(i32 noundef %14259, ptr noundef @.str.4)
  %14261 = icmp eq ptr %14260, null
  br i1 %14261, label %14262, label %14315

14262:                                            ; preds = %14255
  br label %14263

14263:                                            ; preds = %14262
  br label %14264

14264:                                            ; preds = %14263
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #10
  %14265 = call ptr @__errno_location() #11
  %14266 = load i32, ptr %14265, align 4, !tbaa !5
  store i32 %14266, ptr %268, align 4, !tbaa !5
  %14267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14268 = call i32 @s2n_print_stacktrace(ptr noundef %14267)
  %14269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14270 = trunc i8 %14269 to i1
  br i1 %14270, label %14271, label %14293

14271:                                            ; preds = %14264
  %14272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14273 = call i32 @fileno(ptr noundef %14272) #10
  %14274 = call i32 @isatty(i32 noundef %14273) #10
  %14275 = icmp ne i32 %14274, 0
  br i1 %14275, label %14276, label %14293

14276:                                            ; preds = %14271
  %14277 = load i32, ptr %268, align 4, !tbaa !5
  %14278 = call ptr @__errno_location() #11
  store i32 %14277, ptr %14278, align 4, !tbaa !5
  %14279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14280 = load i32, ptr @test_count, align 4, !tbaa !5
  %14281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14282 = load i32, ptr %14281, align 4, !tbaa !5
  %14283 = call ptr @s2n_strerror(i32 noundef %14282, ptr noundef @.str.4)
  %14284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14285 = load i32, ptr %14284, align 4, !tbaa !5
  %14286 = call ptr @s2n_strerror_debug(i32 noundef %14285, ptr noundef @.str.4)
  %14287 = call ptr @__errno_location() #11
  %14288 = load i32, ptr %14287, align 4, !tbaa !5
  %14289 = call ptr @strerror(i32 noundef %14288) #10
  %14290 = call ptr @__errno_location() #11
  %14291 = load i32, ptr %14290, align 4, !tbaa !5
  %14292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14279, ptr noundef @.str.2, i32 noundef %14280, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 644, ptr noundef %14283, ptr noundef %14286, ptr noundef %14289, i32 noundef %14291) #10
  br label %14310

14293:                                            ; preds = %14271, %14264
  %14294 = load i32, ptr %268, align 4, !tbaa !5
  %14295 = call ptr @__errno_location() #11
  store i32 %14294, ptr %14295, align 4, !tbaa !5
  %14296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14297 = load i32, ptr @test_count, align 4, !tbaa !5
  %14298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14299 = load i32, ptr %14298, align 4, !tbaa !5
  %14300 = call ptr @s2n_strerror(i32 noundef %14299, ptr noundef @.str.4)
  %14301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14302 = load i32, ptr %14301, align 4, !tbaa !5
  %14303 = call ptr @s2n_strerror_debug(i32 noundef %14302, ptr noundef @.str.4)
  %14304 = call ptr @__errno_location() #11
  %14305 = load i32, ptr %14304, align 4, !tbaa !5
  %14306 = call ptr @strerror(i32 noundef %14305) #10
  %14307 = call ptr @__errno_location() #11
  %14308 = load i32, ptr %14307, align 4, !tbaa !5
  %14309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14296, ptr noundef @.str.5, i32 noundef %14297, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 644, ptr noundef %14300, ptr noundef %14303, ptr noundef %14306, i32 noundef %14308) #10
  br label %14310

14310:                                            ; preds = %14293, %14276
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #10
  br label %14311

14311:                                            ; preds = %14310
  br label %14312

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

14313:                                            ; No predecessors!
  br label %14314

14314:                                            ; preds = %14313
  br label %14315

14315:                                            ; preds = %14314, %14255
  br label %14316

14316:                                            ; preds = %14315
  br label %14317

14317:                                            ; preds = %14316
  br label %14318

14318:                                            ; preds = %14317
  br label %14319

14319:                                            ; preds = %14318
  br label %14320

14320:                                            ; preds = %14319
  %14321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14321, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14322 = call ptr @__errno_location() #11
  store i32 0, ptr %14322, align 4, !tbaa !5
  br label %14323

14323:                                            ; preds = %14320
  br label %14324

14324:                                            ; preds = %14323
  br label %14325

14325:                                            ; preds = %14324
  br label %14326

14326:                                            ; preds = %14325
  br label %14327

14327:                                            ; preds = %14326
  br label %14328

14328:                                            ; preds = %14327
  br label %14329

14329:                                            ; preds = %14328
  %14330 = load i32, ptr @test_count, align 4, !tbaa !5
  %14331 = add nsw i32 %14330, 1
  store i32 %14331, ptr @test_count, align 4, !tbaa !5
  %14332 = call i32 @s2n_validate_kem_preferences(ptr noundef @kem_preferences_null, i1 noundef zeroext true)
  %14333 = icmp eq i32 %14332, -1
  br i1 %14333, label %14387, label %14334

14334:                                            ; preds = %14329
  br label %14335

14335:                                            ; preds = %14334
  br label %14336

14336:                                            ; preds = %14335
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #10
  %14337 = call ptr @__errno_location() #11
  %14338 = load i32, ptr %14337, align 4, !tbaa !5
  store i32 %14338, ptr %269, align 4, !tbaa !5
  %14339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14340 = call i32 @s2n_print_stacktrace(ptr noundef %14339)
  %14341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14342 = trunc i8 %14341 to i1
  br i1 %14342, label %14343, label %14365

14343:                                            ; preds = %14336
  %14344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14345 = call i32 @fileno(ptr noundef %14344) #10
  %14346 = call i32 @isatty(i32 noundef %14345) #10
  %14347 = icmp ne i32 %14346, 0
  br i1 %14347, label %14348, label %14365

14348:                                            ; preds = %14343
  %14349 = load i32, ptr %269, align 4, !tbaa !5
  %14350 = call ptr @__errno_location() #11
  store i32 %14349, ptr %14350, align 4, !tbaa !5
  %14351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14352 = load i32, ptr @test_count, align 4, !tbaa !5
  %14353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14354 = load i32, ptr %14353, align 4, !tbaa !5
  %14355 = call ptr @s2n_strerror(i32 noundef %14354, ptr noundef @.str.4)
  %14356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14357 = load i32, ptr %14356, align 4, !tbaa !5
  %14358 = call ptr @s2n_strerror_debug(i32 noundef %14357, ptr noundef @.str.4)
  %14359 = call ptr @__errno_location() #11
  %14360 = load i32, ptr %14359, align 4, !tbaa !5
  %14361 = call ptr @strerror(i32 noundef %14360) #10
  %14362 = call ptr @__errno_location() #11
  %14363 = load i32, ptr %14362, align 4, !tbaa !5
  %14364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14351, ptr noundef @.str.2, i32 noundef %14352, ptr noundef @.str.172, ptr noundef @.str.1, i32 noundef 645, ptr noundef %14355, ptr noundef %14358, ptr noundef %14361, i32 noundef %14363) #10
  br label %14382

14365:                                            ; preds = %14343, %14336
  %14366 = load i32, ptr %269, align 4, !tbaa !5
  %14367 = call ptr @__errno_location() #11
  store i32 %14366, ptr %14367, align 4, !tbaa !5
  %14368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14369 = load i32, ptr @test_count, align 4, !tbaa !5
  %14370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14371 = load i32, ptr %14370, align 4, !tbaa !5
  %14372 = call ptr @s2n_strerror(i32 noundef %14371, ptr noundef @.str.4)
  %14373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14374 = load i32, ptr %14373, align 4, !tbaa !5
  %14375 = call ptr @s2n_strerror_debug(i32 noundef %14374, ptr noundef @.str.4)
  %14376 = call ptr @__errno_location() #11
  %14377 = load i32, ptr %14376, align 4, !tbaa !5
  %14378 = call ptr @strerror(i32 noundef %14377) #10
  %14379 = call ptr @__errno_location() #11
  %14380 = load i32, ptr %14379, align 4, !tbaa !5
  %14381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14368, ptr noundef @.str.5, i32 noundef %14369, ptr noundef @.str.172, ptr noundef @.str.1, i32 noundef 645, ptr noundef %14372, ptr noundef %14375, ptr noundef %14378, i32 noundef %14380) #10
  br label %14382

14382:                                            ; preds = %14365, %14348
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #10
  br label %14383

14383:                                            ; preds = %14382
  br label %14384

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

14385:                                            ; No predecessors!
  br label %14386

14386:                                            ; preds = %14385
  br label %14387

14387:                                            ; preds = %14386, %14329
  br label %14388

14388:                                            ; preds = %14387
  br label %14389

14389:                                            ; preds = %14388
  br label %14390

14390:                                            ; preds = %14389
  %14391 = load i32, ptr @test_count, align 4, !tbaa !5
  %14392 = add nsw i32 %14391, 1
  store i32 %14392, ptr @test_count, align 4, !tbaa !5
  %14393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14394 = load i32, ptr %14393, align 4, !tbaa !5
  %14395 = icmp eq i32 %14394, 469762101
  br i1 %14395, label %14449, label %14396

14396:                                            ; preds = %14390
  br label %14397

14397:                                            ; preds = %14396
  br label %14398

14398:                                            ; preds = %14397
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #10
  %14399 = call ptr @__errno_location() #11
  %14400 = load i32, ptr %14399, align 4, !tbaa !5
  store i32 %14400, ptr %270, align 4, !tbaa !5
  %14401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14402 = call i32 @s2n_print_stacktrace(ptr noundef %14401)
  %14403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14404 = trunc i8 %14403 to i1
  br i1 %14404, label %14405, label %14427

14405:                                            ; preds = %14398
  %14406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14407 = call i32 @fileno(ptr noundef %14406) #10
  %14408 = call i32 @isatty(i32 noundef %14407) #10
  %14409 = icmp ne i32 %14408, 0
  br i1 %14409, label %14410, label %14427

14410:                                            ; preds = %14405
  %14411 = load i32, ptr %270, align 4, !tbaa !5
  %14412 = call ptr @__errno_location() #11
  store i32 %14411, ptr %14412, align 4, !tbaa !5
  %14413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14414 = load i32, ptr @test_count, align 4, !tbaa !5
  %14415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14416 = load i32, ptr %14415, align 4, !tbaa !5
  %14417 = call ptr @s2n_strerror(i32 noundef %14416, ptr noundef @.str.4)
  %14418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14419 = load i32, ptr %14418, align 4, !tbaa !5
  %14420 = call ptr @s2n_strerror_debug(i32 noundef %14419, ptr noundef @.str.4)
  %14421 = call ptr @__errno_location() #11
  %14422 = load i32, ptr %14421, align 4, !tbaa !5
  %14423 = call ptr @strerror(i32 noundef %14422) #10
  %14424 = call ptr @__errno_location() #11
  %14425 = load i32, ptr %14424, align 4, !tbaa !5
  %14426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14413, ptr noundef @.str.2, i32 noundef %14414, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 645, ptr noundef %14417, ptr noundef %14420, ptr noundef %14423, i32 noundef %14425) #10
  br label %14444

14427:                                            ; preds = %14405, %14398
  %14428 = load i32, ptr %270, align 4, !tbaa !5
  %14429 = call ptr @__errno_location() #11
  store i32 %14428, ptr %14429, align 4, !tbaa !5
  %14430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14431 = load i32, ptr @test_count, align 4, !tbaa !5
  %14432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14433 = load i32, ptr %14432, align 4, !tbaa !5
  %14434 = call ptr @s2n_strerror(i32 noundef %14433, ptr noundef @.str.4)
  %14435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14436 = load i32, ptr %14435, align 4, !tbaa !5
  %14437 = call ptr @s2n_strerror_debug(i32 noundef %14436, ptr noundef @.str.4)
  %14438 = call ptr @__errno_location() #11
  %14439 = load i32, ptr %14438, align 4, !tbaa !5
  %14440 = call ptr @strerror(i32 noundef %14439) #10
  %14441 = call ptr @__errno_location() #11
  %14442 = load i32, ptr %14441, align 4, !tbaa !5
  %14443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14430, ptr noundef @.str.5, i32 noundef %14431, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 645, ptr noundef %14434, ptr noundef %14437, ptr noundef %14440, i32 noundef %14442) #10
  br label %14444

14444:                                            ; preds = %14427, %14410
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #10
  br label %14445

14445:                                            ; preds = %14444
  br label %14446

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

14447:                                            ; No predecessors!
  br label %14448

14448:                                            ; preds = %14447
  br label %14449

14449:                                            ; preds = %14448, %14390
  br label %14450

14450:                                            ; preds = %14449
  br label %14451

14451:                                            ; preds = %14450
  br label %14452

14452:                                            ; preds = %14451
  %14453 = load i32, ptr @test_count, align 4, !tbaa !5
  %14454 = add nsw i32 %14453, 1
  store i32 %14454, ptr @test_count, align 4, !tbaa !5
  %14455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14456 = load i32, ptr %14455, align 4, !tbaa !5
  %14457 = call ptr @s2n_strerror_debug(i32 noundef %14456, ptr noundef @.str.4)
  %14458 = icmp eq ptr %14457, null
  br i1 %14458, label %14459, label %14512

14459:                                            ; preds = %14452
  br label %14460

14460:                                            ; preds = %14459
  br label %14461

14461:                                            ; preds = %14460
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #10
  %14462 = call ptr @__errno_location() #11
  %14463 = load i32, ptr %14462, align 4, !tbaa !5
  store i32 %14463, ptr %271, align 4, !tbaa !5
  %14464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14465 = call i32 @s2n_print_stacktrace(ptr noundef %14464)
  %14466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14467 = trunc i8 %14466 to i1
  br i1 %14467, label %14468, label %14490

14468:                                            ; preds = %14461
  %14469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14470 = call i32 @fileno(ptr noundef %14469) #10
  %14471 = call i32 @isatty(i32 noundef %14470) #10
  %14472 = icmp ne i32 %14471, 0
  br i1 %14472, label %14473, label %14490

14473:                                            ; preds = %14468
  %14474 = load i32, ptr %271, align 4, !tbaa !5
  %14475 = call ptr @__errno_location() #11
  store i32 %14474, ptr %14475, align 4, !tbaa !5
  %14476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14477 = load i32, ptr @test_count, align 4, !tbaa !5
  %14478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14479 = load i32, ptr %14478, align 4, !tbaa !5
  %14480 = call ptr @s2n_strerror(i32 noundef %14479, ptr noundef @.str.4)
  %14481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14482 = load i32, ptr %14481, align 4, !tbaa !5
  %14483 = call ptr @s2n_strerror_debug(i32 noundef %14482, ptr noundef @.str.4)
  %14484 = call ptr @__errno_location() #11
  %14485 = load i32, ptr %14484, align 4, !tbaa !5
  %14486 = call ptr @strerror(i32 noundef %14485) #10
  %14487 = call ptr @__errno_location() #11
  %14488 = load i32, ptr %14487, align 4, !tbaa !5
  %14489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14476, ptr noundef @.str.2, i32 noundef %14477, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 645, ptr noundef %14480, ptr noundef %14483, ptr noundef %14486, i32 noundef %14488) #10
  br label %14507

14490:                                            ; preds = %14468, %14461
  %14491 = load i32, ptr %271, align 4, !tbaa !5
  %14492 = call ptr @__errno_location() #11
  store i32 %14491, ptr %14492, align 4, !tbaa !5
  %14493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14494 = load i32, ptr @test_count, align 4, !tbaa !5
  %14495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14496 = load i32, ptr %14495, align 4, !tbaa !5
  %14497 = call ptr @s2n_strerror(i32 noundef %14496, ptr noundef @.str.4)
  %14498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14499 = load i32, ptr %14498, align 4, !tbaa !5
  %14500 = call ptr @s2n_strerror_debug(i32 noundef %14499, ptr noundef @.str.4)
  %14501 = call ptr @__errno_location() #11
  %14502 = load i32, ptr %14501, align 4, !tbaa !5
  %14503 = call ptr @strerror(i32 noundef %14502) #10
  %14504 = call ptr @__errno_location() #11
  %14505 = load i32, ptr %14504, align 4, !tbaa !5
  %14506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14493, ptr noundef @.str.5, i32 noundef %14494, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 645, ptr noundef %14497, ptr noundef %14500, ptr noundef %14503, i32 noundef %14505) #10
  br label %14507

14507:                                            ; preds = %14490, %14473
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #10
  br label %14508

14508:                                            ; preds = %14507
  br label %14509

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

14510:                                            ; No predecessors!
  br label %14511

14511:                                            ; preds = %14510
  br label %14512

14512:                                            ; preds = %14511, %14452
  br label %14513

14513:                                            ; preds = %14512
  br label %14514

14514:                                            ; preds = %14513
  br label %14515

14515:                                            ; preds = %14514
  br label %14516

14516:                                            ; preds = %14515
  br label %14517

14517:                                            ; preds = %14516
  %14518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14518, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14519 = call ptr @__errno_location() #11
  store i32 0, ptr %14519, align 4, !tbaa !5
  br label %14520

14520:                                            ; preds = %14517
  br label %14521

14521:                                            ; preds = %14520
  br label %14522

14522:                                            ; preds = %14521
  br label %14523

14523:                                            ; preds = %14522
  br label %14524

14524:                                            ; preds = %14523
  %14525 = load i32, ptr @test_count, align 4, !tbaa !5
  %14526 = add nsw i32 %14525, 1
  store i32 %14526, ptr @test_count, align 4, !tbaa !5
  %14527 = call i32 @s2n_validate_kem_preferences(ptr noundef @kem_preferences_null, i1 noundef zeroext false)
  %14528 = icmp eq i32 %14527, -1
  br i1 %14528, label %14529, label %14582

14529:                                            ; preds = %14524
  br label %14530

14530:                                            ; preds = %14529
  br label %14531

14531:                                            ; preds = %14530
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #10
  %14532 = call ptr @__errno_location() #11
  %14533 = load i32, ptr %14532, align 4, !tbaa !5
  store i32 %14533, ptr %272, align 4, !tbaa !5
  %14534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14535 = call i32 @s2n_print_stacktrace(ptr noundef %14534)
  %14536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14537 = trunc i8 %14536 to i1
  br i1 %14537, label %14538, label %14560

14538:                                            ; preds = %14531
  %14539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14540 = call i32 @fileno(ptr noundef %14539) #10
  %14541 = call i32 @isatty(i32 noundef %14540) #10
  %14542 = icmp ne i32 %14541, 0
  br i1 %14542, label %14543, label %14560

14543:                                            ; preds = %14538
  %14544 = load i32, ptr %272, align 4, !tbaa !5
  %14545 = call ptr @__errno_location() #11
  store i32 %14544, ptr %14545, align 4, !tbaa !5
  %14546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14547 = load i32, ptr @test_count, align 4, !tbaa !5
  %14548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14549 = load i32, ptr %14548, align 4, !tbaa !5
  %14550 = call ptr @s2n_strerror(i32 noundef %14549, ptr noundef @.str.4)
  %14551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14552 = load i32, ptr %14551, align 4, !tbaa !5
  %14553 = call ptr @s2n_strerror_debug(i32 noundef %14552, ptr noundef @.str.4)
  %14554 = call ptr @__errno_location() #11
  %14555 = load i32, ptr %14554, align 4, !tbaa !5
  %14556 = call ptr @strerror(i32 noundef %14555) #10
  %14557 = call ptr @__errno_location() #11
  %14558 = load i32, ptr %14557, align 4, !tbaa !5
  %14559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14546, ptr noundef @.str.2, i32 noundef %14547, ptr noundef @.str.173, ptr noundef @.str.1, i32 noundef 646, ptr noundef %14550, ptr noundef %14553, ptr noundef %14556, i32 noundef %14558) #10
  br label %14577

14560:                                            ; preds = %14538, %14531
  %14561 = load i32, ptr %272, align 4, !tbaa !5
  %14562 = call ptr @__errno_location() #11
  store i32 %14561, ptr %14562, align 4, !tbaa !5
  %14563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14564 = load i32, ptr @test_count, align 4, !tbaa !5
  %14565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14566 = load i32, ptr %14565, align 4, !tbaa !5
  %14567 = call ptr @s2n_strerror(i32 noundef %14566, ptr noundef @.str.4)
  %14568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14569 = load i32, ptr %14568, align 4, !tbaa !5
  %14570 = call ptr @s2n_strerror_debug(i32 noundef %14569, ptr noundef @.str.4)
  %14571 = call ptr @__errno_location() #11
  %14572 = load i32, ptr %14571, align 4, !tbaa !5
  %14573 = call ptr @strerror(i32 noundef %14572) #10
  %14574 = call ptr @__errno_location() #11
  %14575 = load i32, ptr %14574, align 4, !tbaa !5
  %14576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14563, ptr noundef @.str.5, i32 noundef %14564, ptr noundef @.str.173, ptr noundef @.str.1, i32 noundef 646, ptr noundef %14567, ptr noundef %14570, ptr noundef %14573, i32 noundef %14575) #10
  br label %14577

14577:                                            ; preds = %14560, %14543
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #10
  br label %14578

14578:                                            ; preds = %14577
  br label %14579

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

14580:                                            ; No predecessors!
  br label %14581

14581:                                            ; preds = %14580
  br label %14582

14582:                                            ; preds = %14581, %14524
  br label %14583

14583:                                            ; preds = %14582
  br label %14584

14584:                                            ; preds = %14583
  call void @llvm.lifetime.start.p0(i64 160, ptr %273) #10
  call void @llvm.memset.p0.i64(ptr align 16 %273, i8 0, i64 160, i1 false)
  %14585 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i32 0, i32 0
  store i8 1, ptr %14585, align 8, !tbaa !50
  %14586 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i32 0, i32 1
  %14587 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i32 0, i32 2
  %14588 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i32 0, i32 3
  %14589 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i32 0, i32 4
  %14590 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i64 1
  %14591 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14590, i32 0, i32 0
  %14592 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14590, i32 0, i32 1
  %14593 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14590, i32 0, i32 2
  store i8 1, ptr %14593, align 8, !tbaa !22
  %14594 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14590, i32 0, i32 3
  %14595 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14590, i32 0, i32 4
  %14596 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i64 2
  %14597 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14596, i32 0, i32 0
  %14598 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14596, i32 0, i32 1
  store ptr @pq_kems_r3_2021_05, ptr %14598, align 8, !tbaa !49
  %14599 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14596, i32 0, i32 2
  %14600 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14596, i32 0, i32 3
  %14601 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14596, i32 0, i32 4
  %14602 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %273, i64 3
  %14603 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14602, i32 0, i32 0
  %14604 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14602, i32 0, i32 1
  %14605 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14602, i32 0, i32 2
  %14606 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14602, i32 0, i32 3
  %14607 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 3), align 8, !tbaa !24
  store ptr %14607, ptr %14606, align 8, !tbaa !24
  %14608 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %14602, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %274) #10
  store i64 0, ptr %274, align 8, !tbaa !15
  br label %14609

14609:                                            ; preds = %14813, %14584
  %14610 = load i64, ptr %274, align 8, !tbaa !15
  %14611 = icmp ult i64 %14610, 4
  br i1 %14611, label %14613, label %14612

14612:                                            ; preds = %14609
  store i32 1398, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #10
  br label %14816

14613:                                            ; preds = %14609
  br label %14614

14614:                                            ; preds = %14613
  br label %14615

14615:                                            ; preds = %14614
  br label %14616

14616:                                            ; preds = %14615
  %14617 = load i32, ptr @test_count, align 4, !tbaa !5
  %14618 = add nsw i32 %14617, 1
  store i32 %14618, ptr @test_count, align 4, !tbaa !5
  %14619 = load i64, ptr %274, align 8, !tbaa !15
  %14620 = getelementptr inbounds [4 x %struct.s2n_kem_preferences], ptr %273, i64 0, i64 %14619
  %14621 = call i32 @s2n_validate_kem_preferences(ptr noundef %14620, i1 noundef zeroext true)
  %14622 = icmp eq i32 %14621, -1
  br i1 %14622, label %14676, label %14623

14623:                                            ; preds = %14616
  br label %14624

14624:                                            ; preds = %14623
  br label %14625

14625:                                            ; preds = %14624
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #10
  %14626 = call ptr @__errno_location() #11
  %14627 = load i32, ptr %14626, align 4, !tbaa !5
  store i32 %14627, ptr %275, align 4, !tbaa !5
  %14628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14629 = call i32 @s2n_print_stacktrace(ptr noundef %14628)
  %14630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14631 = trunc i8 %14630 to i1
  br i1 %14631, label %14632, label %14654

14632:                                            ; preds = %14625
  %14633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14634 = call i32 @fileno(ptr noundef %14633) #10
  %14635 = call i32 @isatty(i32 noundef %14634) #10
  %14636 = icmp ne i32 %14635, 0
  br i1 %14636, label %14637, label %14654

14637:                                            ; preds = %14632
  %14638 = load i32, ptr %275, align 4, !tbaa !5
  %14639 = call ptr @__errno_location() #11
  store i32 %14638, ptr %14639, align 4, !tbaa !5
  %14640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14641 = load i32, ptr @test_count, align 4, !tbaa !5
  %14642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14643 = load i32, ptr %14642, align 4, !tbaa !5
  %14644 = call ptr @s2n_strerror(i32 noundef %14643, ptr noundef @.str.4)
  %14645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14646 = load i32, ptr %14645, align 4, !tbaa !5
  %14647 = call ptr @s2n_strerror_debug(i32 noundef %14646, ptr noundef @.str.4)
  %14648 = call ptr @__errno_location() #11
  %14649 = load i32, ptr %14648, align 4, !tbaa !5
  %14650 = call ptr @strerror(i32 noundef %14649) #10
  %14651 = call ptr @__errno_location() #11
  %14652 = load i32, ptr %14651, align 4, !tbaa !5
  %14653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14640, ptr noundef @.str.2, i32 noundef %14641, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14644, ptr noundef %14647, ptr noundef %14650, i32 noundef %14652) #10
  br label %14671

14654:                                            ; preds = %14632, %14625
  %14655 = load i32, ptr %275, align 4, !tbaa !5
  %14656 = call ptr @__errno_location() #11
  store i32 %14655, ptr %14656, align 4, !tbaa !5
  %14657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14658 = load i32, ptr @test_count, align 4, !tbaa !5
  %14659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14660 = load i32, ptr %14659, align 4, !tbaa !5
  %14661 = call ptr @s2n_strerror(i32 noundef %14660, ptr noundef @.str.4)
  %14662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14663 = load i32, ptr %14662, align 4, !tbaa !5
  %14664 = call ptr @s2n_strerror_debug(i32 noundef %14663, ptr noundef @.str.4)
  %14665 = call ptr @__errno_location() #11
  %14666 = load i32, ptr %14665, align 4, !tbaa !5
  %14667 = call ptr @strerror(i32 noundef %14666) #10
  %14668 = call ptr @__errno_location() #11
  %14669 = load i32, ptr %14668, align 4, !tbaa !5
  %14670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14657, ptr noundef @.str.5, i32 noundef %14658, ptr noundef @.str.174, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14661, ptr noundef %14664, ptr noundef %14667, i32 noundef %14669) #10
  br label %14671

14671:                                            ; preds = %14654, %14637
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #10
  br label %14672

14672:                                            ; preds = %14671
  br label %14673

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

14674:                                            ; No predecessors!
  br label %14675

14675:                                            ; preds = %14674
  br label %14676

14676:                                            ; preds = %14675, %14616
  br label %14677

14677:                                            ; preds = %14676
  br label %14678

14678:                                            ; preds = %14677
  br label %14679

14679:                                            ; preds = %14678
  %14680 = load i32, ptr @test_count, align 4, !tbaa !5
  %14681 = add nsw i32 %14680, 1
  store i32 %14681, ptr @test_count, align 4, !tbaa !5
  %14682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14683 = load i32, ptr %14682, align 4, !tbaa !5
  %14684 = icmp eq i32 %14683, 469762101
  br i1 %14684, label %14738, label %14685

14685:                                            ; preds = %14679
  br label %14686

14686:                                            ; preds = %14685
  br label %14687

14687:                                            ; preds = %14686
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #10
  %14688 = call ptr @__errno_location() #11
  %14689 = load i32, ptr %14688, align 4, !tbaa !5
  store i32 %14689, ptr %276, align 4, !tbaa !5
  %14690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14691 = call i32 @s2n_print_stacktrace(ptr noundef %14690)
  %14692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14693 = trunc i8 %14692 to i1
  br i1 %14693, label %14694, label %14716

14694:                                            ; preds = %14687
  %14695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14696 = call i32 @fileno(ptr noundef %14695) #10
  %14697 = call i32 @isatty(i32 noundef %14696) #10
  %14698 = icmp ne i32 %14697, 0
  br i1 %14698, label %14699, label %14716

14699:                                            ; preds = %14694
  %14700 = load i32, ptr %276, align 4, !tbaa !5
  %14701 = call ptr @__errno_location() #11
  store i32 %14700, ptr %14701, align 4, !tbaa !5
  %14702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14703 = load i32, ptr @test_count, align 4, !tbaa !5
  %14704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14705 = load i32, ptr %14704, align 4, !tbaa !5
  %14706 = call ptr @s2n_strerror(i32 noundef %14705, ptr noundef @.str.4)
  %14707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14708 = load i32, ptr %14707, align 4, !tbaa !5
  %14709 = call ptr @s2n_strerror_debug(i32 noundef %14708, ptr noundef @.str.4)
  %14710 = call ptr @__errno_location() #11
  %14711 = load i32, ptr %14710, align 4, !tbaa !5
  %14712 = call ptr @strerror(i32 noundef %14711) #10
  %14713 = call ptr @__errno_location() #11
  %14714 = load i32, ptr %14713, align 4, !tbaa !5
  %14715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14702, ptr noundef @.str.2, i32 noundef %14703, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14706, ptr noundef %14709, ptr noundef %14712, i32 noundef %14714) #10
  br label %14733

14716:                                            ; preds = %14694, %14687
  %14717 = load i32, ptr %276, align 4, !tbaa !5
  %14718 = call ptr @__errno_location() #11
  store i32 %14717, ptr %14718, align 4, !tbaa !5
  %14719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14720 = load i32, ptr @test_count, align 4, !tbaa !5
  %14721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14722 = load i32, ptr %14721, align 4, !tbaa !5
  %14723 = call ptr @s2n_strerror(i32 noundef %14722, ptr noundef @.str.4)
  %14724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14725 = load i32, ptr %14724, align 4, !tbaa !5
  %14726 = call ptr @s2n_strerror_debug(i32 noundef %14725, ptr noundef @.str.4)
  %14727 = call ptr @__errno_location() #11
  %14728 = load i32, ptr %14727, align 4, !tbaa !5
  %14729 = call ptr @strerror(i32 noundef %14728) #10
  %14730 = call ptr @__errno_location() #11
  %14731 = load i32, ptr %14730, align 4, !tbaa !5
  %14732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14719, ptr noundef @.str.5, i32 noundef %14720, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14723, ptr noundef %14726, ptr noundef %14729, i32 noundef %14731) #10
  br label %14733

14733:                                            ; preds = %14716, %14699
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #10
  br label %14734

14734:                                            ; preds = %14733
  br label %14735

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

14736:                                            ; No predecessors!
  br label %14737

14737:                                            ; preds = %14736
  br label %14738

14738:                                            ; preds = %14737, %14679
  br label %14739

14739:                                            ; preds = %14738
  br label %14740

14740:                                            ; preds = %14739
  br label %14741

14741:                                            ; preds = %14740
  %14742 = load i32, ptr @test_count, align 4, !tbaa !5
  %14743 = add nsw i32 %14742, 1
  store i32 %14743, ptr @test_count, align 4, !tbaa !5
  %14744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14745 = load i32, ptr %14744, align 4, !tbaa !5
  %14746 = call ptr @s2n_strerror_debug(i32 noundef %14745, ptr noundef @.str.4)
  %14747 = icmp eq ptr %14746, null
  br i1 %14747, label %14748, label %14801

14748:                                            ; preds = %14741
  br label %14749

14749:                                            ; preds = %14748
  br label %14750

14750:                                            ; preds = %14749
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #10
  %14751 = call ptr @__errno_location() #11
  %14752 = load i32, ptr %14751, align 4, !tbaa !5
  store i32 %14752, ptr %277, align 4, !tbaa !5
  %14753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14754 = call i32 @s2n_print_stacktrace(ptr noundef %14753)
  %14755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14756 = trunc i8 %14755 to i1
  br i1 %14756, label %14757, label %14779

14757:                                            ; preds = %14750
  %14758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14759 = call i32 @fileno(ptr noundef %14758) #10
  %14760 = call i32 @isatty(i32 noundef %14759) #10
  %14761 = icmp ne i32 %14760, 0
  br i1 %14761, label %14762, label %14779

14762:                                            ; preds = %14757
  %14763 = load i32, ptr %277, align 4, !tbaa !5
  %14764 = call ptr @__errno_location() #11
  store i32 %14763, ptr %14764, align 4, !tbaa !5
  %14765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14766 = load i32, ptr @test_count, align 4, !tbaa !5
  %14767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14768 = load i32, ptr %14767, align 4, !tbaa !5
  %14769 = call ptr @s2n_strerror(i32 noundef %14768, ptr noundef @.str.4)
  %14770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14771 = load i32, ptr %14770, align 4, !tbaa !5
  %14772 = call ptr @s2n_strerror_debug(i32 noundef %14771, ptr noundef @.str.4)
  %14773 = call ptr @__errno_location() #11
  %14774 = load i32, ptr %14773, align 4, !tbaa !5
  %14775 = call ptr @strerror(i32 noundef %14774) #10
  %14776 = call ptr @__errno_location() #11
  %14777 = load i32, ptr %14776, align 4, !tbaa !5
  %14778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14765, ptr noundef @.str.2, i32 noundef %14766, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14769, ptr noundef %14772, ptr noundef %14775, i32 noundef %14777) #10
  br label %14796

14779:                                            ; preds = %14757, %14750
  %14780 = load i32, ptr %277, align 4, !tbaa !5
  %14781 = call ptr @__errno_location() #11
  store i32 %14780, ptr %14781, align 4, !tbaa !5
  %14782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14783 = load i32, ptr @test_count, align 4, !tbaa !5
  %14784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14785 = load i32, ptr %14784, align 4, !tbaa !5
  %14786 = call ptr @s2n_strerror(i32 noundef %14785, ptr noundef @.str.4)
  %14787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14788 = load i32, ptr %14787, align 4, !tbaa !5
  %14789 = call ptr @s2n_strerror_debug(i32 noundef %14788, ptr noundef @.str.4)
  %14790 = call ptr @__errno_location() #11
  %14791 = load i32, ptr %14790, align 4, !tbaa !5
  %14792 = call ptr @strerror(i32 noundef %14791) #10
  %14793 = call ptr @__errno_location() #11
  %14794 = load i32, ptr %14793, align 4, !tbaa !5
  %14795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14782, ptr noundef @.str.5, i32 noundef %14783, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14786, ptr noundef %14789, ptr noundef %14792, i32 noundef %14794) #10
  br label %14796

14796:                                            ; preds = %14779, %14762
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #10
  br label %14797

14797:                                            ; preds = %14796
  br label %14798

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

14799:                                            ; No predecessors!
  br label %14800

14800:                                            ; preds = %14799
  br label %14801

14801:                                            ; preds = %14800, %14741
  br label %14802

14802:                                            ; preds = %14801
  br label %14803

14803:                                            ; preds = %14802
  br label %14804

14804:                                            ; preds = %14803
  br label %14805

14805:                                            ; preds = %14804
  br label %14806

14806:                                            ; preds = %14805
  %14807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14807, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14808 = call ptr @__errno_location() #11
  store i32 0, ptr %14808, align 4, !tbaa !5
  br label %14809

14809:                                            ; preds = %14806
  br label %14810

14810:                                            ; preds = %14809
  br label %14811

14811:                                            ; preds = %14810
  br label %14812

14812:                                            ; preds = %14811
  br label %14813

14813:                                            ; preds = %14812
  %14814 = load i64, ptr %274, align 8, !tbaa !15
  %14815 = add i64 %14814, 1
  store i64 %14815, ptr %274, align 8, !tbaa !15
  br label %14609, !llvm.loop !76

14816:                                            ; preds = %14612
  br label %14817

14817:                                            ; preds = %14816
  %14818 = load i32, ptr @test_count, align 4, !tbaa !5
  %14819 = add nsw i32 %14818, 1
  store i32 %14819, ptr @test_count, align 4, !tbaa !5
  %14820 = call i32 @s2n_validate_kem_preferences(ptr noundef @kem_preferences_pq_tls_1_0_2021_05, i1 noundef zeroext false)
  %14821 = icmp eq i32 %14820, -1
  br i1 %14821, label %14822, label %14875

14822:                                            ; preds = %14817
  br label %14823

14823:                                            ; preds = %14822
  br label %14824

14824:                                            ; preds = %14823
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #10
  %14825 = call ptr @__errno_location() #11
  %14826 = load i32, ptr %14825, align 4, !tbaa !5
  store i32 %14826, ptr %278, align 4, !tbaa !5
  %14827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14828 = call i32 @s2n_print_stacktrace(ptr noundef %14827)
  %14829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14830 = trunc i8 %14829 to i1
  br i1 %14830, label %14831, label %14853

14831:                                            ; preds = %14824
  %14832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14833 = call i32 @fileno(ptr noundef %14832) #10
  %14834 = call i32 @isatty(i32 noundef %14833) #10
  %14835 = icmp ne i32 %14834, 0
  br i1 %14835, label %14836, label %14853

14836:                                            ; preds = %14831
  %14837 = load i32, ptr %278, align 4, !tbaa !5
  %14838 = call ptr @__errno_location() #11
  store i32 %14837, ptr %14838, align 4, !tbaa !5
  %14839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14840 = load i32, ptr @test_count, align 4, !tbaa !5
  %14841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14842 = load i32, ptr %14841, align 4, !tbaa !5
  %14843 = call ptr @s2n_strerror(i32 noundef %14842, ptr noundef @.str.4)
  %14844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14845 = load i32, ptr %14844, align 4, !tbaa !5
  %14846 = call ptr @s2n_strerror_debug(i32 noundef %14845, ptr noundef @.str.4)
  %14847 = call ptr @__errno_location() #11
  %14848 = load i32, ptr %14847, align 4, !tbaa !5
  %14849 = call ptr @strerror(i32 noundef %14848) #10
  %14850 = call ptr @__errno_location() #11
  %14851 = load i32, ptr %14850, align 4, !tbaa !5
  %14852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14839, ptr noundef @.str.2, i32 noundef %14840, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 679, ptr noundef %14843, ptr noundef %14846, ptr noundef %14849, i32 noundef %14851) #10
  br label %14870

14853:                                            ; preds = %14831, %14824
  %14854 = load i32, ptr %278, align 4, !tbaa !5
  %14855 = call ptr @__errno_location() #11
  store i32 %14854, ptr %14855, align 4, !tbaa !5
  %14856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14857 = load i32, ptr @test_count, align 4, !tbaa !5
  %14858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14859 = load i32, ptr %14858, align 4, !tbaa !5
  %14860 = call ptr @s2n_strerror(i32 noundef %14859, ptr noundef @.str.4)
  %14861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14862 = load i32, ptr %14861, align 4, !tbaa !5
  %14863 = call ptr @s2n_strerror_debug(i32 noundef %14862, ptr noundef @.str.4)
  %14864 = call ptr @__errno_location() #11
  %14865 = load i32, ptr %14864, align 4, !tbaa !5
  %14866 = call ptr @strerror(i32 noundef %14865) #10
  %14867 = call ptr @__errno_location() #11
  %14868 = load i32, ptr %14867, align 4, !tbaa !5
  %14869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14856, ptr noundef @.str.5, i32 noundef %14857, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 679, ptr noundef %14860, ptr noundef %14863, ptr noundef %14866, i32 noundef %14868) #10
  br label %14870

14870:                                            ; preds = %14853, %14836
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #10
  br label %14871

14871:                                            ; preds = %14870
  br label %14872

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

14873:                                            ; No predecessors!
  br label %14874

14874:                                            ; preds = %14873
  br label %14875

14875:                                            ; preds = %14874, %14817
  br label %14876

14876:                                            ; preds = %14875
  br label %14877

14877:                                            ; preds = %14876
  call void @llvm.lifetime.end.p0(i64 160, ptr %273) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %279) #10
  store i64 0, ptr %279, align 8, !tbaa !15
  br label %14878

14878:                                            ; preds = %15049, %14877
  %14879 = load i64, ptr %279, align 8, !tbaa !15
  %14880 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %14879
  %14881 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %14880, i32 0, i32 0
  %14882 = load ptr, ptr %14881, align 8, !tbaa !17
  %14883 = icmp ne ptr %14882, null
  br i1 %14883, label %14885, label %14884

14884:                                            ; preds = %14878
  store i32 1431, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #10
  br label %15052

14885:                                            ; preds = %14878
  %14886 = load i64, ptr %279, align 8, !tbaa !15
  %14887 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %14886
  %14888 = getelementptr inbounds %struct.s2n_security_policy_selection, ptr %14887, i32 0, i32 1
  %14889 = load ptr, ptr %14888, align 8, !tbaa !19
  store ptr %14889, ptr %39, align 8, !tbaa !9
  br label %14890

14890:                                            ; preds = %14885
  %14891 = load i32, ptr @test_count, align 4, !tbaa !5
  %14892 = add nsw i32 %14891, 1
  store i32 %14892, ptr @test_count, align 4, !tbaa !5
  %14893 = load ptr, ptr %39, align 8, !tbaa !9
  %14894 = icmp eq ptr %14893, null
  br i1 %14894, label %14895, label %14948

14895:                                            ; preds = %14890
  br label %14896

14896:                                            ; preds = %14895
  br label %14897

14897:                                            ; preds = %14896
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #10
  %14898 = call ptr @__errno_location() #11
  %14899 = load i32, ptr %14898, align 4, !tbaa !5
  store i32 %14899, ptr %280, align 4, !tbaa !5
  %14900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14901 = call i32 @s2n_print_stacktrace(ptr noundef %14900)
  %14902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14903 = trunc i8 %14902 to i1
  br i1 %14903, label %14904, label %14926

14904:                                            ; preds = %14897
  %14905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14906 = call i32 @fileno(ptr noundef %14905) #10
  %14907 = call i32 @isatty(i32 noundef %14906) #10
  %14908 = icmp ne i32 %14907, 0
  br i1 %14908, label %14909, label %14926

14909:                                            ; preds = %14904
  %14910 = load i32, ptr %280, align 4, !tbaa !5
  %14911 = call ptr @__errno_location() #11
  store i32 %14910, ptr %14911, align 4, !tbaa !5
  %14912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14913 = load i32, ptr @test_count, align 4, !tbaa !5
  %14914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14915 = load i32, ptr %14914, align 4, !tbaa !5
  %14916 = call ptr @s2n_strerror(i32 noundef %14915, ptr noundef @.str.4)
  %14917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14918 = load i32, ptr %14917, align 4, !tbaa !5
  %14919 = call ptr @s2n_strerror_debug(i32 noundef %14918, ptr noundef @.str.4)
  %14920 = call ptr @__errno_location() #11
  %14921 = load i32, ptr %14920, align 4, !tbaa !5
  %14922 = call ptr @strerror(i32 noundef %14921) #10
  %14923 = call ptr @__errno_location() #11
  %14924 = load i32, ptr %14923, align 4, !tbaa !5
  %14925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14912, ptr noundef @.str.2, i32 noundef %14913, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14916, ptr noundef %14919, ptr noundef %14922, i32 noundef %14924) #10
  br label %14943

14926:                                            ; preds = %14904, %14897
  %14927 = load i32, ptr %280, align 4, !tbaa !5
  %14928 = call ptr @__errno_location() #11
  store i32 %14927, ptr %14928, align 4, !tbaa !5
  %14929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14930 = load i32, ptr @test_count, align 4, !tbaa !5
  %14931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14932 = load i32, ptr %14931, align 4, !tbaa !5
  %14933 = call ptr @s2n_strerror(i32 noundef %14932, ptr noundef @.str.4)
  %14934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14935 = load i32, ptr %14934, align 4, !tbaa !5
  %14936 = call ptr @s2n_strerror_debug(i32 noundef %14935, ptr noundef @.str.4)
  %14937 = call ptr @__errno_location() #11
  %14938 = load i32, ptr %14937, align 4, !tbaa !5
  %14939 = call ptr @strerror(i32 noundef %14938) #10
  %14940 = call ptr @__errno_location() #11
  %14941 = load i32, ptr %14940, align 4, !tbaa !5
  %14942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14929, ptr noundef @.str.5, i32 noundef %14930, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14933, ptr noundef %14936, ptr noundef %14939, i32 noundef %14941) #10
  br label %14943

14943:                                            ; preds = %14926, %14909
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #10
  br label %14944

14944:                                            ; preds = %14943
  br label %14945

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

14946:                                            ; No predecessors!
  br label %14947

14947:                                            ; preds = %14946
  br label %14948

14948:                                            ; preds = %14947, %14890
  br label %14949

14949:                                            ; preds = %14948
  br label %14950

14950:                                            ; preds = %14949
  %14951 = load ptr, ptr %39, align 8, !tbaa !9
  %14952 = getelementptr inbounds %struct.s2n_security_policy, ptr %14951, i32 0, i32 4
  %14953 = load ptr, ptr %14952, align 8, !tbaa !59
  %14954 = icmp ne ptr %14953, null
  br i1 %14954, label %14955, label %15048

14955:                                            ; preds = %14950
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #10
  store i64 0, ptr %281, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #10
  store i64 0, ptr %282, align 8, !tbaa !15
  br label %14956

14956:                                            ; preds = %14983, %14955
  %14957 = load i64, ptr %282, align 8, !tbaa !15
  %14958 = load ptr, ptr %39, align 8, !tbaa !9
  %14959 = getelementptr inbounds %struct.s2n_security_policy, ptr %14958, i32 0, i32 4
  %14960 = load ptr, ptr %14959, align 8, !tbaa !59
  %14961 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %14960, i32 0, i32 0
  %14962 = load i8, ptr %14961, align 8, !tbaa !39
  %14963 = zext i8 %14962 to i64
  %14964 = icmp ult i64 %14957, %14963
  br i1 %14964, label %14966, label %14965

14965:                                            ; preds = %14956
  store i32 1440, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #10
  br label %14986

14966:                                            ; preds = %14956
  %14967 = load ptr, ptr %39, align 8, !tbaa !9
  %14968 = getelementptr inbounds %struct.s2n_security_policy, ptr %14967, i32 0, i32 4
  %14969 = load ptr, ptr %14968, align 8, !tbaa !59
  %14970 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %14969, i32 0, i32 1
  %14971 = load ptr, ptr %14970, align 8, !tbaa !41
  %14972 = load i64, ptr %282, align 8, !tbaa !15
  %14973 = getelementptr inbounds ptr, ptr %14971, i64 %14972
  %14974 = load ptr, ptr %14973, align 8, !tbaa !9
  %14975 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %14974, i32 0, i32 6
  %14976 = load i16, ptr %14975, align 2, !tbaa !77
  %14977 = zext i16 %14976 to i32
  %14978 = icmp eq i32 %14977, 912
  br i1 %14978, label %14979, label %14982

14979:                                            ; preds = %14966
  %14980 = load i64, ptr %281, align 8, !tbaa !15
  %14981 = add i64 %14980, 1
  store i64 %14981, ptr %281, align 8, !tbaa !15
  br label %14982

14982:                                            ; preds = %14979, %14966
  br label %14983

14983:                                            ; preds = %14982
  %14984 = load i64, ptr %282, align 8, !tbaa !15
  %14985 = add i64 %14984, 1
  store i64 %14985, ptr %282, align 8, !tbaa !15
  br label %14956, !llvm.loop !78

14986:                                            ; preds = %14965
  br label %14987

14987:                                            ; preds = %14986
  %14988 = load i32, ptr @test_count, align 4, !tbaa !5
  %14989 = add nsw i32 %14988, 1
  store i32 %14989, ptr @test_count, align 4, !tbaa !5
  %14990 = load i64, ptr %281, align 8, !tbaa !15
  %14991 = icmp ule i64 %14990, 6
  br i1 %14991, label %15045, label %14992

14992:                                            ; preds = %14987
  br label %14993

14993:                                            ; preds = %14992
  br label %14994

14994:                                            ; preds = %14993
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #10
  %14995 = call ptr @__errno_location() #11
  %14996 = load i32, ptr %14995, align 4, !tbaa !5
  store i32 %14996, ptr %283, align 4, !tbaa !5
  %14997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14998 = call i32 @s2n_print_stacktrace(ptr noundef %14997)
  %14999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15000 = trunc i8 %14999 to i1
  br i1 %15000, label %15001, label %15023

15001:                                            ; preds = %14994
  %15002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15003 = call i32 @fileno(ptr noundef %15002) #10
  %15004 = call i32 @isatty(i32 noundef %15003) #10
  %15005 = icmp ne i32 %15004, 0
  br i1 %15005, label %15006, label %15023

15006:                                            ; preds = %15001
  %15007 = load i32, ptr %283, align 4, !tbaa !5
  %15008 = call ptr @__errno_location() #11
  store i32 %15007, ptr %15008, align 4, !tbaa !5
  %15009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15010 = load i32, ptr @test_count, align 4, !tbaa !5
  %15011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15012 = load i32, ptr %15011, align 4, !tbaa !5
  %15013 = call ptr @s2n_strerror(i32 noundef %15012, ptr noundef @.str.4)
  %15014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15015 = load i32, ptr %15014, align 4, !tbaa !5
  %15016 = call ptr @s2n_strerror_debug(i32 noundef %15015, ptr noundef @.str.4)
  %15017 = call ptr @__errno_location() #11
  %15018 = load i32, ptr %15017, align 4, !tbaa !5
  %15019 = call ptr @strerror(i32 noundef %15018) #10
  %15020 = call ptr @__errno_location() #11
  %15021 = load i32, ptr %15020, align 4, !tbaa !5
  %15022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15009, ptr noundef @.str.2, i32 noundef %15010, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 696, ptr noundef %15013, ptr noundef %15016, ptr noundef %15019, i32 noundef %15021) #10
  br label %15040

15023:                                            ; preds = %15001, %14994
  %15024 = load i32, ptr %283, align 4, !tbaa !5
  %15025 = call ptr @__errno_location() #11
  store i32 %15024, ptr %15025, align 4, !tbaa !5
  %15026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15027 = load i32, ptr @test_count, align 4, !tbaa !5
  %15028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15029 = load i32, ptr %15028, align 4, !tbaa !5
  %15030 = call ptr @s2n_strerror(i32 noundef %15029, ptr noundef @.str.4)
  %15031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15032 = load i32, ptr %15031, align 4, !tbaa !5
  %15033 = call ptr @s2n_strerror_debug(i32 noundef %15032, ptr noundef @.str.4)
  %15034 = call ptr @__errno_location() #11
  %15035 = load i32, ptr %15034, align 4, !tbaa !5
  %15036 = call ptr @strerror(i32 noundef %15035) #10
  %15037 = call ptr @__errno_location() #11
  %15038 = load i32, ptr %15037, align 4, !tbaa !5
  %15039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15026, ptr noundef @.str.5, i32 noundef %15027, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 696, ptr noundef %15030, ptr noundef %15033, ptr noundef %15036, i32 noundef %15038) #10
  br label %15040

15040:                                            ; preds = %15023, %15006
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #10
  br label %15041

15041:                                            ; preds = %15040
  br label %15042

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

15043:                                            ; No predecessors!
  br label %15044

15044:                                            ; preds = %15043
  br label %15045

15045:                                            ; preds = %15044, %14987
  br label %15046

15046:                                            ; preds = %15045
  br label %15047

15047:                                            ; preds = %15046
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #10
  br label %15048

15048:                                            ; preds = %15047, %14950
  br label %15049

15049:                                            ; preds = %15048
  %15050 = load i64, ptr %279, align 8, !tbaa !15
  %15051 = add i64 %15050, 1
  store i64 %15051, ptr %279, align 8, !tbaa !15
  br label %14878, !llvm.loop !79

15052:                                            ; preds = %14884
  call void @llvm.lifetime.start.p0(i64 8, ptr %284) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %284, ptr align 8 @__const.main.test_sig_scheme_pref_list, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %285) #10
  %15053 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %285, i32 0, i32 0
  store i8 1, ptr %15053, align 8, !tbaa !39
  %15054 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %285, i32 0, i32 1
  %15055 = getelementptr inbounds [1 x ptr], ptr %284, i64 0, i64 0
  store ptr %15055, ptr %15054, align 8, !tbaa !41
  br label %15056

15056:                                            ; preds = %15052
  %15057 = load i32, ptr @test_count, align 4, !tbaa !5
  %15058 = add nsw i32 %15057, 1
  store i32 %15058, ptr @test_count, align 4, !tbaa !5
  %15059 = call i32 @s2n_validate_certificate_signature_preferences(ptr noundef %285)
  %15060 = getelementptr inbounds %struct.s2n_result, ptr %286, i32 0, i32 0
  store i32 %15059, ptr %15060, align 4
  %15061 = getelementptr inbounds %struct.s2n_result, ptr %286, i32 0, i32 0
  %15062 = load i32, ptr %15061, align 4
  %15063 = call zeroext i1 @s2n_result_is_ok(i32 %15062)
  br i1 %15063, label %15117, label %15064

15064:                                            ; preds = %15056
  br label %15065

15065:                                            ; preds = %15064
  br label %15066

15066:                                            ; preds = %15065
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #10
  %15067 = call ptr @__errno_location() #11
  %15068 = load i32, ptr %15067, align 4, !tbaa !5
  store i32 %15068, ptr %287, align 4, !tbaa !5
  %15069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15070 = call i32 @s2n_print_stacktrace(ptr noundef %15069)
  %15071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15072 = trunc i8 %15071 to i1
  br i1 %15072, label %15073, label %15095

15073:                                            ; preds = %15066
  %15074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15075 = call i32 @fileno(ptr noundef %15074) #10
  %15076 = call i32 @isatty(i32 noundef %15075) #10
  %15077 = icmp ne i32 %15076, 0
  br i1 %15077, label %15078, label %15095

15078:                                            ; preds = %15073
  %15079 = load i32, ptr %287, align 4, !tbaa !5
  %15080 = call ptr @__errno_location() #11
  store i32 %15079, ptr %15080, align 4, !tbaa !5
  %15081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15082 = load i32, ptr @test_count, align 4, !tbaa !5
  %15083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15084 = load i32, ptr %15083, align 4, !tbaa !5
  %15085 = call ptr @s2n_strerror(i32 noundef %15084, ptr noundef @.str.4)
  %15086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15087 = load i32, ptr %15086, align 4, !tbaa !5
  %15088 = call ptr @s2n_strerror_debug(i32 noundef %15087, ptr noundef @.str.4)
  %15089 = call ptr @__errno_location() #11
  %15090 = load i32, ptr %15089, align 4, !tbaa !5
  %15091 = call ptr @strerror(i32 noundef %15090) #10
  %15092 = call ptr @__errno_location() #11
  %15093 = load i32, ptr %15092, align 4, !tbaa !5
  %15094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15081, ptr noundef @.str.2, i32 noundef %15082, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 712, ptr noundef %15085, ptr noundef %15088, ptr noundef %15091, i32 noundef %15093) #10
  br label %15112

15095:                                            ; preds = %15073, %15066
  %15096 = load i32, ptr %287, align 4, !tbaa !5
  %15097 = call ptr @__errno_location() #11
  store i32 %15096, ptr %15097, align 4, !tbaa !5
  %15098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15099 = load i32, ptr @test_count, align 4, !tbaa !5
  %15100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15101 = load i32, ptr %15100, align 4, !tbaa !5
  %15102 = call ptr @s2n_strerror(i32 noundef %15101, ptr noundef @.str.4)
  %15103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15104 = load i32, ptr %15103, align 4, !tbaa !5
  %15105 = call ptr @s2n_strerror_debug(i32 noundef %15104, ptr noundef @.str.4)
  %15106 = call ptr @__errno_location() #11
  %15107 = load i32, ptr %15106, align 4, !tbaa !5
  %15108 = call ptr @strerror(i32 noundef %15107) #10
  %15109 = call ptr @__errno_location() #11
  %15110 = load i32, ptr %15109, align 4, !tbaa !5
  %15111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15098, ptr noundef @.str.5, i32 noundef %15099, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 712, ptr noundef %15102, ptr noundef %15105, ptr noundef %15108, i32 noundef %15110) #10
  br label %15112

15112:                                            ; preds = %15095, %15078
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #10
  br label %15113

15113:                                            ; preds = %15112
  br label %15114

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

15115:                                            ; No predecessors!
  br label %15116

15116:                                            ; preds = %15115
  br label %15117

15117:                                            ; preds = %15116, %15056
  br label %15118

15118:                                            ; preds = %15117
  br label %15119

15119:                                            ; preds = %15118
  call void @llvm.lifetime.end.p0(i64 16, ptr %285) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %288) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %288, ptr align 16 @__const.main.test_sig_scheme_pref_list.178, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %289) #10
  %15120 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %289, i32 0, i32 0
  store i8 6, ptr %15120, align 8, !tbaa !39
  %15121 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %289, i32 0, i32 1
  %15122 = getelementptr inbounds [6 x ptr], ptr %288, i64 0, i64 0
  store ptr %15122, ptr %15121, align 8, !tbaa !41
  br label %15123

15123:                                            ; preds = %15119
  %15124 = load i32, ptr @test_count, align 4, !tbaa !5
  %15125 = add nsw i32 %15124, 1
  store i32 %15125, ptr @test_count, align 4, !tbaa !5
  %15126 = call i32 @s2n_validate_certificate_signature_preferences(ptr noundef %289)
  %15127 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  store i32 %15126, ptr %15127, align 4
  %15128 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  %15129 = load i32, ptr %15128, align 4
  %15130 = call zeroext i1 @s2n_result_is_ok(i32 %15129)
  br i1 %15130, label %15184, label %15131

15131:                                            ; preds = %15123
  br label %15132

15132:                                            ; preds = %15131
  br label %15133

15133:                                            ; preds = %15132
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #10
  %15134 = call ptr @__errno_location() #11
  %15135 = load i32, ptr %15134, align 4, !tbaa !5
  store i32 %15135, ptr %291, align 4, !tbaa !5
  %15136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15137 = call i32 @s2n_print_stacktrace(ptr noundef %15136)
  %15138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15139 = trunc i8 %15138 to i1
  br i1 %15139, label %15140, label %15162

15140:                                            ; preds = %15133
  %15141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15142 = call i32 @fileno(ptr noundef %15141) #10
  %15143 = call i32 @isatty(i32 noundef %15142) #10
  %15144 = icmp ne i32 %15143, 0
  br i1 %15144, label %15145, label %15162

15145:                                            ; preds = %15140
  %15146 = load i32, ptr %291, align 4, !tbaa !5
  %15147 = call ptr @__errno_location() #11
  store i32 %15146, ptr %15147, align 4, !tbaa !5
  %15148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15149 = load i32, ptr @test_count, align 4, !tbaa !5
  %15150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15151 = load i32, ptr %15150, align 4, !tbaa !5
  %15152 = call ptr @s2n_strerror(i32 noundef %15151, ptr noundef @.str.4)
  %15153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15154 = load i32, ptr %15153, align 4, !tbaa !5
  %15155 = call ptr @s2n_strerror_debug(i32 noundef %15154, ptr noundef @.str.4)
  %15156 = call ptr @__errno_location() #11
  %15157 = load i32, ptr %15156, align 4, !tbaa !5
  %15158 = call ptr @strerror(i32 noundef %15157) #10
  %15159 = call ptr @__errno_location() #11
  %15160 = load i32, ptr %15159, align 4, !tbaa !5
  %15161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15148, ptr noundef @.str.2, i32 noundef %15149, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 731, ptr noundef %15152, ptr noundef %15155, ptr noundef %15158, i32 noundef %15160) #10
  br label %15179

15162:                                            ; preds = %15140, %15133
  %15163 = load i32, ptr %291, align 4, !tbaa !5
  %15164 = call ptr @__errno_location() #11
  store i32 %15163, ptr %15164, align 4, !tbaa !5
  %15165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15166 = load i32, ptr @test_count, align 4, !tbaa !5
  %15167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15168 = load i32, ptr %15167, align 4, !tbaa !5
  %15169 = call ptr @s2n_strerror(i32 noundef %15168, ptr noundef @.str.4)
  %15170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15171 = load i32, ptr %15170, align 4, !tbaa !5
  %15172 = call ptr @s2n_strerror_debug(i32 noundef %15171, ptr noundef @.str.4)
  %15173 = call ptr @__errno_location() #11
  %15174 = load i32, ptr %15173, align 4, !tbaa !5
  %15175 = call ptr @strerror(i32 noundef %15174) #10
  %15176 = call ptr @__errno_location() #11
  %15177 = load i32, ptr %15176, align 4, !tbaa !5
  %15178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15165, ptr noundef @.str.5, i32 noundef %15166, ptr noundef @.str.177, ptr noundef @.str.1, i32 noundef 731, ptr noundef %15169, ptr noundef %15172, ptr noundef %15175, i32 noundef %15177) #10
  br label %15179

15179:                                            ; preds = %15162, %15145
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #10
  br label %15180

15180:                                            ; preds = %15179
  br label %15181

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

15182:                                            ; No predecessors!
  br label %15183

15183:                                            ; preds = %15182
  br label %15184

15184:                                            ; preds = %15183, %15123
  br label %15185

15185:                                            ; preds = %15184
  br label %15186

15186:                                            ; preds = %15185
  call void @llvm.lifetime.end.p0(i64 16, ptr %289) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %288) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %292) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %292, ptr align 16 @__const.main.test_sig_scheme_pref_list.179, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %293) #10
  %15187 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %293, i32 0, i32 0
  store i8 2, ptr %15187, align 8, !tbaa !39
  %15188 = getelementptr inbounds %struct.s2n_signature_preferences, ptr %293, i32 0, i32 1
  %15189 = getelementptr inbounds [2 x ptr], ptr %292, i64 0, i64 0
  store ptr %15189, ptr %15188, align 8, !tbaa !41
  br label %15190

15190:                                            ; preds = %15186
  br label %15191

15191:                                            ; preds = %15190
  br label %15192

15192:                                            ; preds = %15191
  %15193 = load i32, ptr @test_count, align 4, !tbaa !5
  %15194 = add nsw i32 %15193, 1
  store i32 %15194, ptr @test_count, align 4, !tbaa !5
  %15195 = call i32 @s2n_validate_certificate_signature_preferences(ptr noundef %293)
  %15196 = getelementptr inbounds %struct.s2n_result, ptr %294, i32 0, i32 0
  store i32 %15195, ptr %15196, align 4
  %15197 = getelementptr inbounds %struct.s2n_result, ptr %294, i32 0, i32 0
  %15198 = load i32, ptr %15197, align 4
  %15199 = call zeroext i1 @s2n_result_is_error(i32 %15198)
  br i1 %15199, label %15253, label %15200

15200:                                            ; preds = %15192
  br label %15201

15201:                                            ; preds = %15200
  br label %15202

15202:                                            ; preds = %15201
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #10
  %15203 = call ptr @__errno_location() #11
  %15204 = load i32, ptr %15203, align 4, !tbaa !5
  store i32 %15204, ptr %295, align 4, !tbaa !5
  %15205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15206 = call i32 @s2n_print_stacktrace(ptr noundef %15205)
  %15207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15208 = trunc i8 %15207 to i1
  br i1 %15208, label %15209, label %15231

15209:                                            ; preds = %15202
  %15210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15211 = call i32 @fileno(ptr noundef %15210) #10
  %15212 = call i32 @isatty(i32 noundef %15211) #10
  %15213 = icmp ne i32 %15212, 0
  br i1 %15213, label %15214, label %15231

15214:                                            ; preds = %15209
  %15215 = load i32, ptr %295, align 4, !tbaa !5
  %15216 = call ptr @__errno_location() #11
  store i32 %15215, ptr %15216, align 4, !tbaa !5
  %15217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15218 = load i32, ptr @test_count, align 4, !tbaa !5
  %15219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15220 = load i32, ptr %15219, align 4, !tbaa !5
  %15221 = call ptr @s2n_strerror(i32 noundef %15220, ptr noundef @.str.4)
  %15222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15223 = load i32, ptr %15222, align 4, !tbaa !5
  %15224 = call ptr @s2n_strerror_debug(i32 noundef %15223, ptr noundef @.str.4)
  %15225 = call ptr @__errno_location() #11
  %15226 = load i32, ptr %15225, align 4, !tbaa !5
  %15227 = call ptr @strerror(i32 noundef %15226) #10
  %15228 = call ptr @__errno_location() #11
  %15229 = load i32, ptr %15228, align 4, !tbaa !5
  %15230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15217, ptr noundef @.str.2, i32 noundef %15218, ptr noundef @.str.180, ptr noundef @.str.1, i32 noundef 746, ptr noundef %15221, ptr noundef %15224, ptr noundef %15227, i32 noundef %15229) #10
  br label %15248

15231:                                            ; preds = %15209, %15202
  %15232 = load i32, ptr %295, align 4, !tbaa !5
  %15233 = call ptr @__errno_location() #11
  store i32 %15232, ptr %15233, align 4, !tbaa !5
  %15234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15235 = load i32, ptr @test_count, align 4, !tbaa !5
  %15236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15237 = load i32, ptr %15236, align 4, !tbaa !5
  %15238 = call ptr @s2n_strerror(i32 noundef %15237, ptr noundef @.str.4)
  %15239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15240 = load i32, ptr %15239, align 4, !tbaa !5
  %15241 = call ptr @s2n_strerror_debug(i32 noundef %15240, ptr noundef @.str.4)
  %15242 = call ptr @__errno_location() #11
  %15243 = load i32, ptr %15242, align 4, !tbaa !5
  %15244 = call ptr @strerror(i32 noundef %15243) #10
  %15245 = call ptr @__errno_location() #11
  %15246 = load i32, ptr %15245, align 4, !tbaa !5
  %15247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15234, ptr noundef @.str.5, i32 noundef %15235, ptr noundef @.str.180, ptr noundef @.str.1, i32 noundef 746, ptr noundef %15238, ptr noundef %15241, ptr noundef %15244, i32 noundef %15246) #10
  br label %15248

15248:                                            ; preds = %15231, %15214
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #10
  br label %15249

15249:                                            ; preds = %15248
  br label %15250

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

15251:                                            ; No predecessors!
  br label %15252

15252:                                            ; preds = %15251
  br label %15253

15253:                                            ; preds = %15252, %15192
  br label %15254

15254:                                            ; preds = %15253
  br label %15255

15255:                                            ; preds = %15254
  br label %15256

15256:                                            ; preds = %15255
  %15257 = load i32, ptr @test_count, align 4, !tbaa !5
  %15258 = add nsw i32 %15257, 1
  store i32 %15258, ptr @test_count, align 4, !tbaa !5
  %15259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15260 = load i32, ptr %15259, align 4, !tbaa !5
  %15261 = icmp eq i32 %15260, 469762101
  br i1 %15261, label %15315, label %15262

15262:                                            ; preds = %15256
  br label %15263

15263:                                            ; preds = %15262
  br label %15264

15264:                                            ; preds = %15263
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #10
  %15265 = call ptr @__errno_location() #11
  %15266 = load i32, ptr %15265, align 4, !tbaa !5
  store i32 %15266, ptr %296, align 4, !tbaa !5
  %15267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15268 = call i32 @s2n_print_stacktrace(ptr noundef %15267)
  %15269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15270 = trunc i8 %15269 to i1
  br i1 %15270, label %15271, label %15293

15271:                                            ; preds = %15264
  %15272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15273 = call i32 @fileno(ptr noundef %15272) #10
  %15274 = call i32 @isatty(i32 noundef %15273) #10
  %15275 = icmp ne i32 %15274, 0
  br i1 %15275, label %15276, label %15293

15276:                                            ; preds = %15271
  %15277 = load i32, ptr %296, align 4, !tbaa !5
  %15278 = call ptr @__errno_location() #11
  store i32 %15277, ptr %15278, align 4, !tbaa !5
  %15279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15280 = load i32, ptr @test_count, align 4, !tbaa !5
  %15281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15282 = load i32, ptr %15281, align 4, !tbaa !5
  %15283 = call ptr @s2n_strerror(i32 noundef %15282, ptr noundef @.str.4)
  %15284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15285 = load i32, ptr %15284, align 4, !tbaa !5
  %15286 = call ptr @s2n_strerror_debug(i32 noundef %15285, ptr noundef @.str.4)
  %15287 = call ptr @__errno_location() #11
  %15288 = load i32, ptr %15287, align 4, !tbaa !5
  %15289 = call ptr @strerror(i32 noundef %15288) #10
  %15290 = call ptr @__errno_location() #11
  %15291 = load i32, ptr %15290, align 4, !tbaa !5
  %15292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15279, ptr noundef @.str.2, i32 noundef %15280, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 746, ptr noundef %15283, ptr noundef %15286, ptr noundef %15289, i32 noundef %15291) #10
  br label %15310

15293:                                            ; preds = %15271, %15264
  %15294 = load i32, ptr %296, align 4, !tbaa !5
  %15295 = call ptr @__errno_location() #11
  store i32 %15294, ptr %15295, align 4, !tbaa !5
  %15296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15297 = load i32, ptr @test_count, align 4, !tbaa !5
  %15298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15299 = load i32, ptr %15298, align 4, !tbaa !5
  %15300 = call ptr @s2n_strerror(i32 noundef %15299, ptr noundef @.str.4)
  %15301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15302 = load i32, ptr %15301, align 4, !tbaa !5
  %15303 = call ptr @s2n_strerror_debug(i32 noundef %15302, ptr noundef @.str.4)
  %15304 = call ptr @__errno_location() #11
  %15305 = load i32, ptr %15304, align 4, !tbaa !5
  %15306 = call ptr @strerror(i32 noundef %15305) #10
  %15307 = call ptr @__errno_location() #11
  %15308 = load i32, ptr %15307, align 4, !tbaa !5
  %15309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15296, ptr noundef @.str.5, i32 noundef %15297, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 746, ptr noundef %15300, ptr noundef %15303, ptr noundef %15306, i32 noundef %15308) #10
  br label %15310

15310:                                            ; preds = %15293, %15276
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #10
  br label %15311

15311:                                            ; preds = %15310
  br label %15312

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

15313:                                            ; No predecessors!
  br label %15314

15314:                                            ; preds = %15313
  br label %15315

15315:                                            ; preds = %15314, %15256
  br label %15316

15316:                                            ; preds = %15315
  br label %15317

15317:                                            ; preds = %15316
  br label %15318

15318:                                            ; preds = %15317
  %15319 = load i32, ptr @test_count, align 4, !tbaa !5
  %15320 = add nsw i32 %15319, 1
  store i32 %15320, ptr @test_count, align 4, !tbaa !5
  %15321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15322 = load i32, ptr %15321, align 4, !tbaa !5
  %15323 = call ptr @s2n_strerror_debug(i32 noundef %15322, ptr noundef @.str.4)
  %15324 = icmp eq ptr %15323, null
  br i1 %15324, label %15325, label %15378

15325:                                            ; preds = %15318
  br label %15326

15326:                                            ; preds = %15325
  br label %15327

15327:                                            ; preds = %15326
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #10
  %15328 = call ptr @__errno_location() #11
  %15329 = load i32, ptr %15328, align 4, !tbaa !5
  store i32 %15329, ptr %297, align 4, !tbaa !5
  %15330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15331 = call i32 @s2n_print_stacktrace(ptr noundef %15330)
  %15332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15333 = trunc i8 %15332 to i1
  br i1 %15333, label %15334, label %15356

15334:                                            ; preds = %15327
  %15335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15336 = call i32 @fileno(ptr noundef %15335) #10
  %15337 = call i32 @isatty(i32 noundef %15336) #10
  %15338 = icmp ne i32 %15337, 0
  br i1 %15338, label %15339, label %15356

15339:                                            ; preds = %15334
  %15340 = load i32, ptr %297, align 4, !tbaa !5
  %15341 = call ptr @__errno_location() #11
  store i32 %15340, ptr %15341, align 4, !tbaa !5
  %15342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15343 = load i32, ptr @test_count, align 4, !tbaa !5
  %15344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15345 = load i32, ptr %15344, align 4, !tbaa !5
  %15346 = call ptr @s2n_strerror(i32 noundef %15345, ptr noundef @.str.4)
  %15347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15348 = load i32, ptr %15347, align 4, !tbaa !5
  %15349 = call ptr @s2n_strerror_debug(i32 noundef %15348, ptr noundef @.str.4)
  %15350 = call ptr @__errno_location() #11
  %15351 = load i32, ptr %15350, align 4, !tbaa !5
  %15352 = call ptr @strerror(i32 noundef %15351) #10
  %15353 = call ptr @__errno_location() #11
  %15354 = load i32, ptr %15353, align 4, !tbaa !5
  %15355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15342, ptr noundef @.str.2, i32 noundef %15343, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 746, ptr noundef %15346, ptr noundef %15349, ptr noundef %15352, i32 noundef %15354) #10
  br label %15373

15356:                                            ; preds = %15334, %15327
  %15357 = load i32, ptr %297, align 4, !tbaa !5
  %15358 = call ptr @__errno_location() #11
  store i32 %15357, ptr %15358, align 4, !tbaa !5
  %15359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15360 = load i32, ptr @test_count, align 4, !tbaa !5
  %15361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15362 = load i32, ptr %15361, align 4, !tbaa !5
  %15363 = call ptr @s2n_strerror(i32 noundef %15362, ptr noundef @.str.4)
  %15364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15365 = load i32, ptr %15364, align 4, !tbaa !5
  %15366 = call ptr @s2n_strerror_debug(i32 noundef %15365, ptr noundef @.str.4)
  %15367 = call ptr @__errno_location() #11
  %15368 = load i32, ptr %15367, align 4, !tbaa !5
  %15369 = call ptr @strerror(i32 noundef %15368) #10
  %15370 = call ptr @__errno_location() #11
  %15371 = load i32, ptr %15370, align 4, !tbaa !5
  %15372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15359, ptr noundef @.str.5, i32 noundef %15360, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 746, ptr noundef %15363, ptr noundef %15366, ptr noundef %15369, i32 noundef %15371) #10
  br label %15373

15373:                                            ; preds = %15356, %15339
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #10
  br label %15374

15374:                                            ; preds = %15373
  br label %15375

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

15376:                                            ; No predecessors!
  br label %15377

15377:                                            ; preds = %15376
  br label %15378

15378:                                            ; preds = %15377, %15318
  br label %15379

15379:                                            ; preds = %15378
  br label %15380

15380:                                            ; preds = %15379
  br label %15381

15381:                                            ; preds = %15380
  br label %15382

15382:                                            ; preds = %15381
  br label %15383

15383:                                            ; preds = %15382
  %15384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %15384, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %15385 = call ptr @__errno_location() #11
  store i32 0, ptr %15385, align 4, !tbaa !5
  br label %15386

15386:                                            ; preds = %15383
  br label %15387

15387:                                            ; preds = %15386
  br label %15388

15388:                                            ; preds = %15387
  br label %15389

15389:                                            ; preds = %15388
  call void @llvm.lifetime.end.p0(i64 16, ptr %293) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %292) #10
  br label %15390

15390:                                            ; preds = %15389
  %15391 = load i32, ptr @test_count, align 4, !tbaa !5
  %15392 = add nsw i32 %15391, 1
  store i32 %15392, ptr @test_count, align 4, !tbaa !5
  %15393 = call i32 (...) @s2n_reset_tls13_in_test()
  %15394 = icmp eq i32 %15393, -1
  br i1 %15394, label %15395, label %15448

15395:                                            ; preds = %15390
  br label %15396

15396:                                            ; preds = %15395
  br label %15397

15397:                                            ; preds = %15396
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #10
  %15398 = call ptr @__errno_location() #11
  %15399 = load i32, ptr %15398, align 4, !tbaa !5
  store i32 %15399, ptr %298, align 4, !tbaa !5
  %15400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15401 = call i32 @s2n_print_stacktrace(ptr noundef %15400)
  %15402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15403 = trunc i8 %15402 to i1
  br i1 %15403, label %15404, label %15426

15404:                                            ; preds = %15397
  %15405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15406 = call i32 @fileno(ptr noundef %15405) #10
  %15407 = call i32 @isatty(i32 noundef %15406) #10
  %15408 = icmp ne i32 %15407, 0
  br i1 %15408, label %15409, label %15426

15409:                                            ; preds = %15404
  %15410 = load i32, ptr %298, align 4, !tbaa !5
  %15411 = call ptr @__errno_location() #11
  store i32 %15410, ptr %15411, align 4, !tbaa !5
  %15412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15413 = load i32, ptr @test_count, align 4, !tbaa !5
  %15414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15415 = load i32, ptr %15414, align 4, !tbaa !5
  %15416 = call ptr @s2n_strerror(i32 noundef %15415, ptr noundef @.str.4)
  %15417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15418 = load i32, ptr %15417, align 4, !tbaa !5
  %15419 = call ptr @s2n_strerror_debug(i32 noundef %15418, ptr noundef @.str.4)
  %15420 = call ptr @__errno_location() #11
  %15421 = load i32, ptr %15420, align 4, !tbaa !5
  %15422 = call ptr @strerror(i32 noundef %15421) #10
  %15423 = call ptr @__errno_location() #11
  %15424 = load i32, ptr %15423, align 4, !tbaa !5
  %15425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15412, ptr noundef @.str.2, i32 noundef %15413, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 749, ptr noundef %15416, ptr noundef %15419, ptr noundef %15422, i32 noundef %15424) #10
  br label %15443

15426:                                            ; preds = %15404, %15397
  %15427 = load i32, ptr %298, align 4, !tbaa !5
  %15428 = call ptr @__errno_location() #11
  store i32 %15427, ptr %15428, align 4, !tbaa !5
  %15429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15430 = load i32, ptr @test_count, align 4, !tbaa !5
  %15431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15432 = load i32, ptr %15431, align 4, !tbaa !5
  %15433 = call ptr @s2n_strerror(i32 noundef %15432, ptr noundef @.str.4)
  %15434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15435 = load i32, ptr %15434, align 4, !tbaa !5
  %15436 = call ptr @s2n_strerror_debug(i32 noundef %15435, ptr noundef @.str.4)
  %15437 = call ptr @__errno_location() #11
  %15438 = load i32, ptr %15437, align 4, !tbaa !5
  %15439 = call ptr @strerror(i32 noundef %15438) #10
  %15440 = call ptr @__errno_location() #11
  %15441 = load i32, ptr %15440, align 4, !tbaa !5
  %15442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15429, ptr noundef @.str.5, i32 noundef %15430, ptr noundef @.str.181, ptr noundef @.str.1, i32 noundef 749, ptr noundef %15433, ptr noundef %15436, ptr noundef %15439, i32 noundef %15441) #10
  br label %15443

15443:                                            ; preds = %15426, %15409
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #10
  br label %15444

15444:                                            ; preds = %15443
  br label %15445

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

15446:                                            ; No predecessors!
  br label %15447

15447:                                            ; preds = %15446
  br label %15448

15448:                                            ; preds = %15447, %15390
  br label %15449

15449:                                            ; preds = %15448
  br label %15450

15450:                                            ; preds = %15449
  br label %15451

15451:                                            ; preds = %15450
  %15452 = load i32, ptr @test_count, align 4, !tbaa !5
  %15453 = add nsw i32 %15452, 1
  store i32 %15453, ptr @test_count, align 4, !tbaa !5
  %15454 = load ptr, ptr %10, align 8, !tbaa !9
  %15455 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.37, ptr noundef %15454)
  %15456 = getelementptr inbounds %struct.s2n_result, ptr %299, i32 0, i32 0
  store i32 %15455, ptr %15456, align 4
  %15457 = getelementptr inbounds %struct.s2n_result, ptr %299, i32 0, i32 0
  %15458 = load i32, ptr %15457, align 4
  %15459 = call zeroext i1 @s2n_result_is_ok(i32 %15458)
  br i1 %15459, label %15513, label %15460

15460:                                            ; preds = %15451
  br label %15461

15461:                                            ; preds = %15460
  br label %15462

15462:                                            ; preds = %15461
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #10
  %15463 = call ptr @__errno_location() #11
  %15464 = load i32, ptr %15463, align 4, !tbaa !5
  store i32 %15464, ptr %300, align 4, !tbaa !5
  %15465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15466 = call i32 @s2n_print_stacktrace(ptr noundef %15465)
  %15467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15468 = trunc i8 %15467 to i1
  br i1 %15468, label %15469, label %15491

15469:                                            ; preds = %15462
  %15470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15471 = call i32 @fileno(ptr noundef %15470) #10
  %15472 = call i32 @isatty(i32 noundef %15471) #10
  %15473 = icmp ne i32 %15472, 0
  br i1 %15473, label %15474, label %15491

15474:                                            ; preds = %15469
  %15475 = load i32, ptr %300, align 4, !tbaa !5
  %15476 = call ptr @__errno_location() #11
  store i32 %15475, ptr %15476, align 4, !tbaa !5
  %15477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15478 = load i32, ptr @test_count, align 4, !tbaa !5
  %15479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15480 = load i32, ptr %15479, align 4, !tbaa !5
  %15481 = call ptr @s2n_strerror(i32 noundef %15480, ptr noundef @.str.4)
  %15482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15483 = load i32, ptr %15482, align 4, !tbaa !5
  %15484 = call ptr @s2n_strerror_debug(i32 noundef %15483, ptr noundef @.str.4)
  %15485 = call ptr @__errno_location() #11
  %15486 = load i32, ptr %15485, align 4, !tbaa !5
  %15487 = call ptr @strerror(i32 noundef %15486) #10
  %15488 = call ptr @__errno_location() #11
  %15489 = load i32, ptr %15488, align 4, !tbaa !5
  %15490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15477, ptr noundef @.str.2, i32 noundef %15478, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 755, ptr noundef %15481, ptr noundef %15484, ptr noundef %15487, i32 noundef %15489) #10
  br label %15508

15491:                                            ; preds = %15469, %15462
  %15492 = load i32, ptr %300, align 4, !tbaa !5
  %15493 = call ptr @__errno_location() #11
  store i32 %15492, ptr %15493, align 4, !tbaa !5
  %15494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15495 = load i32, ptr @test_count, align 4, !tbaa !5
  %15496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15497 = load i32, ptr %15496, align 4, !tbaa !5
  %15498 = call ptr @s2n_strerror(i32 noundef %15497, ptr noundef @.str.4)
  %15499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15500 = load i32, ptr %15499, align 4, !tbaa !5
  %15501 = call ptr @s2n_strerror_debug(i32 noundef %15500, ptr noundef @.str.4)
  %15502 = call ptr @__errno_location() #11
  %15503 = load i32, ptr %15502, align 4, !tbaa !5
  %15504 = call ptr @strerror(i32 noundef %15503) #10
  %15505 = call ptr @__errno_location() #11
  %15506 = load i32, ptr %15505, align 4, !tbaa !5
  %15507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15494, ptr noundef @.str.5, i32 noundef %15495, ptr noundef @.str.182, ptr noundef @.str.1, i32 noundef 755, ptr noundef %15498, ptr noundef %15501, ptr noundef %15504, i32 noundef %15506) #10
  br label %15508

15508:                                            ; preds = %15491, %15474
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #10
  br label %15509

15509:                                            ; preds = %15508
  br label %15510

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

15511:                                            ; No predecessors!
  br label %15512

15512:                                            ; preds = %15511
  br label %15513

15513:                                            ; preds = %15512, %15451
  br label %15514

15514:                                            ; preds = %15513
  br label %15515

15515:                                            ; preds = %15514
  br label %15516

15516:                                            ; preds = %15515
  %15517 = load i32, ptr @test_count, align 4, !tbaa !5
  %15518 = add nsw i32 %15517, 1
  store i32 %15518, ptr @test_count, align 4, !tbaa !5
  %15519 = load ptr, ptr %10, align 8, !tbaa !9
  %15520 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.46, ptr noundef %15519)
  %15521 = getelementptr inbounds %struct.s2n_result, ptr %301, i32 0, i32 0
  store i32 %15520, ptr %15521, align 4
  %15522 = getelementptr inbounds %struct.s2n_result, ptr %301, i32 0, i32 0
  %15523 = load i32, ptr %15522, align 4
  %15524 = call zeroext i1 @s2n_result_is_ok(i32 %15523)
  br i1 %15524, label %15578, label %15525

15525:                                            ; preds = %15516
  br label %15526

15526:                                            ; preds = %15525
  br label %15527

15527:                                            ; preds = %15526
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #10
  %15528 = call ptr @__errno_location() #11
  %15529 = load i32, ptr %15528, align 4, !tbaa !5
  store i32 %15529, ptr %302, align 4, !tbaa !5
  %15530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15531 = call i32 @s2n_print_stacktrace(ptr noundef %15530)
  %15532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15533 = trunc i8 %15532 to i1
  br i1 %15533, label %15534, label %15556

15534:                                            ; preds = %15527
  %15535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15536 = call i32 @fileno(ptr noundef %15535) #10
  %15537 = call i32 @isatty(i32 noundef %15536) #10
  %15538 = icmp ne i32 %15537, 0
  br i1 %15538, label %15539, label %15556

15539:                                            ; preds = %15534
  %15540 = load i32, ptr %302, align 4, !tbaa !5
  %15541 = call ptr @__errno_location() #11
  store i32 %15540, ptr %15541, align 4, !tbaa !5
  %15542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15543 = load i32, ptr @test_count, align 4, !tbaa !5
  %15544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15545 = load i32, ptr %15544, align 4, !tbaa !5
  %15546 = call ptr @s2n_strerror(i32 noundef %15545, ptr noundef @.str.4)
  %15547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15548 = load i32, ptr %15547, align 4, !tbaa !5
  %15549 = call ptr @s2n_strerror_debug(i32 noundef %15548, ptr noundef @.str.4)
  %15550 = call ptr @__errno_location() #11
  %15551 = load i32, ptr %15550, align 4, !tbaa !5
  %15552 = call ptr @strerror(i32 noundef %15551) #10
  %15553 = call ptr @__errno_location() #11
  %15554 = load i32, ptr %15553, align 4, !tbaa !5
  %15555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15542, ptr noundef @.str.2, i32 noundef %15543, ptr noundef @.str.183, ptr noundef @.str.1, i32 noundef 756, ptr noundef %15546, ptr noundef %15549, ptr noundef %15552, i32 noundef %15554) #10
  br label %15573

15556:                                            ; preds = %15534, %15527
  %15557 = load i32, ptr %302, align 4, !tbaa !5
  %15558 = call ptr @__errno_location() #11
  store i32 %15557, ptr %15558, align 4, !tbaa !5
  %15559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15560 = load i32, ptr @test_count, align 4, !tbaa !5
  %15561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15562 = load i32, ptr %15561, align 4, !tbaa !5
  %15563 = call ptr @s2n_strerror(i32 noundef %15562, ptr noundef @.str.4)
  %15564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15565 = load i32, ptr %15564, align 4, !tbaa !5
  %15566 = call ptr @s2n_strerror_debug(i32 noundef %15565, ptr noundef @.str.4)
  %15567 = call ptr @__errno_location() #11
  %15568 = load i32, ptr %15567, align 4, !tbaa !5
  %15569 = call ptr @strerror(i32 noundef %15568) #10
  %15570 = call ptr @__errno_location() #11
  %15571 = load i32, ptr %15570, align 4, !tbaa !5
  %15572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15559, ptr noundef @.str.5, i32 noundef %15560, ptr noundef @.str.183, ptr noundef @.str.1, i32 noundef 756, ptr noundef %15563, ptr noundef %15566, ptr noundef %15569, i32 noundef %15571) #10
  br label %15573

15573:                                            ; preds = %15556, %15539
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #10
  br label %15574

15574:                                            ; preds = %15573
  br label %15575

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

15576:                                            ; No predecessors!
  br label %15577

15577:                                            ; preds = %15576
  br label %15578

15578:                                            ; preds = %15577, %15516
  br label %15579

15579:                                            ; preds = %15578
  br label %15580

15580:                                            ; preds = %15579
  br label %15581

15581:                                            ; preds = %15580
  %15582 = load i32, ptr @test_count, align 4, !tbaa !5
  %15583 = add nsw i32 %15582, 1
  store i32 %15583, ptr @test_count, align 4, !tbaa !5
  %15584 = load ptr, ptr %10, align 8, !tbaa !9
  %15585 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.184, ptr noundef %15584)
  %15586 = getelementptr inbounds %struct.s2n_result, ptr %303, i32 0, i32 0
  store i32 %15585, ptr %15586, align 4
  %15587 = getelementptr inbounds %struct.s2n_result, ptr %303, i32 0, i32 0
  %15588 = load i32, ptr %15587, align 4
  %15589 = call zeroext i1 @s2n_result_is_ok(i32 %15588)
  br i1 %15589, label %15643, label %15590

15590:                                            ; preds = %15581
  br label %15591

15591:                                            ; preds = %15590
  br label %15592

15592:                                            ; preds = %15591
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #10
  %15593 = call ptr @__errno_location() #11
  %15594 = load i32, ptr %15593, align 4, !tbaa !5
  store i32 %15594, ptr %304, align 4, !tbaa !5
  %15595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15596 = call i32 @s2n_print_stacktrace(ptr noundef %15595)
  %15597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15598 = trunc i8 %15597 to i1
  br i1 %15598, label %15599, label %15621

15599:                                            ; preds = %15592
  %15600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15601 = call i32 @fileno(ptr noundef %15600) #10
  %15602 = call i32 @isatty(i32 noundef %15601) #10
  %15603 = icmp ne i32 %15602, 0
  br i1 %15603, label %15604, label %15621

15604:                                            ; preds = %15599
  %15605 = load i32, ptr %304, align 4, !tbaa !5
  %15606 = call ptr @__errno_location() #11
  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() #11
  %15616 = load i32, ptr %15615, align 4, !tbaa !5
  %15617 = call ptr @strerror(i32 noundef %15616) #10
  %15618 = call ptr @__errno_location() #11
  %15619 = load i32, ptr %15618, align 4, !tbaa !5
  %15620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15607, ptr noundef @.str.2, i32 noundef %15608, ptr noundef @.str.185, ptr noundef @.str.1, i32 noundef 757, ptr noundef %15611, ptr noundef %15614, ptr noundef %15617, i32 noundef %15619) #10
  br label %15638

15621:                                            ; preds = %15599, %15592
  %15622 = load i32, ptr %304, align 4, !tbaa !5
  %15623 = call ptr @__errno_location() #11
  store i32 %15622, ptr %15623, align 4, !tbaa !5
  %15624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15625 = load i32, ptr @test_count, align 4, !tbaa !5
  %15626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15627 = load i32, ptr %15626, align 4, !tbaa !5
  %15628 = call ptr @s2n_strerror(i32 noundef %15627, ptr noundef @.str.4)
  %15629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15630 = load i32, ptr %15629, align 4, !tbaa !5
  %15631 = call ptr @s2n_strerror_debug(i32 noundef %15630, ptr noundef @.str.4)
  %15632 = call ptr @__errno_location() #11
  %15633 = load i32, ptr %15632, align 4, !tbaa !5
  %15634 = call ptr @strerror(i32 noundef %15633) #10
  %15635 = call ptr @__errno_location() #11
  %15636 = load i32, ptr %15635, align 4, !tbaa !5
  %15637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15624, ptr noundef @.str.5, i32 noundef %15625, ptr noundef @.str.185, ptr noundef @.str.1, i32 noundef 757, ptr noundef %15628, ptr noundef %15631, ptr noundef %15634, i32 noundef %15636) #10
  br label %15638

15638:                                            ; preds = %15621, %15604
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #10
  br label %15639

15639:                                            ; preds = %15638
  br label %15640

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

15641:                                            ; No predecessors!
  br label %15642

15642:                                            ; preds = %15641
  br label %15643

15643:                                            ; preds = %15642, %15581
  br label %15644

15644:                                            ; preds = %15643
  br label %15645

15645:                                            ; preds = %15644
  br label %15646

15646:                                            ; preds = %15645
  %15647 = load i32, ptr @test_count, align 4, !tbaa !5
  %15648 = add nsw i32 %15647, 1
  store i32 %15648, ptr @test_count, align 4, !tbaa !5
  %15649 = load ptr, ptr %10, align 8, !tbaa !9
  %15650 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.186, ptr noundef %15649)
  %15651 = getelementptr inbounds %struct.s2n_result, ptr %305, i32 0, i32 0
  store i32 %15650, ptr %15651, align 4
  %15652 = getelementptr inbounds %struct.s2n_result, ptr %305, i32 0, i32 0
  %15653 = load i32, ptr %15652, align 4
  %15654 = call zeroext i1 @s2n_result_is_ok(i32 %15653)
  br i1 %15654, label %15708, label %15655

15655:                                            ; preds = %15646
  br label %15656

15656:                                            ; preds = %15655
  br label %15657

15657:                                            ; preds = %15656
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #10
  %15658 = call ptr @__errno_location() #11
  %15659 = load i32, ptr %15658, align 4, !tbaa !5
  store i32 %15659, ptr %306, align 4, !tbaa !5
  %15660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15661 = call i32 @s2n_print_stacktrace(ptr noundef %15660)
  %15662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15663 = trunc i8 %15662 to i1
  br i1 %15663, label %15664, label %15686

15664:                                            ; preds = %15657
  %15665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15666 = call i32 @fileno(ptr noundef %15665) #10
  %15667 = call i32 @isatty(i32 noundef %15666) #10
  %15668 = icmp ne i32 %15667, 0
  br i1 %15668, label %15669, label %15686

15669:                                            ; preds = %15664
  %15670 = load i32, ptr %306, align 4, !tbaa !5
  %15671 = call ptr @__errno_location() #11
  store i32 %15670, ptr %15671, align 4, !tbaa !5
  %15672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15673 = load i32, ptr @test_count, align 4, !tbaa !5
  %15674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15675 = load i32, ptr %15674, align 4, !tbaa !5
  %15676 = call ptr @s2n_strerror(i32 noundef %15675, ptr noundef @.str.4)
  %15677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15678 = load i32, ptr %15677, align 4, !tbaa !5
  %15679 = call ptr @s2n_strerror_debug(i32 noundef %15678, ptr noundef @.str.4)
  %15680 = call ptr @__errno_location() #11
  %15681 = load i32, ptr %15680, align 4, !tbaa !5
  %15682 = call ptr @strerror(i32 noundef %15681) #10
  %15683 = call ptr @__errno_location() #11
  %15684 = load i32, ptr %15683, align 4, !tbaa !5
  %15685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15672, ptr noundef @.str.2, i32 noundef %15673, ptr noundef @.str.187, ptr noundef @.str.1, i32 noundef 758, ptr noundef %15676, ptr noundef %15679, ptr noundef %15682, i32 noundef %15684) #10
  br label %15703

15686:                                            ; preds = %15664, %15657
  %15687 = load i32, ptr %306, align 4, !tbaa !5
  %15688 = call ptr @__errno_location() #11
  store i32 %15687, ptr %15688, align 4, !tbaa !5
  %15689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15690 = load i32, ptr @test_count, align 4, !tbaa !5
  %15691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15692 = load i32, ptr %15691, align 4, !tbaa !5
  %15693 = call ptr @s2n_strerror(i32 noundef %15692, ptr noundef @.str.4)
  %15694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15695 = load i32, ptr %15694, align 4, !tbaa !5
  %15696 = call ptr @s2n_strerror_debug(i32 noundef %15695, ptr noundef @.str.4)
  %15697 = call ptr @__errno_location() #11
  %15698 = load i32, ptr %15697, align 4, !tbaa !5
  %15699 = call ptr @strerror(i32 noundef %15698) #10
  %15700 = call ptr @__errno_location() #11
  %15701 = load i32, ptr %15700, align 4, !tbaa !5
  %15702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15689, ptr noundef @.str.5, i32 noundef %15690, ptr noundef @.str.187, ptr noundef @.str.1, i32 noundef 758, ptr noundef %15693, ptr noundef %15696, ptr noundef %15699, i32 noundef %15701) #10
  br label %15703

15703:                                            ; preds = %15686, %15669
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #10
  br label %15704

15704:                                            ; preds = %15703
  br label %15705

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

15706:                                            ; No predecessors!
  br label %15707

15707:                                            ; preds = %15706
  br label %15708

15708:                                            ; preds = %15707, %15646
  br label %15709

15709:                                            ; preds = %15708
  br label %15710

15710:                                            ; preds = %15709
  br label %15711

15711:                                            ; preds = %15710
  %15712 = load i32, ptr @test_count, align 4, !tbaa !5
  %15713 = add nsw i32 %15712, 1
  store i32 %15713, ptr @test_count, align 4, !tbaa !5
  %15714 = load ptr, ptr %12, align 8, !tbaa !9
  %15715 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.46, ptr noundef %15714)
  %15716 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  store i32 %15715, ptr %15716, align 4
  %15717 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  %15718 = load i32, ptr %15717, align 4
  %15719 = call zeroext i1 @s2n_result_is_ok(i32 %15718)
  br i1 %15719, label %15773, label %15720

15720:                                            ; preds = %15711
  br label %15721

15721:                                            ; preds = %15720
  br label %15722

15722:                                            ; preds = %15721
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #10
  %15723 = call ptr @__errno_location() #11
  %15724 = load i32, ptr %15723, align 4, !tbaa !5
  store i32 %15724, ptr %308, align 4, !tbaa !5
  %15725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15726 = call i32 @s2n_print_stacktrace(ptr noundef %15725)
  %15727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15728 = trunc i8 %15727 to i1
  br i1 %15728, label %15729, label %15751

15729:                                            ; preds = %15722
  %15730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15731 = call i32 @fileno(ptr noundef %15730) #10
  %15732 = call i32 @isatty(i32 noundef %15731) #10
  %15733 = icmp ne i32 %15732, 0
  br i1 %15733, label %15734, label %15751

15734:                                            ; preds = %15729
  %15735 = load i32, ptr %308, align 4, !tbaa !5
  %15736 = call ptr @__errno_location() #11
  store i32 %15735, ptr %15736, align 4, !tbaa !5
  %15737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15738 = load i32, ptr @test_count, align 4, !tbaa !5
  %15739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15740 = load i32, ptr %15739, align 4, !tbaa !5
  %15741 = call ptr @s2n_strerror(i32 noundef %15740, ptr noundef @.str.4)
  %15742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15743 = load i32, ptr %15742, align 4, !tbaa !5
  %15744 = call ptr @s2n_strerror_debug(i32 noundef %15743, ptr noundef @.str.4)
  %15745 = call ptr @__errno_location() #11
  %15746 = load i32, ptr %15745, align 4, !tbaa !5
  %15747 = call ptr @strerror(i32 noundef %15746) #10
  %15748 = call ptr @__errno_location() #11
  %15749 = load i32, ptr %15748, align 4, !tbaa !5
  %15750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15737, ptr noundef @.str.2, i32 noundef %15738, ptr noundef @.str.188, ptr noundef @.str.1, i32 noundef 760, ptr noundef %15741, ptr noundef %15744, ptr noundef %15747, i32 noundef %15749) #10
  br label %15768

15751:                                            ; preds = %15729, %15722
  %15752 = load i32, ptr %308, align 4, !tbaa !5
  %15753 = call ptr @__errno_location() #11
  store i32 %15752, ptr %15753, align 4, !tbaa !5
  %15754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15755 = load i32, ptr @test_count, align 4, !tbaa !5
  %15756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15757 = load i32, ptr %15756, align 4, !tbaa !5
  %15758 = call ptr @s2n_strerror(i32 noundef %15757, ptr noundef @.str.4)
  %15759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15760 = load i32, ptr %15759, align 4, !tbaa !5
  %15761 = call ptr @s2n_strerror_debug(i32 noundef %15760, ptr noundef @.str.4)
  %15762 = call ptr @__errno_location() #11
  %15763 = load i32, ptr %15762, align 4, !tbaa !5
  %15764 = call ptr @strerror(i32 noundef %15763) #10
  %15765 = call ptr @__errno_location() #11
  %15766 = load i32, ptr %15765, align 4, !tbaa !5
  %15767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15754, ptr noundef @.str.5, i32 noundef %15755, ptr noundef @.str.188, ptr noundef @.str.1, i32 noundef 760, ptr noundef %15758, ptr noundef %15761, ptr noundef %15764, i32 noundef %15766) #10
  br label %15768

15768:                                            ; preds = %15751, %15734
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #10
  br label %15769

15769:                                            ; preds = %15768
  br label %15770

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

15771:                                            ; No predecessors!
  br label %15772

15772:                                            ; preds = %15771
  br label %15773

15773:                                            ; preds = %15772, %15711
  br label %15774

15774:                                            ; preds = %15773
  br label %15775

15775:                                            ; preds = %15774
  br label %15776

15776:                                            ; preds = %15775
  %15777 = load i32, ptr @test_count, align 4, !tbaa !5
  %15778 = add nsw i32 %15777, 1
  store i32 %15778, ptr @test_count, align 4, !tbaa !5
  %15779 = load ptr, ptr %12, align 8, !tbaa !9
  %15780 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.184, ptr noundef %15779)
  %15781 = getelementptr inbounds %struct.s2n_result, ptr %309, i32 0, i32 0
  store i32 %15780, ptr %15781, align 4
  %15782 = getelementptr inbounds %struct.s2n_result, ptr %309, i32 0, i32 0
  %15783 = load i32, ptr %15782, align 4
  %15784 = call zeroext i1 @s2n_result_is_ok(i32 %15783)
  br i1 %15784, label %15838, label %15785

15785:                                            ; preds = %15776
  br label %15786

15786:                                            ; preds = %15785
  br label %15787

15787:                                            ; preds = %15786
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #10
  %15788 = call ptr @__errno_location() #11
  %15789 = load i32, ptr %15788, align 4, !tbaa !5
  store i32 %15789, ptr %310, align 4, !tbaa !5
  %15790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15791 = call i32 @s2n_print_stacktrace(ptr noundef %15790)
  %15792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15793 = trunc i8 %15792 to i1
  br i1 %15793, label %15794, label %15816

15794:                                            ; preds = %15787
  %15795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15796 = call i32 @fileno(ptr noundef %15795) #10
  %15797 = call i32 @isatty(i32 noundef %15796) #10
  %15798 = icmp ne i32 %15797, 0
  br i1 %15798, label %15799, label %15816

15799:                                            ; preds = %15794
  %15800 = load i32, ptr %310, align 4, !tbaa !5
  %15801 = call ptr @__errno_location() #11
  store i32 %15800, ptr %15801, align 4, !tbaa !5
  %15802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15803 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15805, ptr noundef @.str.4)
  %15807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15808 = load i32, ptr %15807, align 4, !tbaa !5
  %15809 = call ptr @s2n_strerror_debug(i32 noundef %15808, ptr noundef @.str.4)
  %15810 = call ptr @__errno_location() #11
  %15811 = load i32, ptr %15810, align 4, !tbaa !5
  %15812 = call ptr @strerror(i32 noundef %15811) #10
  %15813 = call ptr @__errno_location() #11
  %15814 = load i32, ptr %15813, align 4, !tbaa !5
  %15815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15802, ptr noundef @.str.2, i32 noundef %15803, ptr noundef @.str.189, ptr noundef @.str.1, i32 noundef 761, ptr noundef %15806, ptr noundef %15809, ptr noundef %15812, i32 noundef %15814) #10
  br label %15833

15816:                                            ; preds = %15794, %15787
  %15817 = load i32, ptr %310, align 4, !tbaa !5
  %15818 = call ptr @__errno_location() #11
  store i32 %15817, ptr %15818, align 4, !tbaa !5
  %15819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15820 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15822, ptr noundef @.str.4)
  %15824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15825 = load i32, ptr %15824, align 4, !tbaa !5
  %15826 = call ptr @s2n_strerror_debug(i32 noundef %15825, ptr noundef @.str.4)
  %15827 = call ptr @__errno_location() #11
  %15828 = load i32, ptr %15827, align 4, !tbaa !5
  %15829 = call ptr @strerror(i32 noundef %15828) #10
  %15830 = call ptr @__errno_location() #11
  %15831 = load i32, ptr %15830, align 4, !tbaa !5
  %15832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15819, ptr noundef @.str.5, i32 noundef %15820, ptr noundef @.str.189, ptr noundef @.str.1, i32 noundef 761, ptr noundef %15823, ptr noundef %15826, ptr noundef %15829, i32 noundef %15831) #10
  br label %15833

15833:                                            ; preds = %15816, %15799
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #10
  br label %15834

15834:                                            ; preds = %15833
  br label %15835

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

15836:                                            ; No predecessors!
  br label %15837

15837:                                            ; preds = %15836
  br label %15838

15838:                                            ; preds = %15837, %15776
  br label %15839

15839:                                            ; preds = %15838
  br label %15840

15840:                                            ; preds = %15839
  br label %15841

15841:                                            ; preds = %15840
  %15842 = load i32, ptr @test_count, align 4, !tbaa !5
  %15843 = add nsw i32 %15842, 1
  store i32 %15843, ptr @test_count, align 4, !tbaa !5
  %15844 = load ptr, ptr %12, align 8, !tbaa !9
  %15845 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.186, ptr noundef %15844)
  %15846 = getelementptr inbounds %struct.s2n_result, ptr %311, i32 0, i32 0
  store i32 %15845, ptr %15846, align 4
  %15847 = getelementptr inbounds %struct.s2n_result, ptr %311, i32 0, i32 0
  %15848 = load i32, ptr %15847, align 4
  %15849 = call zeroext i1 @s2n_result_is_ok(i32 %15848)
  br i1 %15849, label %15903, label %15850

15850:                                            ; preds = %15841
  br label %15851

15851:                                            ; preds = %15850
  br label %15852

15852:                                            ; preds = %15851
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #10
  %15853 = call ptr @__errno_location() #11
  %15854 = load i32, ptr %15853, align 4, !tbaa !5
  store i32 %15854, ptr %312, align 4, !tbaa !5
  %15855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15856 = call i32 @s2n_print_stacktrace(ptr noundef %15855)
  %15857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15858 = trunc i8 %15857 to i1
  br i1 %15858, label %15859, label %15881

15859:                                            ; preds = %15852
  %15860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15861 = call i32 @fileno(ptr noundef %15860) #10
  %15862 = call i32 @isatty(i32 noundef %15861) #10
  %15863 = icmp ne i32 %15862, 0
  br i1 %15863, label %15864, label %15881

15864:                                            ; preds = %15859
  %15865 = load i32, ptr %312, align 4, !tbaa !5
  %15866 = call ptr @__errno_location() #11
  store i32 %15865, ptr %15866, align 4, !tbaa !5
  %15867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15868 = load i32, ptr @test_count, align 4, !tbaa !5
  %15869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15870 = load i32, ptr %15869, align 4, !tbaa !5
  %15871 = call ptr @s2n_strerror(i32 noundef %15870, ptr noundef @.str.4)
  %15872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15873 = load i32, ptr %15872, align 4, !tbaa !5
  %15874 = call ptr @s2n_strerror_debug(i32 noundef %15873, ptr noundef @.str.4)
  %15875 = call ptr @__errno_location() #11
  %15876 = load i32, ptr %15875, align 4, !tbaa !5
  %15877 = call ptr @strerror(i32 noundef %15876) #10
  %15878 = call ptr @__errno_location() #11
  %15879 = load i32, ptr %15878, align 4, !tbaa !5
  %15880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15867, ptr noundef @.str.2, i32 noundef %15868, ptr noundef @.str.190, ptr noundef @.str.1, i32 noundef 762, ptr noundef %15871, ptr noundef %15874, ptr noundef %15877, i32 noundef %15879) #10
  br label %15898

15881:                                            ; preds = %15859, %15852
  %15882 = load i32, ptr %312, align 4, !tbaa !5
  %15883 = call ptr @__errno_location() #11
  store i32 %15882, ptr %15883, align 4, !tbaa !5
  %15884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15885 = load i32, ptr @test_count, align 4, !tbaa !5
  %15886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15887 = load i32, ptr %15886, align 4, !tbaa !5
  %15888 = call ptr @s2n_strerror(i32 noundef %15887, ptr noundef @.str.4)
  %15889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15890 = load i32, ptr %15889, align 4, !tbaa !5
  %15891 = call ptr @s2n_strerror_debug(i32 noundef %15890, ptr noundef @.str.4)
  %15892 = call ptr @__errno_location() #11
  %15893 = load i32, ptr %15892, align 4, !tbaa !5
  %15894 = call ptr @strerror(i32 noundef %15893) #10
  %15895 = call ptr @__errno_location() #11
  %15896 = load i32, ptr %15895, align 4, !tbaa !5
  %15897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15884, ptr noundef @.str.5, i32 noundef %15885, ptr noundef @.str.190, ptr noundef @.str.1, i32 noundef 762, ptr noundef %15888, ptr noundef %15891, ptr noundef %15894, i32 noundef %15896) #10
  br label %15898

15898:                                            ; preds = %15881, %15864
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #10
  br label %15899

15899:                                            ; preds = %15898
  br label %15900

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

15901:                                            ; No predecessors!
  br label %15902

15902:                                            ; preds = %15901
  br label %15903

15903:                                            ; preds = %15902, %15841
  br label %15904

15904:                                            ; preds = %15903
  br label %15905

15905:                                            ; preds = %15904
  %15906 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %15906, label %15907, label %16038

15907:                                            ; preds = %15905
  br label %15908

15908:                                            ; preds = %15907
  %15909 = load i32, ptr @test_count, align 4, !tbaa !5
  %15910 = add nsw i32 %15909, 1
  store i32 %15910, ptr @test_count, align 4, !tbaa !5
  %15911 = load ptr, ptr %18, align 8, !tbaa !9
  %15912 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.46, ptr noundef %15911)
  %15913 = getelementptr inbounds %struct.s2n_result, ptr %313, i32 0, i32 0
  store i32 %15912, ptr %15913, align 4
  %15914 = getelementptr inbounds %struct.s2n_result, ptr %313, i32 0, i32 0
  %15915 = load i32, ptr %15914, align 4
  %15916 = call zeroext i1 @s2n_result_is_ok(i32 %15915)
  br i1 %15916, label %15970, label %15917

15917:                                            ; preds = %15908
  br label %15918

15918:                                            ; preds = %15917
  br label %15919

15919:                                            ; preds = %15918
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #10
  %15920 = call ptr @__errno_location() #11
  %15921 = load i32, ptr %15920, align 4, !tbaa !5
  store i32 %15921, ptr %314, align 4, !tbaa !5
  %15922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15923 = call i32 @s2n_print_stacktrace(ptr noundef %15922)
  %15924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15925 = trunc i8 %15924 to i1
  br i1 %15925, label %15926, label %15948

15926:                                            ; preds = %15919
  %15927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15928 = call i32 @fileno(ptr noundef %15927) #10
  %15929 = call i32 @isatty(i32 noundef %15928) #10
  %15930 = icmp ne i32 %15929, 0
  br i1 %15930, label %15931, label %15948

15931:                                            ; preds = %15926
  %15932 = load i32, ptr %314, align 4, !tbaa !5
  %15933 = call ptr @__errno_location() #11
  store i32 %15932, ptr %15933, align 4, !tbaa !5
  %15934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15935 = load i32, ptr @test_count, align 4, !tbaa !5
  %15936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15937 = load i32, ptr %15936, align 4, !tbaa !5
  %15938 = call ptr @s2n_strerror(i32 noundef %15937, ptr noundef @.str.4)
  %15939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15940 = load i32, ptr %15939, align 4, !tbaa !5
  %15941 = call ptr @s2n_strerror_debug(i32 noundef %15940, ptr noundef @.str.4)
  %15942 = call ptr @__errno_location() #11
  %15943 = load i32, ptr %15942, align 4, !tbaa !5
  %15944 = call ptr @strerror(i32 noundef %15943) #10
  %15945 = call ptr @__errno_location() #11
  %15946 = load i32, ptr %15945, align 4, !tbaa !5
  %15947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15934, ptr noundef @.str.2, i32 noundef %15935, ptr noundef @.str.191, ptr noundef @.str.1, i32 noundef 765, ptr noundef %15938, ptr noundef %15941, ptr noundef %15944, i32 noundef %15946) #10
  br label %15965

15948:                                            ; preds = %15926, %15919
  %15949 = load i32, ptr %314, align 4, !tbaa !5
  %15950 = call ptr @__errno_location() #11
  store i32 %15949, ptr %15950, align 4, !tbaa !5
  %15951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15952 = load i32, ptr @test_count, align 4, !tbaa !5
  %15953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15954 = load i32, ptr %15953, align 4, !tbaa !5
  %15955 = call ptr @s2n_strerror(i32 noundef %15954, ptr noundef @.str.4)
  %15956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15957 = load i32, ptr %15956, align 4, !tbaa !5
  %15958 = call ptr @s2n_strerror_debug(i32 noundef %15957, ptr noundef @.str.4)
  %15959 = call ptr @__errno_location() #11
  %15960 = load i32, ptr %15959, align 4, !tbaa !5
  %15961 = call ptr @strerror(i32 noundef %15960) #10
  %15962 = call ptr @__errno_location() #11
  %15963 = load i32, ptr %15962, align 4, !tbaa !5
  %15964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15951, ptr noundef @.str.5, i32 noundef %15952, ptr noundef @.str.191, ptr noundef @.str.1, i32 noundef 765, ptr noundef %15955, ptr noundef %15958, ptr noundef %15961, i32 noundef %15963) #10
  br label %15965

15965:                                            ; preds = %15948, %15931
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #10
  br label %15966

15966:                                            ; preds = %15965
  br label %15967

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

15968:                                            ; No predecessors!
  br label %15969

15969:                                            ; preds = %15968
  br label %15970

15970:                                            ; preds = %15969, %15908
  br label %15971

15971:                                            ; preds = %15970
  br label %15972

15972:                                            ; preds = %15971
  br label %15973

15973:                                            ; preds = %15972
  %15974 = load i32, ptr @test_count, align 4, !tbaa !5
  %15975 = add nsw i32 %15974, 1
  store i32 %15975, ptr @test_count, align 4, !tbaa !5
  %15976 = load ptr, ptr %18, align 8, !tbaa !9
  %15977 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.186, ptr noundef %15976)
  %15978 = getelementptr inbounds %struct.s2n_result, ptr %315, i32 0, i32 0
  store i32 %15977, ptr %15978, align 4
  %15979 = getelementptr inbounds %struct.s2n_result, ptr %315, i32 0, i32 0
  %15980 = load i32, ptr %15979, align 4
  %15981 = call zeroext i1 @s2n_result_is_ok(i32 %15980)
  br i1 %15981, label %16035, label %15982

15982:                                            ; preds = %15973
  br label %15983

15983:                                            ; preds = %15982
  br label %15984

15984:                                            ; preds = %15983
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #10
  %15985 = call ptr @__errno_location() #11
  %15986 = load i32, ptr %15985, align 4, !tbaa !5
  store i32 %15986, ptr %316, align 4, !tbaa !5
  %15987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15988 = call i32 @s2n_print_stacktrace(ptr noundef %15987)
  %15989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15990 = trunc i8 %15989 to i1
  br i1 %15990, label %15991, label %16013

15991:                                            ; preds = %15984
  %15992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15993 = call i32 @fileno(ptr noundef %15992) #10
  %15994 = call i32 @isatty(i32 noundef %15993) #10
  %15995 = icmp ne i32 %15994, 0
  br i1 %15995, label %15996, label %16013

15996:                                            ; preds = %15991
  %15997 = load i32, ptr %316, align 4, !tbaa !5
  %15998 = call ptr @__errno_location() #11
  store i32 %15997, ptr %15998, align 4, !tbaa !5
  %15999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16000 = load i32, ptr @test_count, align 4, !tbaa !5
  %16001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16002 = load i32, ptr %16001, align 4, !tbaa !5
  %16003 = call ptr @s2n_strerror(i32 noundef %16002, ptr noundef @.str.4)
  %16004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16005 = load i32, ptr %16004, align 4, !tbaa !5
  %16006 = call ptr @s2n_strerror_debug(i32 noundef %16005, ptr noundef @.str.4)
  %16007 = call ptr @__errno_location() #11
  %16008 = load i32, ptr %16007, align 4, !tbaa !5
  %16009 = call ptr @strerror(i32 noundef %16008) #10
  %16010 = call ptr @__errno_location() #11
  %16011 = load i32, ptr %16010, align 4, !tbaa !5
  %16012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15999, ptr noundef @.str.2, i32 noundef %16000, ptr noundef @.str.192, ptr noundef @.str.1, i32 noundef 766, ptr noundef %16003, ptr noundef %16006, ptr noundef %16009, i32 noundef %16011) #10
  br label %16030

16013:                                            ; preds = %15991, %15984
  %16014 = load i32, ptr %316, align 4, !tbaa !5
  %16015 = call ptr @__errno_location() #11
  store i32 %16014, ptr %16015, align 4, !tbaa !5
  %16016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16017 = load i32, ptr @test_count, align 4, !tbaa !5
  %16018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16019 = load i32, ptr %16018, align 4, !tbaa !5
  %16020 = call ptr @s2n_strerror(i32 noundef %16019, ptr noundef @.str.4)
  %16021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16022 = load i32, ptr %16021, align 4, !tbaa !5
  %16023 = call ptr @s2n_strerror_debug(i32 noundef %16022, ptr noundef @.str.4)
  %16024 = call ptr @__errno_location() #11
  %16025 = load i32, ptr %16024, align 4, !tbaa !5
  %16026 = call ptr @strerror(i32 noundef %16025) #10
  %16027 = call ptr @__errno_location() #11
  %16028 = load i32, ptr %16027, align 4, !tbaa !5
  %16029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16016, ptr noundef @.str.5, i32 noundef %16017, ptr noundef @.str.192, ptr noundef @.str.1, i32 noundef 766, ptr noundef %16020, ptr noundef %16023, ptr noundef %16026, i32 noundef %16028) #10
  br label %16030

16030:                                            ; preds = %16013, %15996
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #10
  br label %16031

16031:                                            ; preds = %16030
  br label %16032

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

16033:                                            ; No predecessors!
  br label %16034

16034:                                            ; preds = %16033
  br label %16035

16035:                                            ; preds = %16034, %15973
  br label %16036

16036:                                            ; preds = %16035
  br label %16037

16037:                                            ; preds = %16036
  br label %16038

16038:                                            ; preds = %16037, %15905
  %16039 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %16039, label %16040, label %16236

16040:                                            ; preds = %16038
  br label %16041

16041:                                            ; preds = %16040
  %16042 = load i32, ptr @test_count, align 4, !tbaa !5
  %16043 = add nsw i32 %16042, 1
  store i32 %16043, ptr @test_count, align 4, !tbaa !5
  %16044 = load ptr, ptr %10, align 8, !tbaa !9
  %16045 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.193, ptr noundef %16044)
  %16046 = getelementptr inbounds %struct.s2n_result, ptr %317, i32 0, i32 0
  store i32 %16045, ptr %16046, align 4
  %16047 = getelementptr inbounds %struct.s2n_result, ptr %317, i32 0, i32 0
  %16048 = load i32, ptr %16047, align 4
  %16049 = call zeroext i1 @s2n_result_is_ok(i32 %16048)
  br i1 %16049, label %16103, label %16050

16050:                                            ; preds = %16041
  br label %16051

16051:                                            ; preds = %16050
  br label %16052

16052:                                            ; preds = %16051
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #10
  %16053 = call ptr @__errno_location() #11
  %16054 = load i32, ptr %16053, align 4, !tbaa !5
  store i32 %16054, ptr %318, align 4, !tbaa !5
  %16055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16056 = call i32 @s2n_print_stacktrace(ptr noundef %16055)
  %16057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16058 = trunc i8 %16057 to i1
  br i1 %16058, label %16059, label %16081

16059:                                            ; preds = %16052
  %16060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16061 = call i32 @fileno(ptr noundef %16060) #10
  %16062 = call i32 @isatty(i32 noundef %16061) #10
  %16063 = icmp ne i32 %16062, 0
  br i1 %16063, label %16064, label %16081

16064:                                            ; preds = %16059
  %16065 = load i32, ptr %318, align 4, !tbaa !5
  %16066 = call ptr @__errno_location() #11
  store i32 %16065, ptr %16066, align 4, !tbaa !5
  %16067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16068 = load i32, ptr @test_count, align 4, !tbaa !5
  %16069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16070 = load i32, ptr %16069, align 4, !tbaa !5
  %16071 = call ptr @s2n_strerror(i32 noundef %16070, ptr noundef @.str.4)
  %16072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16073 = load i32, ptr %16072, align 4, !tbaa !5
  %16074 = call ptr @s2n_strerror_debug(i32 noundef %16073, ptr noundef @.str.4)
  %16075 = call ptr @__errno_location() #11
  %16076 = load i32, ptr %16075, align 4, !tbaa !5
  %16077 = call ptr @strerror(i32 noundef %16076) #10
  %16078 = call ptr @__errno_location() #11
  %16079 = load i32, ptr %16078, align 4, !tbaa !5
  %16080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16067, ptr noundef @.str.2, i32 noundef %16068, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 771, ptr noundef %16071, ptr noundef %16074, ptr noundef %16077, i32 noundef %16079) #10
  br label %16098

16081:                                            ; preds = %16059, %16052
  %16082 = load i32, ptr %318, align 4, !tbaa !5
  %16083 = call ptr @__errno_location() #11
  store i32 %16082, ptr %16083, align 4, !tbaa !5
  %16084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16085 = load i32, ptr @test_count, align 4, !tbaa !5
  %16086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16087 = load i32, ptr %16086, align 4, !tbaa !5
  %16088 = call ptr @s2n_strerror(i32 noundef %16087, ptr noundef @.str.4)
  %16089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16090 = load i32, ptr %16089, align 4, !tbaa !5
  %16091 = call ptr @s2n_strerror_debug(i32 noundef %16090, ptr noundef @.str.4)
  %16092 = call ptr @__errno_location() #11
  %16093 = load i32, ptr %16092, align 4, !tbaa !5
  %16094 = call ptr @strerror(i32 noundef %16093) #10
  %16095 = call ptr @__errno_location() #11
  %16096 = load i32, ptr %16095, align 4, !tbaa !5
  %16097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16084, ptr noundef @.str.5, i32 noundef %16085, ptr noundef @.str.194, ptr noundef @.str.1, i32 noundef 771, ptr noundef %16088, ptr noundef %16091, ptr noundef %16094, i32 noundef %16096) #10
  br label %16098

16098:                                            ; preds = %16081, %16064
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #10
  br label %16099

16099:                                            ; preds = %16098
  br label %16100

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

16101:                                            ; No predecessors!
  br label %16102

16102:                                            ; preds = %16101
  br label %16103

16103:                                            ; preds = %16102, %16041
  br label %16104

16104:                                            ; preds = %16103
  br label %16105

16105:                                            ; preds = %16104
  br label %16106

16106:                                            ; preds = %16105
  %16107 = load i32, ptr @test_count, align 4, !tbaa !5
  %16108 = add nsw i32 %16107, 1
  store i32 %16108, ptr @test_count, align 4, !tbaa !5
  %16109 = load ptr, ptr %18, align 8, !tbaa !9
  %16110 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.193, ptr noundef %16109)
  %16111 = getelementptr inbounds %struct.s2n_result, ptr %319, i32 0, i32 0
  store i32 %16110, ptr %16111, align 4
  %16112 = getelementptr inbounds %struct.s2n_result, ptr %319, i32 0, i32 0
  %16113 = load i32, ptr %16112, align 4
  %16114 = call zeroext i1 @s2n_result_is_ok(i32 %16113)
  br i1 %16114, label %16168, label %16115

16115:                                            ; preds = %16106
  br label %16116

16116:                                            ; preds = %16115
  br label %16117

16117:                                            ; preds = %16116
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #10
  %16118 = call ptr @__errno_location() #11
  %16119 = load i32, ptr %16118, align 4, !tbaa !5
  store i32 %16119, ptr %320, align 4, !tbaa !5
  %16120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16121 = call i32 @s2n_print_stacktrace(ptr noundef %16120)
  %16122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16123 = trunc i8 %16122 to i1
  br i1 %16123, label %16124, label %16146

16124:                                            ; preds = %16117
  %16125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16126 = call i32 @fileno(ptr noundef %16125) #10
  %16127 = call i32 @isatty(i32 noundef %16126) #10
  %16128 = icmp ne i32 %16127, 0
  br i1 %16128, label %16129, label %16146

16129:                                            ; preds = %16124
  %16130 = load i32, ptr %320, align 4, !tbaa !5
  %16131 = call ptr @__errno_location() #11
  store i32 %16130, ptr %16131, align 4, !tbaa !5
  %16132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16133 = load i32, ptr @test_count, align 4, !tbaa !5
  %16134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16135 = load i32, ptr %16134, align 4, !tbaa !5
  %16136 = call ptr @s2n_strerror(i32 noundef %16135, ptr noundef @.str.4)
  %16137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16138 = load i32, ptr %16137, align 4, !tbaa !5
  %16139 = call ptr @s2n_strerror_debug(i32 noundef %16138, ptr noundef @.str.4)
  %16140 = call ptr @__errno_location() #11
  %16141 = load i32, ptr %16140, align 4, !tbaa !5
  %16142 = call ptr @strerror(i32 noundef %16141) #10
  %16143 = call ptr @__errno_location() #11
  %16144 = load i32, ptr %16143, align 4, !tbaa !5
  %16145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16132, ptr noundef @.str.2, i32 noundef %16133, ptr noundef @.str.195, ptr noundef @.str.1, i32 noundef 773, ptr noundef %16136, ptr noundef %16139, ptr noundef %16142, i32 noundef %16144) #10
  br label %16163

16146:                                            ; preds = %16124, %16117
  %16147 = load i32, ptr %320, align 4, !tbaa !5
  %16148 = call ptr @__errno_location() #11
  store i32 %16147, ptr %16148, align 4, !tbaa !5
  %16149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16150 = load i32, ptr @test_count, align 4, !tbaa !5
  %16151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16152 = load i32, ptr %16151, align 4, !tbaa !5
  %16153 = call ptr @s2n_strerror(i32 noundef %16152, ptr noundef @.str.4)
  %16154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16155 = load i32, ptr %16154, align 4, !tbaa !5
  %16156 = call ptr @s2n_strerror_debug(i32 noundef %16155, ptr noundef @.str.4)
  %16157 = call ptr @__errno_location() #11
  %16158 = load i32, ptr %16157, align 4, !tbaa !5
  %16159 = call ptr @strerror(i32 noundef %16158) #10
  %16160 = call ptr @__errno_location() #11
  %16161 = load i32, ptr %16160, align 4, !tbaa !5
  %16162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16149, ptr noundef @.str.5, i32 noundef %16150, ptr noundef @.str.195, ptr noundef @.str.1, i32 noundef 773, ptr noundef %16153, ptr noundef %16156, ptr noundef %16159, i32 noundef %16161) #10
  br label %16163

16163:                                            ; preds = %16146, %16129
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #10
  br label %16164

16164:                                            ; preds = %16163
  br label %16165

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

16166:                                            ; No predecessors!
  br label %16167

16167:                                            ; preds = %16166
  br label %16168

16168:                                            ; preds = %16167, %16106
  br label %16169

16169:                                            ; preds = %16168
  br label %16170

16170:                                            ; preds = %16169
  br label %16171

16171:                                            ; preds = %16170
  %16172 = load i32, ptr @test_count, align 4, !tbaa !5
  %16173 = add nsw i32 %16172, 1
  store i32 %16173, ptr @test_count, align 4, !tbaa !5
  %16174 = load ptr, ptr %12, align 8, !tbaa !9
  %16175 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20230317, ptr noundef @.str.193, ptr noundef %16174)
  %16176 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  store i32 %16175, ptr %16176, align 4
  %16177 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  %16178 = load i32, ptr %16177, align 4
  %16179 = call zeroext i1 @s2n_result_is_ok(i32 %16178)
  br i1 %16179, label %16233, label %16180

16180:                                            ; preds = %16171
  br label %16181

16181:                                            ; preds = %16180
  br label %16182

16182:                                            ; preds = %16181
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #10
  %16183 = call ptr @__errno_location() #11
  %16184 = load i32, ptr %16183, align 4, !tbaa !5
  store i32 %16184, ptr %322, align 4, !tbaa !5
  %16185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16186 = call i32 @s2n_print_stacktrace(ptr noundef %16185)
  %16187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16188 = trunc i8 %16187 to i1
  br i1 %16188, label %16189, label %16211

16189:                                            ; preds = %16182
  %16190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16191 = call i32 @fileno(ptr noundef %16190) #10
  %16192 = call i32 @isatty(i32 noundef %16191) #10
  %16193 = icmp ne i32 %16192, 0
  br i1 %16193, label %16194, label %16211

16194:                                            ; preds = %16189
  %16195 = load i32, ptr %322, align 4, !tbaa !5
  %16196 = call ptr @__errno_location() #11
  store i32 %16195, ptr %16196, align 4, !tbaa !5
  %16197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16198 = load i32, ptr @test_count, align 4, !tbaa !5
  %16199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16200 = load i32, ptr %16199, align 4, !tbaa !5
  %16201 = call ptr @s2n_strerror(i32 noundef %16200, ptr noundef @.str.4)
  %16202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16203 = load i32, ptr %16202, align 4, !tbaa !5
  %16204 = call ptr @s2n_strerror_debug(i32 noundef %16203, ptr noundef @.str.4)
  %16205 = call ptr @__errno_location() #11
  %16206 = load i32, ptr %16205, align 4, !tbaa !5
  %16207 = call ptr @strerror(i32 noundef %16206) #10
  %16208 = call ptr @__errno_location() #11
  %16209 = load i32, ptr %16208, align 4, !tbaa !5
  %16210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16197, ptr noundef @.str.2, i32 noundef %16198, ptr noundef @.str.196, ptr noundef @.str.1, i32 noundef 775, ptr noundef %16201, ptr noundef %16204, ptr noundef %16207, i32 noundef %16209) #10
  br label %16228

16211:                                            ; preds = %16189, %16182
  %16212 = load i32, ptr %322, align 4, !tbaa !5
  %16213 = call ptr @__errno_location() #11
  store i32 %16212, ptr %16213, align 4, !tbaa !5
  %16214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16215 = load i32, ptr @test_count, align 4, !tbaa !5
  %16216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16217 = load i32, ptr %16216, align 4, !tbaa !5
  %16218 = call ptr @s2n_strerror(i32 noundef %16217, ptr noundef @.str.4)
  %16219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16220 = load i32, ptr %16219, align 4, !tbaa !5
  %16221 = call ptr @s2n_strerror_debug(i32 noundef %16220, ptr noundef @.str.4)
  %16222 = call ptr @__errno_location() #11
  %16223 = load i32, ptr %16222, align 4, !tbaa !5
  %16224 = call ptr @strerror(i32 noundef %16223) #10
  %16225 = call ptr @__errno_location() #11
  %16226 = load i32, ptr %16225, align 4, !tbaa !5
  %16227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16214, ptr noundef @.str.5, i32 noundef %16215, ptr noundef @.str.196, ptr noundef @.str.1, i32 noundef 775, ptr noundef %16218, ptr noundef %16221, ptr noundef %16224, i32 noundef %16226) #10
  br label %16228

16228:                                            ; preds = %16211, %16194
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #10
  br label %16229

16229:                                            ; preds = %16228
  br label %16230

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

16231:                                            ; No predecessors!
  br label %16232

16232:                                            ; preds = %16231
  br label %16233

16233:                                            ; preds = %16232, %16171
  br label %16234

16234:                                            ; preds = %16233
  br label %16235

16235:                                            ; preds = %16234
  br label %16236

16236:                                            ; preds = %16235, %16038
  br label %16237

16237:                                            ; preds = %16236
  %16238 = load i32, ptr @test_count, align 4, !tbaa !5
  %16239 = add nsw i32 %16238, 1
  store i32 %16239, ptr @test_count, align 4, !tbaa !5
  %16240 = load ptr, ptr %10, align 8, !tbaa !9
  %16241 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.37, ptr noundef %16240)
  %16242 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  store i32 %16241, ptr %16242, align 4
  %16243 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  %16244 = load i32, ptr %16243, align 4
  %16245 = call zeroext i1 @s2n_result_is_ok(i32 %16244)
  br i1 %16245, label %16299, label %16246

16246:                                            ; preds = %16237
  br label %16247

16247:                                            ; preds = %16246
  br label %16248

16248:                                            ; preds = %16247
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #10
  %16249 = call ptr @__errno_location() #11
  %16250 = load i32, ptr %16249, align 4, !tbaa !5
  store i32 %16250, ptr %324, align 4, !tbaa !5
  %16251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16252 = call i32 @s2n_print_stacktrace(ptr noundef %16251)
  %16253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16254 = trunc i8 %16253 to i1
  br i1 %16254, label %16255, label %16277

16255:                                            ; preds = %16248
  %16256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16257 = call i32 @fileno(ptr noundef %16256) #10
  %16258 = call i32 @isatty(i32 noundef %16257) #10
  %16259 = icmp ne i32 %16258, 0
  br i1 %16259, label %16260, label %16277

16260:                                            ; preds = %16255
  %16261 = load i32, ptr %324, align 4, !tbaa !5
  %16262 = call ptr @__errno_location() #11
  store i32 %16261, ptr %16262, align 4, !tbaa !5
  %16263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16264 = load i32, ptr @test_count, align 4, !tbaa !5
  %16265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16266 = load i32, ptr %16265, align 4, !tbaa !5
  %16267 = call ptr @s2n_strerror(i32 noundef %16266, ptr noundef @.str.4)
  %16268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16269 = load i32, ptr %16268, align 4, !tbaa !5
  %16270 = call ptr @s2n_strerror_debug(i32 noundef %16269, ptr noundef @.str.4)
  %16271 = call ptr @__errno_location() #11
  %16272 = load i32, ptr %16271, align 4, !tbaa !5
  %16273 = call ptr @strerror(i32 noundef %16272) #10
  %16274 = call ptr @__errno_location() #11
  %16275 = load i32, ptr %16274, align 4, !tbaa !5
  %16276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16263, ptr noundef @.str.2, i32 noundef %16264, ptr noundef @.str.197, ptr noundef @.str.1, i32 noundef 782, ptr noundef %16267, ptr noundef %16270, ptr noundef %16273, i32 noundef %16275) #10
  br label %16294

16277:                                            ; preds = %16255, %16248
  %16278 = load i32, ptr %324, align 4, !tbaa !5
  %16279 = call ptr @__errno_location() #11
  store i32 %16278, ptr %16279, align 4, !tbaa !5
  %16280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16281 = load i32, ptr @test_count, align 4, !tbaa !5
  %16282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16283 = load i32, ptr %16282, align 4, !tbaa !5
  %16284 = call ptr @s2n_strerror(i32 noundef %16283, ptr noundef @.str.4)
  %16285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16286 = load i32, ptr %16285, align 4, !tbaa !5
  %16287 = call ptr @s2n_strerror_debug(i32 noundef %16286, ptr noundef @.str.4)
  %16288 = call ptr @__errno_location() #11
  %16289 = load i32, ptr %16288, align 4, !tbaa !5
  %16290 = call ptr @strerror(i32 noundef %16289) #10
  %16291 = call ptr @__errno_location() #11
  %16292 = load i32, ptr %16291, align 4, !tbaa !5
  %16293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16280, ptr noundef @.str.5, i32 noundef %16281, ptr noundef @.str.197, ptr noundef @.str.1, i32 noundef 782, ptr noundef %16284, ptr noundef %16287, ptr noundef %16290, i32 noundef %16292) #10
  br label %16294

16294:                                            ; preds = %16277, %16260
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #10
  br label %16295

16295:                                            ; preds = %16294
  br label %16296

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

16297:                                            ; No predecessors!
  br label %16298

16298:                                            ; preds = %16297
  br label %16299

16299:                                            ; preds = %16298, %16237
  br label %16300

16300:                                            ; preds = %16299
  br label %16301

16301:                                            ; preds = %16300
  br label %16302

16302:                                            ; preds = %16301
  %16303 = load i32, ptr @test_count, align 4, !tbaa !5
  %16304 = add nsw i32 %16303, 1
  store i32 %16304, ptr @test_count, align 4, !tbaa !5
  %16305 = load ptr, ptr %10, align 8, !tbaa !9
  %16306 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.46, ptr noundef %16305)
  %16307 = getelementptr inbounds %struct.s2n_result, ptr %325, i32 0, i32 0
  store i32 %16306, ptr %16307, align 4
  %16308 = getelementptr inbounds %struct.s2n_result, ptr %325, i32 0, i32 0
  %16309 = load i32, ptr %16308, align 4
  %16310 = call zeroext i1 @s2n_result_is_ok(i32 %16309)
  br i1 %16310, label %16364, label %16311

16311:                                            ; preds = %16302
  br label %16312

16312:                                            ; preds = %16311
  br label %16313

16313:                                            ; preds = %16312
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #10
  %16314 = call ptr @__errno_location() #11
  %16315 = load i32, ptr %16314, align 4, !tbaa !5
  store i32 %16315, ptr %326, align 4, !tbaa !5
  %16316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16317 = call i32 @s2n_print_stacktrace(ptr noundef %16316)
  %16318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16319 = trunc i8 %16318 to i1
  br i1 %16319, label %16320, label %16342

16320:                                            ; preds = %16313
  %16321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16322 = call i32 @fileno(ptr noundef %16321) #10
  %16323 = call i32 @isatty(i32 noundef %16322) #10
  %16324 = icmp ne i32 %16323, 0
  br i1 %16324, label %16325, label %16342

16325:                                            ; preds = %16320
  %16326 = load i32, ptr %326, align 4, !tbaa !5
  %16327 = call ptr @__errno_location() #11
  store i32 %16326, ptr %16327, align 4, !tbaa !5
  %16328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16329 = load i32, ptr @test_count, align 4, !tbaa !5
  %16330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16331 = load i32, ptr %16330, align 4, !tbaa !5
  %16332 = call ptr @s2n_strerror(i32 noundef %16331, ptr noundef @.str.4)
  %16333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16334 = load i32, ptr %16333, align 4, !tbaa !5
  %16335 = call ptr @s2n_strerror_debug(i32 noundef %16334, ptr noundef @.str.4)
  %16336 = call ptr @__errno_location() #11
  %16337 = load i32, ptr %16336, align 4, !tbaa !5
  %16338 = call ptr @strerror(i32 noundef %16337) #10
  %16339 = call ptr @__errno_location() #11
  %16340 = load i32, ptr %16339, align 4, !tbaa !5
  %16341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16328, ptr noundef @.str.2, i32 noundef %16329, ptr noundef @.str.198, ptr noundef @.str.1, i32 noundef 784, ptr noundef %16332, ptr noundef %16335, ptr noundef %16338, i32 noundef %16340) #10
  br label %16359

16342:                                            ; preds = %16320, %16313
  %16343 = load i32, ptr %326, align 4, !tbaa !5
  %16344 = call ptr @__errno_location() #11
  store i32 %16343, ptr %16344, align 4, !tbaa !5
  %16345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16346 = load i32, ptr @test_count, align 4, !tbaa !5
  %16347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16348 = load i32, ptr %16347, align 4, !tbaa !5
  %16349 = call ptr @s2n_strerror(i32 noundef %16348, ptr noundef @.str.4)
  %16350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16351 = load i32, ptr %16350, align 4, !tbaa !5
  %16352 = call ptr @s2n_strerror_debug(i32 noundef %16351, ptr noundef @.str.4)
  %16353 = call ptr @__errno_location() #11
  %16354 = load i32, ptr %16353, align 4, !tbaa !5
  %16355 = call ptr @strerror(i32 noundef %16354) #10
  %16356 = call ptr @__errno_location() #11
  %16357 = load i32, ptr %16356, align 4, !tbaa !5
  %16358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16345, ptr noundef @.str.5, i32 noundef %16346, ptr noundef @.str.198, ptr noundef @.str.1, i32 noundef 784, ptr noundef %16349, ptr noundef %16352, ptr noundef %16355, i32 noundef %16357) #10
  br label %16359

16359:                                            ; preds = %16342, %16325
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #10
  br label %16360

16360:                                            ; preds = %16359
  br label %16361

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

16362:                                            ; No predecessors!
  br label %16363

16363:                                            ; preds = %16362
  br label %16364

16364:                                            ; preds = %16363, %16302
  br label %16365

16365:                                            ; preds = %16364
  br label %16366

16366:                                            ; preds = %16365
  br label %16367

16367:                                            ; preds = %16366
  %16368 = load i32, ptr @test_count, align 4, !tbaa !5
  %16369 = add nsw i32 %16368, 1
  store i32 %16369, ptr @test_count, align 4, !tbaa !5
  %16370 = load ptr, ptr %10, align 8, !tbaa !9
  %16371 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.184, ptr noundef %16370)
  %16372 = getelementptr inbounds %struct.s2n_result, ptr %327, i32 0, i32 0
  store i32 %16371, ptr %16372, align 4
  %16373 = getelementptr inbounds %struct.s2n_result, ptr %327, i32 0, i32 0
  %16374 = load i32, ptr %16373, align 4
  %16375 = call zeroext i1 @s2n_result_is_ok(i32 %16374)
  br i1 %16375, label %16429, label %16376

16376:                                            ; preds = %16367
  br label %16377

16377:                                            ; preds = %16376
  br label %16378

16378:                                            ; preds = %16377
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #10
  %16379 = call ptr @__errno_location() #11
  %16380 = load i32, ptr %16379, align 4, !tbaa !5
  store i32 %16380, ptr %328, align 4, !tbaa !5
  %16381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16382 = call i32 @s2n_print_stacktrace(ptr noundef %16381)
  %16383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16384 = trunc i8 %16383 to i1
  br i1 %16384, label %16385, label %16407

16385:                                            ; preds = %16378
  %16386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16387 = call i32 @fileno(ptr noundef %16386) #10
  %16388 = call i32 @isatty(i32 noundef %16387) #10
  %16389 = icmp ne i32 %16388, 0
  br i1 %16389, label %16390, label %16407

16390:                                            ; preds = %16385
  %16391 = load i32, ptr %328, align 4, !tbaa !5
  %16392 = call ptr @__errno_location() #11
  store i32 %16391, ptr %16392, align 4, !tbaa !5
  %16393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16394 = load i32, ptr @test_count, align 4, !tbaa !5
  %16395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16396 = load i32, ptr %16395, align 4, !tbaa !5
  %16397 = call ptr @s2n_strerror(i32 noundef %16396, ptr noundef @.str.4)
  %16398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16399 = load i32, ptr %16398, align 4, !tbaa !5
  %16400 = call ptr @s2n_strerror_debug(i32 noundef %16399, ptr noundef @.str.4)
  %16401 = call ptr @__errno_location() #11
  %16402 = load i32, ptr %16401, align 4, !tbaa !5
  %16403 = call ptr @strerror(i32 noundef %16402) #10
  %16404 = call ptr @__errno_location() #11
  %16405 = load i32, ptr %16404, align 4, !tbaa !5
  %16406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16393, ptr noundef @.str.2, i32 noundef %16394, ptr noundef @.str.199, ptr noundef @.str.1, i32 noundef 786, ptr noundef %16397, ptr noundef %16400, ptr noundef %16403, i32 noundef %16405) #10
  br label %16424

16407:                                            ; preds = %16385, %16378
  %16408 = load i32, ptr %328, align 4, !tbaa !5
  %16409 = call ptr @__errno_location() #11
  store i32 %16408, ptr %16409, align 4, !tbaa !5
  %16410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16411 = load i32, ptr @test_count, align 4, !tbaa !5
  %16412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16413 = load i32, ptr %16412, align 4, !tbaa !5
  %16414 = call ptr @s2n_strerror(i32 noundef %16413, ptr noundef @.str.4)
  %16415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16416 = load i32, ptr %16415, align 4, !tbaa !5
  %16417 = call ptr @s2n_strerror_debug(i32 noundef %16416, ptr noundef @.str.4)
  %16418 = call ptr @__errno_location() #11
  %16419 = load i32, ptr %16418, align 4, !tbaa !5
  %16420 = call ptr @strerror(i32 noundef %16419) #10
  %16421 = call ptr @__errno_location() #11
  %16422 = load i32, ptr %16421, align 4, !tbaa !5
  %16423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16410, ptr noundef @.str.5, i32 noundef %16411, ptr noundef @.str.199, ptr noundef @.str.1, i32 noundef 786, ptr noundef %16414, ptr noundef %16417, ptr noundef %16420, i32 noundef %16422) #10
  br label %16424

16424:                                            ; preds = %16407, %16390
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #10
  br label %16425

16425:                                            ; preds = %16424
  br label %16426

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

16427:                                            ; No predecessors!
  br label %16428

16428:                                            ; preds = %16427
  br label %16429

16429:                                            ; preds = %16428, %16367
  br label %16430

16430:                                            ; preds = %16429
  br label %16431

16431:                                            ; preds = %16430
  br label %16432

16432:                                            ; preds = %16431
  %16433 = load i32, ptr @test_count, align 4, !tbaa !5
  %16434 = add nsw i32 %16433, 1
  store i32 %16434, ptr @test_count, align 4, !tbaa !5
  %16435 = load ptr, ptr %10, align 8, !tbaa !9
  %16436 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.186, ptr noundef %16435)
  %16437 = getelementptr inbounds %struct.s2n_result, ptr %329, i32 0, i32 0
  store i32 %16436, ptr %16437, align 4
  %16438 = getelementptr inbounds %struct.s2n_result, ptr %329, i32 0, i32 0
  %16439 = load i32, ptr %16438, align 4
  %16440 = call zeroext i1 @s2n_result_is_ok(i32 %16439)
  br i1 %16440, label %16494, label %16441

16441:                                            ; preds = %16432
  br label %16442

16442:                                            ; preds = %16441
  br label %16443

16443:                                            ; preds = %16442
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #10
  %16444 = call ptr @__errno_location() #11
  %16445 = load i32, ptr %16444, align 4, !tbaa !5
  store i32 %16445, ptr %330, align 4, !tbaa !5
  %16446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16447 = call i32 @s2n_print_stacktrace(ptr noundef %16446)
  %16448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16449 = trunc i8 %16448 to i1
  br i1 %16449, label %16450, label %16472

16450:                                            ; preds = %16443
  %16451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16452 = call i32 @fileno(ptr noundef %16451) #10
  %16453 = call i32 @isatty(i32 noundef %16452) #10
  %16454 = icmp ne i32 %16453, 0
  br i1 %16454, label %16455, label %16472

16455:                                            ; preds = %16450
  %16456 = load i32, ptr %330, align 4, !tbaa !5
  %16457 = call ptr @__errno_location() #11
  store i32 %16456, ptr %16457, align 4, !tbaa !5
  %16458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16459 = load i32, ptr @test_count, align 4, !tbaa !5
  %16460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16461 = load i32, ptr %16460, align 4, !tbaa !5
  %16462 = call ptr @s2n_strerror(i32 noundef %16461, ptr noundef @.str.4)
  %16463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16464 = load i32, ptr %16463, align 4, !tbaa !5
  %16465 = call ptr @s2n_strerror_debug(i32 noundef %16464, ptr noundef @.str.4)
  %16466 = call ptr @__errno_location() #11
  %16467 = load i32, ptr %16466, align 4, !tbaa !5
  %16468 = call ptr @strerror(i32 noundef %16467) #10
  %16469 = call ptr @__errno_location() #11
  %16470 = load i32, ptr %16469, align 4, !tbaa !5
  %16471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16458, ptr noundef @.str.2, i32 noundef %16459, ptr noundef @.str.200, ptr noundef @.str.1, i32 noundef 788, ptr noundef %16462, ptr noundef %16465, ptr noundef %16468, i32 noundef %16470) #10
  br label %16489

16472:                                            ; preds = %16450, %16443
  %16473 = load i32, ptr %330, align 4, !tbaa !5
  %16474 = call ptr @__errno_location() #11
  store i32 %16473, ptr %16474, align 4, !tbaa !5
  %16475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16476 = load i32, ptr @test_count, align 4, !tbaa !5
  %16477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16478 = load i32, ptr %16477, align 4, !tbaa !5
  %16479 = call ptr @s2n_strerror(i32 noundef %16478, ptr noundef @.str.4)
  %16480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16481 = load i32, ptr %16480, align 4, !tbaa !5
  %16482 = call ptr @s2n_strerror_debug(i32 noundef %16481, ptr noundef @.str.4)
  %16483 = call ptr @__errno_location() #11
  %16484 = load i32, ptr %16483, align 4, !tbaa !5
  %16485 = call ptr @strerror(i32 noundef %16484) #10
  %16486 = call ptr @__errno_location() #11
  %16487 = load i32, ptr %16486, align 4, !tbaa !5
  %16488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16475, ptr noundef @.str.5, i32 noundef %16476, ptr noundef @.str.200, ptr noundef @.str.1, i32 noundef 788, ptr noundef %16479, ptr noundef %16482, ptr noundef %16485, i32 noundef %16487) #10
  br label %16489

16489:                                            ; preds = %16472, %16455
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #10
  br label %16490

16490:                                            ; preds = %16489
  br label %16491

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

16492:                                            ; No predecessors!
  br label %16493

16493:                                            ; preds = %16492
  br label %16494

16494:                                            ; preds = %16493, %16432
  br label %16495

16495:                                            ; preds = %16494
  br label %16496

16496:                                            ; preds = %16495
  br label %16497

16497:                                            ; preds = %16496
  %16498 = load i32, ptr @test_count, align 4, !tbaa !5
  %16499 = add nsw i32 %16498, 1
  store i32 %16499, ptr @test_count, align 4, !tbaa !5
  %16500 = load ptr, ptr %10, align 8, !tbaa !9
  %16501 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.201, ptr noundef %16500)
  %16502 = getelementptr inbounds %struct.s2n_result, ptr %331, i32 0, i32 0
  store i32 %16501, ptr %16502, align 4
  %16503 = getelementptr inbounds %struct.s2n_result, ptr %331, i32 0, i32 0
  %16504 = load i32, ptr %16503, align 4
  %16505 = call zeroext i1 @s2n_result_is_ok(i32 %16504)
  br i1 %16505, label %16559, label %16506

16506:                                            ; preds = %16497
  br label %16507

16507:                                            ; preds = %16506
  br label %16508

16508:                                            ; preds = %16507
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #10
  %16509 = call ptr @__errno_location() #11
  %16510 = load i32, ptr %16509, align 4, !tbaa !5
  store i32 %16510, ptr %332, align 4, !tbaa !5
  %16511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16512 = call i32 @s2n_print_stacktrace(ptr noundef %16511)
  %16513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16514 = trunc i8 %16513 to i1
  br i1 %16514, label %16515, label %16537

16515:                                            ; preds = %16508
  %16516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16517 = call i32 @fileno(ptr noundef %16516) #10
  %16518 = call i32 @isatty(i32 noundef %16517) #10
  %16519 = icmp ne i32 %16518, 0
  br i1 %16519, label %16520, label %16537

16520:                                            ; preds = %16515
  %16521 = load i32, ptr %332, align 4, !tbaa !5
  %16522 = call ptr @__errno_location() #11
  store i32 %16521, ptr %16522, align 4, !tbaa !5
  %16523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16524 = load i32, ptr @test_count, align 4, !tbaa !5
  %16525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16526 = load i32, ptr %16525, align 4, !tbaa !5
  %16527 = call ptr @s2n_strerror(i32 noundef %16526, ptr noundef @.str.4)
  %16528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16529 = load i32, ptr %16528, align 4, !tbaa !5
  %16530 = call ptr @s2n_strerror_debug(i32 noundef %16529, ptr noundef @.str.4)
  %16531 = call ptr @__errno_location() #11
  %16532 = load i32, ptr %16531, align 4, !tbaa !5
  %16533 = call ptr @strerror(i32 noundef %16532) #10
  %16534 = call ptr @__errno_location() #11
  %16535 = load i32, ptr %16534, align 4, !tbaa !5
  %16536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16523, ptr noundef @.str.2, i32 noundef %16524, ptr noundef @.str.202, ptr noundef @.str.1, i32 noundef 790, ptr noundef %16527, ptr noundef %16530, ptr noundef %16533, i32 noundef %16535) #10
  br label %16554

16537:                                            ; preds = %16515, %16508
  %16538 = load i32, ptr %332, align 4, !tbaa !5
  %16539 = call ptr @__errno_location() #11
  store i32 %16538, ptr %16539, align 4, !tbaa !5
  %16540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16541 = load i32, ptr @test_count, align 4, !tbaa !5
  %16542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16543 = load i32, ptr %16542, align 4, !tbaa !5
  %16544 = call ptr @s2n_strerror(i32 noundef %16543, ptr noundef @.str.4)
  %16545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16546 = load i32, ptr %16545, align 4, !tbaa !5
  %16547 = call ptr @s2n_strerror_debug(i32 noundef %16546, ptr noundef @.str.4)
  %16548 = call ptr @__errno_location() #11
  %16549 = load i32, ptr %16548, align 4, !tbaa !5
  %16550 = call ptr @strerror(i32 noundef %16549) #10
  %16551 = call ptr @__errno_location() #11
  %16552 = load i32, ptr %16551, align 4, !tbaa !5
  %16553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16540, ptr noundef @.str.5, i32 noundef %16541, ptr noundef @.str.202, ptr noundef @.str.1, i32 noundef 790, ptr noundef %16544, ptr noundef %16547, ptr noundef %16550, i32 noundef %16552) #10
  br label %16554

16554:                                            ; preds = %16537, %16520
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #10
  br label %16555

16555:                                            ; preds = %16554
  br label %16556

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

16557:                                            ; No predecessors!
  br label %16558

16558:                                            ; preds = %16557
  br label %16559

16559:                                            ; preds = %16558, %16497
  br label %16560

16560:                                            ; preds = %16559
  br label %16561

16561:                                            ; preds = %16560
  br label %16562

16562:                                            ; preds = %16561
  %16563 = load i32, ptr @test_count, align 4, !tbaa !5
  %16564 = add nsw i32 %16563, 1
  store i32 %16564, ptr @test_count, align 4, !tbaa !5
  %16565 = load ptr, ptr %12, align 8, !tbaa !9
  %16566 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.46, ptr noundef %16565)
  %16567 = getelementptr inbounds %struct.s2n_result, ptr %333, i32 0, i32 0
  store i32 %16566, ptr %16567, align 4
  %16568 = getelementptr inbounds %struct.s2n_result, ptr %333, i32 0, i32 0
  %16569 = load i32, ptr %16568, align 4
  %16570 = call zeroext i1 @s2n_result_is_ok(i32 %16569)
  br i1 %16570, label %16624, label %16571

16571:                                            ; preds = %16562
  br label %16572

16572:                                            ; preds = %16571
  br label %16573

16573:                                            ; preds = %16572
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #10
  %16574 = call ptr @__errno_location() #11
  %16575 = load i32, ptr %16574, align 4, !tbaa !5
  store i32 %16575, ptr %334, align 4, !tbaa !5
  %16576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16577 = call i32 @s2n_print_stacktrace(ptr noundef %16576)
  %16578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16579 = trunc i8 %16578 to i1
  br i1 %16579, label %16580, label %16602

16580:                                            ; preds = %16573
  %16581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16582 = call i32 @fileno(ptr noundef %16581) #10
  %16583 = call i32 @isatty(i32 noundef %16582) #10
  %16584 = icmp ne i32 %16583, 0
  br i1 %16584, label %16585, label %16602

16585:                                            ; preds = %16580
  %16586 = load i32, ptr %334, align 4, !tbaa !5
  %16587 = call ptr @__errno_location() #11
  store i32 %16586, ptr %16587, align 4, !tbaa !5
  %16588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16589 = load i32, ptr @test_count, align 4, !tbaa !5
  %16590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16591 = load i32, ptr %16590, align 4, !tbaa !5
  %16592 = call ptr @s2n_strerror(i32 noundef %16591, ptr noundef @.str.4)
  %16593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16594 = load i32, ptr %16593, align 4, !tbaa !5
  %16595 = call ptr @s2n_strerror_debug(i32 noundef %16594, ptr noundef @.str.4)
  %16596 = call ptr @__errno_location() #11
  %16597 = load i32, ptr %16596, align 4, !tbaa !5
  %16598 = call ptr @strerror(i32 noundef %16597) #10
  %16599 = call ptr @__errno_location() #11
  %16600 = load i32, ptr %16599, align 4, !tbaa !5
  %16601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16588, ptr noundef @.str.2, i32 noundef %16589, ptr noundef @.str.203, ptr noundef @.str.1, i32 noundef 793, ptr noundef %16592, ptr noundef %16595, ptr noundef %16598, i32 noundef %16600) #10
  br label %16619

16602:                                            ; preds = %16580, %16573
  %16603 = load i32, ptr %334, align 4, !tbaa !5
  %16604 = call ptr @__errno_location() #11
  store i32 %16603, ptr %16604, align 4, !tbaa !5
  %16605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16606 = load i32, ptr @test_count, align 4, !tbaa !5
  %16607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16608 = load i32, ptr %16607, align 4, !tbaa !5
  %16609 = call ptr @s2n_strerror(i32 noundef %16608, ptr noundef @.str.4)
  %16610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16611 = load i32, ptr %16610, align 4, !tbaa !5
  %16612 = call ptr @s2n_strerror_debug(i32 noundef %16611, ptr noundef @.str.4)
  %16613 = call ptr @__errno_location() #11
  %16614 = load i32, ptr %16613, align 4, !tbaa !5
  %16615 = call ptr @strerror(i32 noundef %16614) #10
  %16616 = call ptr @__errno_location() #11
  %16617 = load i32, ptr %16616, align 4, !tbaa !5
  %16618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16605, ptr noundef @.str.5, i32 noundef %16606, ptr noundef @.str.203, ptr noundef @.str.1, i32 noundef 793, ptr noundef %16609, ptr noundef %16612, ptr noundef %16615, i32 noundef %16617) #10
  br label %16619

16619:                                            ; preds = %16602, %16585
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #10
  br label %16620

16620:                                            ; preds = %16619
  br label %16621

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

16622:                                            ; No predecessors!
  br label %16623

16623:                                            ; preds = %16622
  br label %16624

16624:                                            ; preds = %16623, %16562
  br label %16625

16625:                                            ; preds = %16624
  br label %16626

16626:                                            ; preds = %16625
  br label %16627

16627:                                            ; preds = %16626
  %16628 = load i32, ptr @test_count, align 4, !tbaa !5
  %16629 = add nsw i32 %16628, 1
  store i32 %16629, ptr @test_count, align 4, !tbaa !5
  %16630 = load ptr, ptr %12, align 8, !tbaa !9
  %16631 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.184, ptr noundef %16630)
  %16632 = getelementptr inbounds %struct.s2n_result, ptr %335, i32 0, i32 0
  store i32 %16631, ptr %16632, align 4
  %16633 = getelementptr inbounds %struct.s2n_result, ptr %335, i32 0, i32 0
  %16634 = load i32, ptr %16633, align 4
  %16635 = call zeroext i1 @s2n_result_is_ok(i32 %16634)
  br i1 %16635, label %16689, label %16636

16636:                                            ; preds = %16627
  br label %16637

16637:                                            ; preds = %16636
  br label %16638

16638:                                            ; preds = %16637
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #10
  %16639 = call ptr @__errno_location() #11
  %16640 = load i32, ptr %16639, align 4, !tbaa !5
  store i32 %16640, ptr %336, align 4, !tbaa !5
  %16641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16642 = call i32 @s2n_print_stacktrace(ptr noundef %16641)
  %16643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16644 = trunc i8 %16643 to i1
  br i1 %16644, label %16645, label %16667

16645:                                            ; preds = %16638
  %16646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16647 = call i32 @fileno(ptr noundef %16646) #10
  %16648 = call i32 @isatty(i32 noundef %16647) #10
  %16649 = icmp ne i32 %16648, 0
  br i1 %16649, label %16650, label %16667

16650:                                            ; preds = %16645
  %16651 = load i32, ptr %336, align 4, !tbaa !5
  %16652 = call ptr @__errno_location() #11
  store i32 %16651, ptr %16652, align 4, !tbaa !5
  %16653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16654 = load i32, ptr @test_count, align 4, !tbaa !5
  %16655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16656 = load i32, ptr %16655, align 4, !tbaa !5
  %16657 = call ptr @s2n_strerror(i32 noundef %16656, ptr noundef @.str.4)
  %16658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16659 = load i32, ptr %16658, align 4, !tbaa !5
  %16660 = call ptr @s2n_strerror_debug(i32 noundef %16659, ptr noundef @.str.4)
  %16661 = call ptr @__errno_location() #11
  %16662 = load i32, ptr %16661, align 4, !tbaa !5
  %16663 = call ptr @strerror(i32 noundef %16662) #10
  %16664 = call ptr @__errno_location() #11
  %16665 = load i32, ptr %16664, align 4, !tbaa !5
  %16666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16653, ptr noundef @.str.2, i32 noundef %16654, ptr noundef @.str.204, ptr noundef @.str.1, i32 noundef 795, ptr noundef %16657, ptr noundef %16660, ptr noundef %16663, i32 noundef %16665) #10
  br label %16684

16667:                                            ; preds = %16645, %16638
  %16668 = load i32, ptr %336, align 4, !tbaa !5
  %16669 = call ptr @__errno_location() #11
  store i32 %16668, ptr %16669, align 4, !tbaa !5
  %16670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16671 = load i32, ptr @test_count, align 4, !tbaa !5
  %16672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16673 = load i32, ptr %16672, align 4, !tbaa !5
  %16674 = call ptr @s2n_strerror(i32 noundef %16673, ptr noundef @.str.4)
  %16675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16676 = load i32, ptr %16675, align 4, !tbaa !5
  %16677 = call ptr @s2n_strerror_debug(i32 noundef %16676, ptr noundef @.str.4)
  %16678 = call ptr @__errno_location() #11
  %16679 = load i32, ptr %16678, align 4, !tbaa !5
  %16680 = call ptr @strerror(i32 noundef %16679) #10
  %16681 = call ptr @__errno_location() #11
  %16682 = load i32, ptr %16681, align 4, !tbaa !5
  %16683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16670, ptr noundef @.str.5, i32 noundef %16671, ptr noundef @.str.204, ptr noundef @.str.1, i32 noundef 795, ptr noundef %16674, ptr noundef %16677, ptr noundef %16680, i32 noundef %16682) #10
  br label %16684

16684:                                            ; preds = %16667, %16650
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #10
  br label %16685

16685:                                            ; preds = %16684
  br label %16686

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

16687:                                            ; No predecessors!
  br label %16688

16688:                                            ; preds = %16687
  br label %16689

16689:                                            ; preds = %16688, %16627
  br label %16690

16690:                                            ; preds = %16689
  br label %16691

16691:                                            ; preds = %16690
  br label %16692

16692:                                            ; preds = %16691
  %16693 = load i32, ptr @test_count, align 4, !tbaa !5
  %16694 = add nsw i32 %16693, 1
  store i32 %16694, ptr @test_count, align 4, !tbaa !5
  %16695 = load ptr, ptr %12, align 8, !tbaa !9
  %16696 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.186, ptr noundef %16695)
  %16697 = getelementptr inbounds %struct.s2n_result, ptr %337, i32 0, i32 0
  store i32 %16696, ptr %16697, align 4
  %16698 = getelementptr inbounds %struct.s2n_result, ptr %337, i32 0, i32 0
  %16699 = load i32, ptr %16698, align 4
  %16700 = call zeroext i1 @s2n_result_is_ok(i32 %16699)
  br i1 %16700, label %16754, label %16701

16701:                                            ; preds = %16692
  br label %16702

16702:                                            ; preds = %16701
  br label %16703

16703:                                            ; preds = %16702
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #10
  %16704 = call ptr @__errno_location() #11
  %16705 = load i32, ptr %16704, align 4, !tbaa !5
  store i32 %16705, ptr %338, align 4, !tbaa !5
  %16706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16707 = call i32 @s2n_print_stacktrace(ptr noundef %16706)
  %16708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16709 = trunc i8 %16708 to i1
  br i1 %16709, label %16710, label %16732

16710:                                            ; preds = %16703
  %16711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16712 = call i32 @fileno(ptr noundef %16711) #10
  %16713 = call i32 @isatty(i32 noundef %16712) #10
  %16714 = icmp ne i32 %16713, 0
  br i1 %16714, label %16715, label %16732

16715:                                            ; preds = %16710
  %16716 = load i32, ptr %338, align 4, !tbaa !5
  %16717 = call ptr @__errno_location() #11
  store i32 %16716, ptr %16717, align 4, !tbaa !5
  %16718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16719 = load i32, ptr @test_count, align 4, !tbaa !5
  %16720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16721 = load i32, ptr %16720, align 4, !tbaa !5
  %16722 = call ptr @s2n_strerror(i32 noundef %16721, ptr noundef @.str.4)
  %16723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16724 = load i32, ptr %16723, align 4, !tbaa !5
  %16725 = call ptr @s2n_strerror_debug(i32 noundef %16724, ptr noundef @.str.4)
  %16726 = call ptr @__errno_location() #11
  %16727 = load i32, ptr %16726, align 4, !tbaa !5
  %16728 = call ptr @strerror(i32 noundef %16727) #10
  %16729 = call ptr @__errno_location() #11
  %16730 = load i32, ptr %16729, align 4, !tbaa !5
  %16731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16718, ptr noundef @.str.2, i32 noundef %16719, ptr noundef @.str.205, ptr noundef @.str.1, i32 noundef 797, ptr noundef %16722, ptr noundef %16725, ptr noundef %16728, i32 noundef %16730) #10
  br label %16749

16732:                                            ; preds = %16710, %16703
  %16733 = load i32, ptr %338, align 4, !tbaa !5
  %16734 = call ptr @__errno_location() #11
  store i32 %16733, ptr %16734, align 4, !tbaa !5
  %16735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16736 = load i32, ptr @test_count, align 4, !tbaa !5
  %16737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16738 = load i32, ptr %16737, align 4, !tbaa !5
  %16739 = call ptr @s2n_strerror(i32 noundef %16738, ptr noundef @.str.4)
  %16740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16741 = load i32, ptr %16740, align 4, !tbaa !5
  %16742 = call ptr @s2n_strerror_debug(i32 noundef %16741, ptr noundef @.str.4)
  %16743 = call ptr @__errno_location() #11
  %16744 = load i32, ptr %16743, align 4, !tbaa !5
  %16745 = call ptr @strerror(i32 noundef %16744) #10
  %16746 = call ptr @__errno_location() #11
  %16747 = load i32, ptr %16746, align 4, !tbaa !5
  %16748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16735, ptr noundef @.str.5, i32 noundef %16736, ptr noundef @.str.205, ptr noundef @.str.1, i32 noundef 797, ptr noundef %16739, ptr noundef %16742, ptr noundef %16745, i32 noundef %16747) #10
  br label %16749

16749:                                            ; preds = %16732, %16715
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #10
  br label %16750

16750:                                            ; preds = %16749
  br label %16751

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

16752:                                            ; No predecessors!
  br label %16753

16753:                                            ; preds = %16752
  br label %16754

16754:                                            ; preds = %16753, %16692
  br label %16755

16755:                                            ; preds = %16754
  br label %16756

16756:                                            ; preds = %16755
  br label %16757

16757:                                            ; preds = %16756
  %16758 = load i32, ptr @test_count, align 4, !tbaa !5
  %16759 = add nsw i32 %16758, 1
  store i32 %16759, ptr @test_count, align 4, !tbaa !5
  %16760 = load ptr, ptr %12, align 8, !tbaa !9
  %16761 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.201, ptr noundef %16760)
  %16762 = getelementptr inbounds %struct.s2n_result, ptr %339, i32 0, i32 0
  store i32 %16761, ptr %16762, align 4
  %16763 = getelementptr inbounds %struct.s2n_result, ptr %339, i32 0, i32 0
  %16764 = load i32, ptr %16763, align 4
  %16765 = call zeroext i1 @s2n_result_is_ok(i32 %16764)
  br i1 %16765, label %16819, label %16766

16766:                                            ; preds = %16757
  br label %16767

16767:                                            ; preds = %16766
  br label %16768

16768:                                            ; preds = %16767
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #10
  %16769 = call ptr @__errno_location() #11
  %16770 = load i32, ptr %16769, align 4, !tbaa !5
  store i32 %16770, ptr %340, align 4, !tbaa !5
  %16771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16772 = call i32 @s2n_print_stacktrace(ptr noundef %16771)
  %16773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16774 = trunc i8 %16773 to i1
  br i1 %16774, label %16775, label %16797

16775:                                            ; preds = %16768
  %16776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16777 = call i32 @fileno(ptr noundef %16776) #10
  %16778 = call i32 @isatty(i32 noundef %16777) #10
  %16779 = icmp ne i32 %16778, 0
  br i1 %16779, label %16780, label %16797

16780:                                            ; preds = %16775
  %16781 = load i32, ptr %340, align 4, !tbaa !5
  %16782 = call ptr @__errno_location() #11
  store i32 %16781, ptr %16782, align 4, !tbaa !5
  %16783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16784 = load i32, ptr @test_count, align 4, !tbaa !5
  %16785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16786 = load i32, ptr %16785, align 4, !tbaa !5
  %16787 = call ptr @s2n_strerror(i32 noundef %16786, ptr noundef @.str.4)
  %16788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16789 = load i32, ptr %16788, align 4, !tbaa !5
  %16790 = call ptr @s2n_strerror_debug(i32 noundef %16789, ptr noundef @.str.4)
  %16791 = call ptr @__errno_location() #11
  %16792 = load i32, ptr %16791, align 4, !tbaa !5
  %16793 = call ptr @strerror(i32 noundef %16792) #10
  %16794 = call ptr @__errno_location() #11
  %16795 = load i32, ptr %16794, align 4, !tbaa !5
  %16796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16783, ptr noundef @.str.2, i32 noundef %16784, ptr noundef @.str.206, ptr noundef @.str.1, i32 noundef 799, ptr noundef %16787, ptr noundef %16790, ptr noundef %16793, i32 noundef %16795) #10
  br label %16814

16797:                                            ; preds = %16775, %16768
  %16798 = load i32, ptr %340, align 4, !tbaa !5
  %16799 = call ptr @__errno_location() #11
  store i32 %16798, ptr %16799, align 4, !tbaa !5
  %16800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16801 = load i32, ptr @test_count, align 4, !tbaa !5
  %16802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16803 = load i32, ptr %16802, align 4, !tbaa !5
  %16804 = call ptr @s2n_strerror(i32 noundef %16803, ptr noundef @.str.4)
  %16805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16806 = load i32, ptr %16805, align 4, !tbaa !5
  %16807 = call ptr @s2n_strerror_debug(i32 noundef %16806, ptr noundef @.str.4)
  %16808 = call ptr @__errno_location() #11
  %16809 = load i32, ptr %16808, align 4, !tbaa !5
  %16810 = call ptr @strerror(i32 noundef %16809) #10
  %16811 = call ptr @__errno_location() #11
  %16812 = load i32, ptr %16811, align 4, !tbaa !5
  %16813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16800, ptr noundef @.str.5, i32 noundef %16801, ptr noundef @.str.206, ptr noundef @.str.1, i32 noundef 799, ptr noundef %16804, ptr noundef %16807, ptr noundef %16810, i32 noundef %16812) #10
  br label %16814

16814:                                            ; preds = %16797, %16780
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #10
  br label %16815

16815:                                            ; preds = %16814
  br label %16816

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

16817:                                            ; No predecessors!
  br label %16818

16818:                                            ; preds = %16817
  br label %16819

16819:                                            ; preds = %16818, %16757
  br label %16820

16820:                                            ; preds = %16819
  br label %16821

16821:                                            ; preds = %16820
  br label %16822

16822:                                            ; preds = %16821
  br label %16823

16823:                                            ; preds = %16822
  br label %16824

16824:                                            ; preds = %16823
  %16825 = load i32, ptr @test_count, align 4, !tbaa !5
  %16826 = add nsw i32 %16825, 1
  store i32 %16826, ptr @test_count, align 4, !tbaa !5
  %16827 = load ptr, ptr %10, align 8, !tbaa !9
  %16828 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.193, ptr noundef %16827)
  %16829 = getelementptr inbounds %struct.s2n_result, ptr %341, i32 0, i32 0
  store i32 %16828, ptr %16829, align 4
  %16830 = getelementptr inbounds %struct.s2n_result, ptr %341, i32 0, i32 0
  %16831 = load i32, ptr %16830, align 4
  %16832 = call zeroext i1 @s2n_result_is_error(i32 %16831)
  br i1 %16832, label %16886, label %16833

16833:                                            ; preds = %16824
  br label %16834

16834:                                            ; preds = %16833
  br label %16835

16835:                                            ; preds = %16834
  call void @llvm.lifetime.start.p0(i64 4, ptr %342) #10
  %16836 = call ptr @__errno_location() #11
  %16837 = load i32, ptr %16836, align 4, !tbaa !5
  store i32 %16837, ptr %342, align 4, !tbaa !5
  %16838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16839 = call i32 @s2n_print_stacktrace(ptr noundef %16838)
  %16840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16841 = trunc i8 %16840 to i1
  br i1 %16841, label %16842, label %16864

16842:                                            ; preds = %16835
  %16843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16844 = call i32 @fileno(ptr noundef %16843) #10
  %16845 = call i32 @isatty(i32 noundef %16844) #10
  %16846 = icmp ne i32 %16845, 0
  br i1 %16846, label %16847, label %16864

16847:                                            ; preds = %16842
  %16848 = load i32, ptr %342, align 4, !tbaa !5
  %16849 = call ptr @__errno_location() #11
  store i32 %16848, ptr %16849, align 4, !tbaa !5
  %16850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16851 = load i32, ptr @test_count, align 4, !tbaa !5
  %16852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16853 = load i32, ptr %16852, align 4, !tbaa !5
  %16854 = call ptr @s2n_strerror(i32 noundef %16853, ptr noundef @.str.4)
  %16855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16856 = load i32, ptr %16855, align 4, !tbaa !5
  %16857 = call ptr @s2n_strerror_debug(i32 noundef %16856, ptr noundef @.str.4)
  %16858 = call ptr @__errno_location() #11
  %16859 = load i32, ptr %16858, align 4, !tbaa !5
  %16860 = call ptr @strerror(i32 noundef %16859) #10
  %16861 = call ptr @__errno_location() #11
  %16862 = load i32, ptr %16861, align 4, !tbaa !5
  %16863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16850, ptr noundef @.str.2, i32 noundef %16851, ptr noundef @.str.207, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16854, ptr noundef %16857, ptr noundef %16860, i32 noundef %16862) #10
  br label %16881

16864:                                            ; preds = %16842, %16835
  %16865 = load i32, ptr %342, align 4, !tbaa !5
  %16866 = call ptr @__errno_location() #11
  store i32 %16865, ptr %16866, align 4, !tbaa !5
  %16867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16868 = load i32, ptr @test_count, align 4, !tbaa !5
  %16869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16870 = load i32, ptr %16869, align 4, !tbaa !5
  %16871 = call ptr @s2n_strerror(i32 noundef %16870, ptr noundef @.str.4)
  %16872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16873 = load i32, ptr %16872, align 4, !tbaa !5
  %16874 = call ptr @s2n_strerror_debug(i32 noundef %16873, ptr noundef @.str.4)
  %16875 = call ptr @__errno_location() #11
  %16876 = load i32, ptr %16875, align 4, !tbaa !5
  %16877 = call ptr @strerror(i32 noundef %16876) #10
  %16878 = call ptr @__errno_location() #11
  %16879 = load i32, ptr %16878, align 4, !tbaa !5
  %16880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16867, ptr noundef @.str.5, i32 noundef %16868, ptr noundef @.str.207, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16871, ptr noundef %16874, ptr noundef %16877, i32 noundef %16879) #10
  br label %16881

16881:                                            ; preds = %16864, %16847
  call void @llvm.lifetime.end.p0(i64 4, ptr %342) #10
  br label %16882

16882:                                            ; preds = %16881
  br label %16883

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

16884:                                            ; No predecessors!
  br label %16885

16885:                                            ; preds = %16884
  br label %16886

16886:                                            ; preds = %16885, %16824
  br label %16887

16887:                                            ; preds = %16886
  br label %16888

16888:                                            ; preds = %16887
  br label %16889

16889:                                            ; preds = %16888
  %16890 = load i32, ptr @test_count, align 4, !tbaa !5
  %16891 = add nsw i32 %16890, 1
  store i32 %16891, ptr @test_count, align 4, !tbaa !5
  %16892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16893 = load i32, ptr %16892, align 4, !tbaa !5
  %16894 = icmp eq i32 %16893, 335544334
  br i1 %16894, label %16948, label %16895

16895:                                            ; preds = %16889
  br label %16896

16896:                                            ; preds = %16895
  br label %16897

16897:                                            ; preds = %16896
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #10
  %16898 = call ptr @__errno_location() #11
  %16899 = load i32, ptr %16898, align 4, !tbaa !5
  store i32 %16899, ptr %343, align 4, !tbaa !5
  %16900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16901 = call i32 @s2n_print_stacktrace(ptr noundef %16900)
  %16902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16903 = trunc i8 %16902 to i1
  br i1 %16903, label %16904, label %16926

16904:                                            ; preds = %16897
  %16905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16906 = call i32 @fileno(ptr noundef %16905) #10
  %16907 = call i32 @isatty(i32 noundef %16906) #10
  %16908 = icmp ne i32 %16907, 0
  br i1 %16908, label %16909, label %16926

16909:                                            ; preds = %16904
  %16910 = load i32, ptr %343, align 4, !tbaa !5
  %16911 = call ptr @__errno_location() #11
  store i32 %16910, ptr %16911, align 4, !tbaa !5
  %16912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16913 = load i32, ptr @test_count, align 4, !tbaa !5
  %16914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16915 = load i32, ptr %16914, align 4, !tbaa !5
  %16916 = call ptr @s2n_strerror(i32 noundef %16915, ptr noundef @.str.4)
  %16917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16918 = load i32, ptr %16917, align 4, !tbaa !5
  %16919 = call ptr @s2n_strerror_debug(i32 noundef %16918, ptr noundef @.str.4)
  %16920 = call ptr @__errno_location() #11
  %16921 = load i32, ptr %16920, align 4, !tbaa !5
  %16922 = call ptr @strerror(i32 noundef %16921) #10
  %16923 = call ptr @__errno_location() #11
  %16924 = load i32, ptr %16923, align 4, !tbaa !5
  %16925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16912, ptr noundef @.str.2, i32 noundef %16913, ptr noundef @.str.208, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16916, ptr noundef %16919, ptr noundef %16922, i32 noundef %16924) #10
  br label %16943

16926:                                            ; preds = %16904, %16897
  %16927 = load i32, ptr %343, align 4, !tbaa !5
  %16928 = call ptr @__errno_location() #11
  store i32 %16927, ptr %16928, align 4, !tbaa !5
  %16929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16930 = load i32, ptr @test_count, align 4, !tbaa !5
  %16931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16932 = load i32, ptr %16931, align 4, !tbaa !5
  %16933 = call ptr @s2n_strerror(i32 noundef %16932, ptr noundef @.str.4)
  %16934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16935 = load i32, ptr %16934, align 4, !tbaa !5
  %16936 = call ptr @s2n_strerror_debug(i32 noundef %16935, ptr noundef @.str.4)
  %16937 = call ptr @__errno_location() #11
  %16938 = load i32, ptr %16937, align 4, !tbaa !5
  %16939 = call ptr @strerror(i32 noundef %16938) #10
  %16940 = call ptr @__errno_location() #11
  %16941 = load i32, ptr %16940, align 4, !tbaa !5
  %16942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16929, ptr noundef @.str.5, i32 noundef %16930, ptr noundef @.str.208, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16933, ptr noundef %16936, ptr noundef %16939, i32 noundef %16941) #10
  br label %16943

16943:                                            ; preds = %16926, %16909
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #10
  br label %16944

16944:                                            ; preds = %16943
  br label %16945

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

16946:                                            ; No predecessors!
  br label %16947

16947:                                            ; preds = %16946
  br label %16948

16948:                                            ; preds = %16947, %16889
  br label %16949

16949:                                            ; preds = %16948
  br label %16950

16950:                                            ; preds = %16949
  br label %16951

16951:                                            ; preds = %16950
  %16952 = load i32, ptr @test_count, align 4, !tbaa !5
  %16953 = add nsw i32 %16952, 1
  store i32 %16953, ptr @test_count, align 4, !tbaa !5
  %16954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16955 = load i32, ptr %16954, align 4, !tbaa !5
  %16956 = call ptr @s2n_strerror_debug(i32 noundef %16955, ptr noundef @.str.4)
  %16957 = icmp eq ptr %16956, null
  br i1 %16957, label %16958, label %17011

16958:                                            ; preds = %16951
  br label %16959

16959:                                            ; preds = %16958
  br label %16960

16960:                                            ; preds = %16959
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #10
  %16961 = call ptr @__errno_location() #11
  %16962 = load i32, ptr %16961, align 4, !tbaa !5
  store i32 %16962, ptr %344, align 4, !tbaa !5
  %16963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16964 = call i32 @s2n_print_stacktrace(ptr noundef %16963)
  %16965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16966 = trunc i8 %16965 to i1
  br i1 %16966, label %16967, label %16989

16967:                                            ; preds = %16960
  %16968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16969 = call i32 @fileno(ptr noundef %16968) #10
  %16970 = call i32 @isatty(i32 noundef %16969) #10
  %16971 = icmp ne i32 %16970, 0
  br i1 %16971, label %16972, label %16989

16972:                                            ; preds = %16967
  %16973 = load i32, ptr %344, align 4, !tbaa !5
  %16974 = call ptr @__errno_location() #11
  store i32 %16973, ptr %16974, align 4, !tbaa !5
  %16975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16976 = load i32, ptr @test_count, align 4, !tbaa !5
  %16977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16978 = load i32, ptr %16977, align 4, !tbaa !5
  %16979 = call ptr @s2n_strerror(i32 noundef %16978, ptr noundef @.str.4)
  %16980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16981 = load i32, ptr %16980, align 4, !tbaa !5
  %16982 = call ptr @s2n_strerror_debug(i32 noundef %16981, ptr noundef @.str.4)
  %16983 = call ptr @__errno_location() #11
  %16984 = load i32, ptr %16983, align 4, !tbaa !5
  %16985 = call ptr @strerror(i32 noundef %16984) #10
  %16986 = call ptr @__errno_location() #11
  %16987 = load i32, ptr %16986, align 4, !tbaa !5
  %16988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16975, ptr noundef @.str.2, i32 noundef %16976, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16979, ptr noundef %16982, ptr noundef %16985, i32 noundef %16987) #10
  br label %17006

16989:                                            ; preds = %16967, %16960
  %16990 = load i32, ptr %344, align 4, !tbaa !5
  %16991 = call ptr @__errno_location() #11
  store i32 %16990, ptr %16991, align 4, !tbaa !5
  %16992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16993 = load i32, ptr @test_count, align 4, !tbaa !5
  %16994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16995 = load i32, ptr %16994, align 4, !tbaa !5
  %16996 = call ptr @s2n_strerror(i32 noundef %16995, ptr noundef @.str.4)
  %16997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16998 = load i32, ptr %16997, align 4, !tbaa !5
  %16999 = call ptr @s2n_strerror_debug(i32 noundef %16998, ptr noundef @.str.4)
  %17000 = call ptr @__errno_location() #11
  %17001 = load i32, ptr %17000, align 4, !tbaa !5
  %17002 = call ptr @strerror(i32 noundef %17001) #10
  %17003 = call ptr @__errno_location() #11
  %17004 = load i32, ptr %17003, align 4, !tbaa !5
  %17005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16992, ptr noundef @.str.5, i32 noundef %16993, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16996, ptr noundef %16999, ptr noundef %17002, i32 noundef %17004) #10
  br label %17006

17006:                                            ; preds = %16989, %16972
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #10
  br label %17007

17007:                                            ; preds = %17006
  br label %17008

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

17009:                                            ; No predecessors!
  br label %17010

17010:                                            ; preds = %17009
  br label %17011

17011:                                            ; preds = %17010, %16951
  br label %17012

17012:                                            ; preds = %17011
  br label %17013

17013:                                            ; preds = %17012
  br label %17014

17014:                                            ; preds = %17013
  br label %17015

17015:                                            ; preds = %17014
  br label %17016

17016:                                            ; preds = %17015
  %17017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17017, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17018 = call ptr @__errno_location() #11
  store i32 0, ptr %17018, align 4, !tbaa !5
  br label %17019

17019:                                            ; preds = %17016
  br label %17020

17020:                                            ; preds = %17019
  br label %17021

17021:                                            ; preds = %17020
  br label %17022

17022:                                            ; preds = %17021
  br label %17023

17023:                                            ; preds = %17022
  br label %17024

17024:                                            ; preds = %17023
  br label %17025

17025:                                            ; preds = %17024
  %17026 = load i32, ptr @test_count, align 4, !tbaa !5
  %17027 = add nsw i32 %17026, 1
  store i32 %17027, ptr @test_count, align 4, !tbaa !5
  %17028 = load ptr, ptr %12, align 8, !tbaa !9
  %17029 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240331, ptr noundef @.str.193, ptr noundef %17028)
  %17030 = getelementptr inbounds %struct.s2n_result, ptr %345, i32 0, i32 0
  store i32 %17029, ptr %17030, align 4
  %17031 = getelementptr inbounds %struct.s2n_result, ptr %345, i32 0, i32 0
  %17032 = load i32, ptr %17031, align 4
  %17033 = call zeroext i1 @s2n_result_is_error(i32 %17032)
  br i1 %17033, label %17087, label %17034

17034:                                            ; preds = %17025
  br label %17035

17035:                                            ; preds = %17034
  br label %17036

17036:                                            ; preds = %17035
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #10
  %17037 = call ptr @__errno_location() #11
  %17038 = load i32, ptr %17037, align 4, !tbaa !5
  store i32 %17038, ptr %346, align 4, !tbaa !5
  %17039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17040 = call i32 @s2n_print_stacktrace(ptr noundef %17039)
  %17041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17042 = trunc i8 %17041 to i1
  br i1 %17042, label %17043, label %17065

17043:                                            ; preds = %17036
  %17044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17045 = call i32 @fileno(ptr noundef %17044) #10
  %17046 = call i32 @isatty(i32 noundef %17045) #10
  %17047 = icmp ne i32 %17046, 0
  br i1 %17047, label %17048, label %17065

17048:                                            ; preds = %17043
  %17049 = load i32, ptr %346, align 4, !tbaa !5
  %17050 = call ptr @__errno_location() #11
  store i32 %17049, ptr %17050, align 4, !tbaa !5
  %17051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17052 = load i32, ptr @test_count, align 4, !tbaa !5
  %17053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17054 = load i32, ptr %17053, align 4, !tbaa !5
  %17055 = call ptr @s2n_strerror(i32 noundef %17054, ptr noundef @.str.4)
  %17056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17057 = load i32, ptr %17056, align 4, !tbaa !5
  %17058 = call ptr @s2n_strerror_debug(i32 noundef %17057, ptr noundef @.str.4)
  %17059 = call ptr @__errno_location() #11
  %17060 = load i32, ptr %17059, align 4, !tbaa !5
  %17061 = call ptr @strerror(i32 noundef %17060) #10
  %17062 = call ptr @__errno_location() #11
  %17063 = load i32, ptr %17062, align 4, !tbaa !5
  %17064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17051, ptr noundef @.str.2, i32 noundef %17052, ptr noundef @.str.209, ptr noundef @.str.1, i32 noundef 809, ptr noundef %17055, ptr noundef %17058, ptr noundef %17061, i32 noundef %17063) #10
  br label %17082

17065:                                            ; preds = %17043, %17036
  %17066 = load i32, ptr %346, align 4, !tbaa !5
  %17067 = call ptr @__errno_location() #11
  store i32 %17066, ptr %17067, align 4, !tbaa !5
  %17068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17069 = load i32, ptr @test_count, align 4, !tbaa !5
  %17070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17071 = load i32, ptr %17070, align 4, !tbaa !5
  %17072 = call ptr @s2n_strerror(i32 noundef %17071, ptr noundef @.str.4)
  %17073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17074 = load i32, ptr %17073, align 4, !tbaa !5
  %17075 = call ptr @s2n_strerror_debug(i32 noundef %17074, ptr noundef @.str.4)
  %17076 = call ptr @__errno_location() #11
  %17077 = load i32, ptr %17076, align 4, !tbaa !5
  %17078 = call ptr @strerror(i32 noundef %17077) #10
  %17079 = call ptr @__errno_location() #11
  %17080 = load i32, ptr %17079, align 4, !tbaa !5
  %17081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17068, ptr noundef @.str.5, i32 noundef %17069, ptr noundef @.str.209, ptr noundef @.str.1, i32 noundef 809, ptr noundef %17072, ptr noundef %17075, ptr noundef %17078, i32 noundef %17080) #10
  br label %17082

17082:                                            ; preds = %17065, %17048
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #10
  br label %17083

17083:                                            ; preds = %17082
  br label %17084

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

17085:                                            ; No predecessors!
  br label %17086

17086:                                            ; preds = %17085
  br label %17087

17087:                                            ; preds = %17086, %17025
  br label %17088

17088:                                            ; preds = %17087
  br label %17089

17089:                                            ; preds = %17088
  br label %17090

17090:                                            ; preds = %17089
  %17091 = load i32, ptr @test_count, align 4, !tbaa !5
  %17092 = add nsw i32 %17091, 1
  store i32 %17092, ptr @test_count, align 4, !tbaa !5
  %17093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17094 = load i32, ptr %17093, align 4, !tbaa !5
  %17095 = icmp eq i32 %17094, 335544334
  br i1 %17095, label %17149, label %17096

17096:                                            ; preds = %17090
  br label %17097

17097:                                            ; preds = %17096
  br label %17098

17098:                                            ; preds = %17097
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #10
  %17099 = call ptr @__errno_location() #11
  %17100 = load i32, ptr %17099, align 4, !tbaa !5
  store i32 %17100, ptr %347, align 4, !tbaa !5
  %17101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17102 = call i32 @s2n_print_stacktrace(ptr noundef %17101)
  %17103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17104 = trunc i8 %17103 to i1
  br i1 %17104, label %17105, label %17127

17105:                                            ; preds = %17098
  %17106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17107 = call i32 @fileno(ptr noundef %17106) #10
  %17108 = call i32 @isatty(i32 noundef %17107) #10
  %17109 = icmp ne i32 %17108, 0
  br i1 %17109, label %17110, label %17127

17110:                                            ; preds = %17105
  %17111 = load i32, ptr %347, align 4, !tbaa !5
  %17112 = call ptr @__errno_location() #11
  store i32 %17111, ptr %17112, align 4, !tbaa !5
  %17113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17114 = load i32, ptr @test_count, align 4, !tbaa !5
  %17115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17116 = load i32, ptr %17115, align 4, !tbaa !5
  %17117 = call ptr @s2n_strerror(i32 noundef %17116, ptr noundef @.str.4)
  %17118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17119 = load i32, ptr %17118, align 4, !tbaa !5
  %17120 = call ptr @s2n_strerror_debug(i32 noundef %17119, ptr noundef @.str.4)
  %17121 = call ptr @__errno_location() #11
  %17122 = load i32, ptr %17121, align 4, !tbaa !5
  %17123 = call ptr @strerror(i32 noundef %17122) #10
  %17124 = call ptr @__errno_location() #11
  %17125 = load i32, ptr %17124, align 4, !tbaa !5
  %17126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17113, ptr noundef @.str.2, i32 noundef %17114, ptr noundef @.str.208, ptr noundef @.str.1, i32 noundef 809, ptr noundef %17117, ptr noundef %17120, ptr noundef %17123, i32 noundef %17125) #10
  br label %17144

17127:                                            ; preds = %17105, %17098
  %17128 = load i32, ptr %347, align 4, !tbaa !5
  %17129 = call ptr @__errno_location() #11
  store i32 %17128, ptr %17129, align 4, !tbaa !5
  %17130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17131 = load i32, ptr @test_count, align 4, !tbaa !5
  %17132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17133 = load i32, ptr %17132, align 4, !tbaa !5
  %17134 = call ptr @s2n_strerror(i32 noundef %17133, ptr noundef @.str.4)
  %17135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17136 = load i32, ptr %17135, align 4, !tbaa !5
  %17137 = call ptr @s2n_strerror_debug(i32 noundef %17136, ptr noundef @.str.4)
  %17138 = call ptr @__errno_location() #11
  %17139 = load i32, ptr %17138, align 4, !tbaa !5
  %17140 = call ptr @strerror(i32 noundef %17139) #10
  %17141 = call ptr @__errno_location() #11
  %17142 = load i32, ptr %17141, align 4, !tbaa !5
  %17143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17130, ptr noundef @.str.5, i32 noundef %17131, ptr noundef @.str.208, ptr noundef @.str.1, i32 noundef 809, ptr noundef %17134, ptr noundef %17137, ptr noundef %17140, i32 noundef %17142) #10
  br label %17144

17144:                                            ; preds = %17127, %17110
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #10
  br label %17145

17145:                                            ; preds = %17144
  br label %17146

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

17147:                                            ; No predecessors!
  br label %17148

17148:                                            ; preds = %17147
  br label %17149

17149:                                            ; preds = %17148, %17090
  br label %17150

17150:                                            ; preds = %17149
  br label %17151

17151:                                            ; preds = %17150
  br label %17152

17152:                                            ; preds = %17151
  %17153 = load i32, ptr @test_count, align 4, !tbaa !5
  %17154 = add nsw i32 %17153, 1
  store i32 %17154, ptr @test_count, align 4, !tbaa !5
  %17155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17156 = load i32, ptr %17155, align 4, !tbaa !5
  %17157 = call ptr @s2n_strerror_debug(i32 noundef %17156, ptr noundef @.str.4)
  %17158 = icmp eq ptr %17157, null
  br i1 %17158, label %17159, label %17212

17159:                                            ; preds = %17152
  br label %17160

17160:                                            ; preds = %17159
  br label %17161

17161:                                            ; preds = %17160
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #10
  %17162 = call ptr @__errno_location() #11
  %17163 = load i32, ptr %17162, align 4, !tbaa !5
  store i32 %17163, ptr %348, align 4, !tbaa !5
  %17164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17165 = call i32 @s2n_print_stacktrace(ptr noundef %17164)
  %17166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17167 = trunc i8 %17166 to i1
  br i1 %17167, label %17168, label %17190

17168:                                            ; preds = %17161
  %17169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17170 = call i32 @fileno(ptr noundef %17169) #10
  %17171 = call i32 @isatty(i32 noundef %17170) #10
  %17172 = icmp ne i32 %17171, 0
  br i1 %17172, label %17173, label %17190

17173:                                            ; preds = %17168
  %17174 = load i32, ptr %348, align 4, !tbaa !5
  %17175 = call ptr @__errno_location() #11
  store i32 %17174, ptr %17175, align 4, !tbaa !5
  %17176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17177 = load i32, ptr @test_count, align 4, !tbaa !5
  %17178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17179 = load i32, ptr %17178, align 4, !tbaa !5
  %17180 = call ptr @s2n_strerror(i32 noundef %17179, ptr noundef @.str.4)
  %17181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17182 = load i32, ptr %17181, align 4, !tbaa !5
  %17183 = call ptr @s2n_strerror_debug(i32 noundef %17182, ptr noundef @.str.4)
  %17184 = call ptr @__errno_location() #11
  %17185 = load i32, ptr %17184, align 4, !tbaa !5
  %17186 = call ptr @strerror(i32 noundef %17185) #10
  %17187 = call ptr @__errno_location() #11
  %17188 = load i32, ptr %17187, align 4, !tbaa !5
  %17189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17176, ptr noundef @.str.2, i32 noundef %17177, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 809, ptr noundef %17180, ptr noundef %17183, ptr noundef %17186, i32 noundef %17188) #10
  br label %17207

17190:                                            ; preds = %17168, %17161
  %17191 = load i32, ptr %348, align 4, !tbaa !5
  %17192 = call ptr @__errno_location() #11
  store i32 %17191, ptr %17192, align 4, !tbaa !5
  %17193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17194 = load i32, ptr @test_count, align 4, !tbaa !5
  %17195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17196 = load i32, ptr %17195, align 4, !tbaa !5
  %17197 = call ptr @s2n_strerror(i32 noundef %17196, ptr noundef @.str.4)
  %17198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17199 = load i32, ptr %17198, align 4, !tbaa !5
  %17200 = call ptr @s2n_strerror_debug(i32 noundef %17199, ptr noundef @.str.4)
  %17201 = call ptr @__errno_location() #11
  %17202 = load i32, ptr %17201, align 4, !tbaa !5
  %17203 = call ptr @strerror(i32 noundef %17202) #10
  %17204 = call ptr @__errno_location() #11
  %17205 = load i32, ptr %17204, align 4, !tbaa !5
  %17206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17193, ptr noundef @.str.5, i32 noundef %17194, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 809, ptr noundef %17197, ptr noundef %17200, ptr noundef %17203, i32 noundef %17205) #10
  br label %17207

17207:                                            ; preds = %17190, %17173
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #10
  br label %17208

17208:                                            ; preds = %17207
  br label %17209

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

17210:                                            ; No predecessors!
  br label %17211

17211:                                            ; preds = %17210
  br label %17212

17212:                                            ; preds = %17211, %17152
  br label %17213

17213:                                            ; preds = %17212
  br label %17214

17214:                                            ; preds = %17213
  br label %17215

17215:                                            ; preds = %17214
  br label %17216

17216:                                            ; preds = %17215
  br label %17217

17217:                                            ; preds = %17216
  %17218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17218, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17219 = call ptr @__errno_location() #11
  store i32 0, ptr %17219, align 4, !tbaa !5
  br label %17220

17220:                                            ; preds = %17217
  br label %17221

17221:                                            ; preds = %17220
  br label %17222

17222:                                            ; preds = %17221
  br label %17223

17223:                                            ; preds = %17222
  %17224 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %17224, label %17225, label %18467

17225:                                            ; preds = %17223
  br label %17226

17226:                                            ; preds = %17225
  %17227 = load i32, ptr @test_count, align 4, !tbaa !5
  %17228 = add nsw i32 %17227, 1
  store i32 %17228, ptr @test_count, align 4, !tbaa !5
  %17229 = load ptr, ptr %14, align 8, !tbaa !9
  %17230 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_rfc9151, ptr noundef @.str.46, ptr noundef %17229)
  %17231 = getelementptr inbounds %struct.s2n_result, ptr %349, i32 0, i32 0
  store i32 %17230, ptr %17231, align 4
  %17232 = getelementptr inbounds %struct.s2n_result, ptr %349, i32 0, i32 0
  %17233 = load i32, ptr %17232, align 4
  %17234 = call zeroext i1 @s2n_result_is_ok(i32 %17233)
  br i1 %17234, label %17288, label %17235

17235:                                            ; preds = %17226
  br label %17236

17236:                                            ; preds = %17235
  br label %17237

17237:                                            ; preds = %17236
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #10
  %17238 = call ptr @__errno_location() #11
  %17239 = load i32, ptr %17238, align 4, !tbaa !5
  store i32 %17239, ptr %350, align 4, !tbaa !5
  %17240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17241 = call i32 @s2n_print_stacktrace(ptr noundef %17240)
  %17242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17243 = trunc i8 %17242 to i1
  br i1 %17243, label %17244, label %17266

17244:                                            ; preds = %17237
  %17245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17246 = call i32 @fileno(ptr noundef %17245) #10
  %17247 = call i32 @isatty(i32 noundef %17246) #10
  %17248 = icmp ne i32 %17247, 0
  br i1 %17248, label %17249, label %17266

17249:                                            ; preds = %17244
  %17250 = load i32, ptr %350, align 4, !tbaa !5
  %17251 = call ptr @__errno_location() #11
  store i32 %17250, ptr %17251, align 4, !tbaa !5
  %17252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17253 = load i32, ptr @test_count, align 4, !tbaa !5
  %17254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17255 = load i32, ptr %17254, align 4, !tbaa !5
  %17256 = call ptr @s2n_strerror(i32 noundef %17255, ptr noundef @.str.4)
  %17257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17258 = load i32, ptr %17257, align 4, !tbaa !5
  %17259 = call ptr @s2n_strerror_debug(i32 noundef %17258, ptr noundef @.str.4)
  %17260 = call ptr @__errno_location() #11
  %17261 = load i32, ptr %17260, align 4, !tbaa !5
  %17262 = call ptr @strerror(i32 noundef %17261) #10
  %17263 = call ptr @__errno_location() #11
  %17264 = load i32, ptr %17263, align 4, !tbaa !5
  %17265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17252, ptr noundef @.str.2, i32 noundef %17253, ptr noundef @.str.210, ptr noundef @.str.1, i32 noundef 819, ptr noundef %17256, ptr noundef %17259, ptr noundef %17262, i32 noundef %17264) #10
  br label %17283

17266:                                            ; preds = %17244, %17237
  %17267 = load i32, ptr %350, align 4, !tbaa !5
  %17268 = call ptr @__errno_location() #11
  store i32 %17267, ptr %17268, align 4, !tbaa !5
  %17269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17270 = load i32, ptr @test_count, align 4, !tbaa !5
  %17271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17272 = load i32, ptr %17271, align 4, !tbaa !5
  %17273 = call ptr @s2n_strerror(i32 noundef %17272, ptr noundef @.str.4)
  %17274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17275 = load i32, ptr %17274, align 4, !tbaa !5
  %17276 = call ptr @s2n_strerror_debug(i32 noundef %17275, ptr noundef @.str.4)
  %17277 = call ptr @__errno_location() #11
  %17278 = load i32, ptr %17277, align 4, !tbaa !5
  %17279 = call ptr @strerror(i32 noundef %17278) #10
  %17280 = call ptr @__errno_location() #11
  %17281 = load i32, ptr %17280, align 4, !tbaa !5
  %17282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17269, ptr noundef @.str.5, i32 noundef %17270, ptr noundef @.str.210, ptr noundef @.str.1, i32 noundef 819, ptr noundef %17273, ptr noundef %17276, ptr noundef %17279, i32 noundef %17281) #10
  br label %17283

17283:                                            ; preds = %17266, %17249
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #10
  br label %17284

17284:                                            ; preds = %17283
  br label %17285

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

17286:                                            ; No predecessors!
  br label %17287

17287:                                            ; preds = %17286
  br label %17288

17288:                                            ; preds = %17287, %17226
  br label %17289

17289:                                            ; preds = %17288
  br label %17290

17290:                                            ; preds = %17289
  br label %17291

17291:                                            ; preds = %17290
  %17292 = load i32, ptr @test_count, align 4, !tbaa !5
  %17293 = add nsw i32 %17292, 1
  store i32 %17293, ptr @test_count, align 4, !tbaa !5
  %17294 = load ptr, ptr %14, align 8, !tbaa !9
  %17295 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_rfc9151, ptr noundef @.str.184, ptr noundef %17294)
  %17296 = getelementptr inbounds %struct.s2n_result, ptr %351, i32 0, i32 0
  store i32 %17295, ptr %17296, align 4
  %17297 = getelementptr inbounds %struct.s2n_result, ptr %351, i32 0, i32 0
  %17298 = load i32, ptr %17297, align 4
  %17299 = call zeroext i1 @s2n_result_is_ok(i32 %17298)
  br i1 %17299, label %17353, label %17300

17300:                                            ; preds = %17291
  br label %17301

17301:                                            ; preds = %17300
  br label %17302

17302:                                            ; preds = %17301
  call void @llvm.lifetime.start.p0(i64 4, ptr %352) #10
  %17303 = call ptr @__errno_location() #11
  %17304 = load i32, ptr %17303, align 4, !tbaa !5
  store i32 %17304, ptr %352, align 4, !tbaa !5
  %17305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17306 = call i32 @s2n_print_stacktrace(ptr noundef %17305)
  %17307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17308 = trunc i8 %17307 to i1
  br i1 %17308, label %17309, label %17331

17309:                                            ; preds = %17302
  %17310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17311 = call i32 @fileno(ptr noundef %17310) #10
  %17312 = call i32 @isatty(i32 noundef %17311) #10
  %17313 = icmp ne i32 %17312, 0
  br i1 %17313, label %17314, label %17331

17314:                                            ; preds = %17309
  %17315 = load i32, ptr %352, align 4, !tbaa !5
  %17316 = call ptr @__errno_location() #11
  store i32 %17315, ptr %17316, align 4, !tbaa !5
  %17317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17318 = load i32, ptr @test_count, align 4, !tbaa !5
  %17319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17320 = load i32, ptr %17319, align 4, !tbaa !5
  %17321 = call ptr @s2n_strerror(i32 noundef %17320, ptr noundef @.str.4)
  %17322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17323 = load i32, ptr %17322, align 4, !tbaa !5
  %17324 = call ptr @s2n_strerror_debug(i32 noundef %17323, ptr noundef @.str.4)
  %17325 = call ptr @__errno_location() #11
  %17326 = load i32, ptr %17325, align 4, !tbaa !5
  %17327 = call ptr @strerror(i32 noundef %17326) #10
  %17328 = call ptr @__errno_location() #11
  %17329 = load i32, ptr %17328, align 4, !tbaa !5
  %17330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17317, ptr noundef @.str.2, i32 noundef %17318, ptr noundef @.str.211, ptr noundef @.str.1, i32 noundef 820, ptr noundef %17321, ptr noundef %17324, ptr noundef %17327, i32 noundef %17329) #10
  br label %17348

17331:                                            ; preds = %17309, %17302
  %17332 = load i32, ptr %352, align 4, !tbaa !5
  %17333 = call ptr @__errno_location() #11
  store i32 %17332, ptr %17333, align 4, !tbaa !5
  %17334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17335 = load i32, ptr @test_count, align 4, !tbaa !5
  %17336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17337 = load i32, ptr %17336, align 4, !tbaa !5
  %17338 = call ptr @s2n_strerror(i32 noundef %17337, ptr noundef @.str.4)
  %17339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17340 = load i32, ptr %17339, align 4, !tbaa !5
  %17341 = call ptr @s2n_strerror_debug(i32 noundef %17340, ptr noundef @.str.4)
  %17342 = call ptr @__errno_location() #11
  %17343 = load i32, ptr %17342, align 4, !tbaa !5
  %17344 = call ptr @strerror(i32 noundef %17343) #10
  %17345 = call ptr @__errno_location() #11
  %17346 = load i32, ptr %17345, align 4, !tbaa !5
  %17347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17334, ptr noundef @.str.5, i32 noundef %17335, ptr noundef @.str.211, ptr noundef @.str.1, i32 noundef 820, ptr noundef %17338, ptr noundef %17341, ptr noundef %17344, i32 noundef %17346) #10
  br label %17348

17348:                                            ; preds = %17331, %17314
  call void @llvm.lifetime.end.p0(i64 4, ptr %352) #10
  br label %17349

17349:                                            ; preds = %17348
  br label %17350

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

17351:                                            ; No predecessors!
  br label %17352

17352:                                            ; preds = %17351
  br label %17353

17353:                                            ; preds = %17352, %17291
  br label %17354

17354:                                            ; preds = %17353
  br label %17355

17355:                                            ; preds = %17354
  br label %17356

17356:                                            ; preds = %17355
  %17357 = load i32, ptr @test_count, align 4, !tbaa !5
  %17358 = add nsw i32 %17357, 1
  store i32 %17358, ptr @test_count, align 4, !tbaa !5
  %17359 = load ptr, ptr %14, align 8, !tbaa !9
  %17360 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_rfc9151, ptr noundef @.str.212, ptr noundef %17359)
  %17361 = getelementptr inbounds %struct.s2n_result, ptr %353, i32 0, i32 0
  store i32 %17360, ptr %17361, align 4
  %17362 = getelementptr inbounds %struct.s2n_result, ptr %353, i32 0, i32 0
  %17363 = load i32, ptr %17362, align 4
  %17364 = call zeroext i1 @s2n_result_is_ok(i32 %17363)
  br i1 %17364, label %17418, label %17365

17365:                                            ; preds = %17356
  br label %17366

17366:                                            ; preds = %17365
  br label %17367

17367:                                            ; preds = %17366
  call void @llvm.lifetime.start.p0(i64 4, ptr %354) #10
  %17368 = call ptr @__errno_location() #11
  %17369 = load i32, ptr %17368, align 4, !tbaa !5
  store i32 %17369, ptr %354, align 4, !tbaa !5
  %17370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17371 = call i32 @s2n_print_stacktrace(ptr noundef %17370)
  %17372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17373 = trunc i8 %17372 to i1
  br i1 %17373, label %17374, label %17396

17374:                                            ; preds = %17367
  %17375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17376 = call i32 @fileno(ptr noundef %17375) #10
  %17377 = call i32 @isatty(i32 noundef %17376) #10
  %17378 = icmp ne i32 %17377, 0
  br i1 %17378, label %17379, label %17396

17379:                                            ; preds = %17374
  %17380 = load i32, ptr %354, align 4, !tbaa !5
  %17381 = call ptr @__errno_location() #11
  store i32 %17380, ptr %17381, align 4, !tbaa !5
  %17382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17383 = load i32, ptr @test_count, align 4, !tbaa !5
  %17384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17385 = load i32, ptr %17384, align 4, !tbaa !5
  %17386 = call ptr @s2n_strerror(i32 noundef %17385, ptr noundef @.str.4)
  %17387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17388 = load i32, ptr %17387, align 4, !tbaa !5
  %17389 = call ptr @s2n_strerror_debug(i32 noundef %17388, ptr noundef @.str.4)
  %17390 = call ptr @__errno_location() #11
  %17391 = load i32, ptr %17390, align 4, !tbaa !5
  %17392 = call ptr @strerror(i32 noundef %17391) #10
  %17393 = call ptr @__errno_location() #11
  %17394 = load i32, ptr %17393, align 4, !tbaa !5
  %17395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17382, ptr noundef @.str.2, i32 noundef %17383, ptr noundef @.str.213, ptr noundef @.str.1, i32 noundef 821, ptr noundef %17386, ptr noundef %17389, ptr noundef %17392, i32 noundef %17394) #10
  br label %17413

17396:                                            ; preds = %17374, %17367
  %17397 = load i32, ptr %354, align 4, !tbaa !5
  %17398 = call ptr @__errno_location() #11
  store i32 %17397, ptr %17398, align 4, !tbaa !5
  %17399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17400 = load i32, ptr @test_count, align 4, !tbaa !5
  %17401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17402 = load i32, ptr %17401, align 4, !tbaa !5
  %17403 = call ptr @s2n_strerror(i32 noundef %17402, ptr noundef @.str.4)
  %17404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17405 = load i32, ptr %17404, align 4, !tbaa !5
  %17406 = call ptr @s2n_strerror_debug(i32 noundef %17405, ptr noundef @.str.4)
  %17407 = call ptr @__errno_location() #11
  %17408 = load i32, ptr %17407, align 4, !tbaa !5
  %17409 = call ptr @strerror(i32 noundef %17408) #10
  %17410 = call ptr @__errno_location() #11
  %17411 = load i32, ptr %17410, align 4, !tbaa !5
  %17412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17399, ptr noundef @.str.5, i32 noundef %17400, ptr noundef @.str.213, ptr noundef @.str.1, i32 noundef 821, ptr noundef %17403, ptr noundef %17406, ptr noundef %17409, i32 noundef %17411) #10
  br label %17413

17413:                                            ; preds = %17396, %17379
  call void @llvm.lifetime.end.p0(i64 4, ptr %354) #10
  br label %17414

17414:                                            ; preds = %17413
  br label %17415

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

17416:                                            ; No predecessors!
  br label %17417

17417:                                            ; preds = %17416
  br label %17418

17418:                                            ; preds = %17417, %17356
  br label %17419

17419:                                            ; preds = %17418
  br label %17420

17420:                                            ; preds = %17419
  br label %17421

17421:                                            ; preds = %17420
  %17422 = load i32, ptr @test_count, align 4, !tbaa !5
  %17423 = add nsw i32 %17422, 1
  store i32 %17423, ptr @test_count, align 4, !tbaa !5
  %17424 = load ptr, ptr %14, align 8, !tbaa !9
  %17425 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240503, ptr noundef @.str.214, ptr noundef %17424)
  %17426 = getelementptr inbounds %struct.s2n_result, ptr %355, i32 0, i32 0
  store i32 %17425, ptr %17426, align 4
  %17427 = getelementptr inbounds %struct.s2n_result, ptr %355, i32 0, i32 0
  %17428 = load i32, ptr %17427, align 4
  %17429 = call zeroext i1 @s2n_result_is_ok(i32 %17428)
  br i1 %17429, label %17483, label %17430

17430:                                            ; preds = %17421
  br label %17431

17431:                                            ; preds = %17430
  br label %17432

17432:                                            ; preds = %17431
  call void @llvm.lifetime.start.p0(i64 4, ptr %356) #10
  %17433 = call ptr @__errno_location() #11
  %17434 = load i32, ptr %17433, align 4, !tbaa !5
  store i32 %17434, ptr %356, align 4, !tbaa !5
  %17435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17436 = call i32 @s2n_print_stacktrace(ptr noundef %17435)
  %17437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17438 = trunc i8 %17437 to i1
  br i1 %17438, label %17439, label %17461

17439:                                            ; preds = %17432
  %17440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17441 = call i32 @fileno(ptr noundef %17440) #10
  %17442 = call i32 @isatty(i32 noundef %17441) #10
  %17443 = icmp ne i32 %17442, 0
  br i1 %17443, label %17444, label %17461

17444:                                            ; preds = %17439
  %17445 = load i32, ptr %356, align 4, !tbaa !5
  %17446 = call ptr @__errno_location() #11
  store i32 %17445, ptr %17446, align 4, !tbaa !5
  %17447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17448 = load i32, ptr @test_count, align 4, !tbaa !5
  %17449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17450 = load i32, ptr %17449, align 4, !tbaa !5
  %17451 = call ptr @s2n_strerror(i32 noundef %17450, ptr noundef @.str.4)
  %17452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17453 = load i32, ptr %17452, align 4, !tbaa !5
  %17454 = call ptr @s2n_strerror_debug(i32 noundef %17453, ptr noundef @.str.4)
  %17455 = call ptr @__errno_location() #11
  %17456 = load i32, ptr %17455, align 4, !tbaa !5
  %17457 = call ptr @strerror(i32 noundef %17456) #10
  %17458 = call ptr @__errno_location() #11
  %17459 = load i32, ptr %17458, align 4, !tbaa !5
  %17460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17447, ptr noundef @.str.2, i32 noundef %17448, ptr noundef @.str.215, ptr noundef @.str.1, i32 noundef 824, ptr noundef %17451, ptr noundef %17454, ptr noundef %17457, i32 noundef %17459) #10
  br label %17478

17461:                                            ; preds = %17439, %17432
  %17462 = load i32, ptr %356, align 4, !tbaa !5
  %17463 = call ptr @__errno_location() #11
  store i32 %17462, ptr %17463, align 4, !tbaa !5
  %17464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17465 = load i32, ptr @test_count, align 4, !tbaa !5
  %17466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17467 = load i32, ptr %17466, align 4, !tbaa !5
  %17468 = call ptr @s2n_strerror(i32 noundef %17467, ptr noundef @.str.4)
  %17469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17470 = load i32, ptr %17469, align 4, !tbaa !5
  %17471 = call ptr @s2n_strerror_debug(i32 noundef %17470, ptr noundef @.str.4)
  %17472 = call ptr @__errno_location() #11
  %17473 = load i32, ptr %17472, align 4, !tbaa !5
  %17474 = call ptr @strerror(i32 noundef %17473) #10
  %17475 = call ptr @__errno_location() #11
  %17476 = load i32, ptr %17475, align 4, !tbaa !5
  %17477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17464, ptr noundef @.str.5, i32 noundef %17465, ptr noundef @.str.215, ptr noundef @.str.1, i32 noundef 824, ptr noundef %17468, ptr noundef %17471, ptr noundef %17474, i32 noundef %17476) #10
  br label %17478

17478:                                            ; preds = %17461, %17444
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #10
  br label %17479

17479:                                            ; preds = %17478
  br label %17480

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

17481:                                            ; No predecessors!
  br label %17482

17482:                                            ; preds = %17481
  br label %17483

17483:                                            ; preds = %17482, %17421
  br label %17484

17484:                                            ; preds = %17483
  br label %17485

17485:                                            ; preds = %17484
  br label %17486

17486:                                            ; preds = %17485
  %17487 = load i32, ptr @test_count, align 4, !tbaa !5
  %17488 = add nsw i32 %17487, 1
  store i32 %17488, ptr @test_count, align 4, !tbaa !5
  %17489 = load ptr, ptr %14, align 8, !tbaa !9
  %17490 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240502, ptr noundef @.str.214, ptr noundef %17489)
  %17491 = getelementptr inbounds %struct.s2n_result, ptr %357, i32 0, i32 0
  store i32 %17490, ptr %17491, align 4
  %17492 = getelementptr inbounds %struct.s2n_result, ptr %357, i32 0, i32 0
  %17493 = load i32, ptr %17492, align 4
  %17494 = call zeroext i1 @s2n_result_is_ok(i32 %17493)
  br i1 %17494, label %17548, label %17495

17495:                                            ; preds = %17486
  br label %17496

17496:                                            ; preds = %17495
  br label %17497

17497:                                            ; preds = %17496
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #10
  %17498 = call ptr @__errno_location() #11
  %17499 = load i32, ptr %17498, align 4, !tbaa !5
  store i32 %17499, ptr %358, align 4, !tbaa !5
  %17500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17501 = call i32 @s2n_print_stacktrace(ptr noundef %17500)
  %17502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17503 = trunc i8 %17502 to i1
  br i1 %17503, label %17504, label %17526

17504:                                            ; preds = %17497
  %17505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17506 = call i32 @fileno(ptr noundef %17505) #10
  %17507 = call i32 @isatty(i32 noundef %17506) #10
  %17508 = icmp ne i32 %17507, 0
  br i1 %17508, label %17509, label %17526

17509:                                            ; preds = %17504
  %17510 = load i32, ptr %358, align 4, !tbaa !5
  %17511 = call ptr @__errno_location() #11
  store i32 %17510, ptr %17511, align 4, !tbaa !5
  %17512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17513 = load i32, ptr @test_count, align 4, !tbaa !5
  %17514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17515 = load i32, ptr %17514, align 4, !tbaa !5
  %17516 = call ptr @s2n_strerror(i32 noundef %17515, ptr noundef @.str.4)
  %17517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17518 = load i32, ptr %17517, align 4, !tbaa !5
  %17519 = call ptr @s2n_strerror_debug(i32 noundef %17518, ptr noundef @.str.4)
  %17520 = call ptr @__errno_location() #11
  %17521 = load i32, ptr %17520, align 4, !tbaa !5
  %17522 = call ptr @strerror(i32 noundef %17521) #10
  %17523 = call ptr @__errno_location() #11
  %17524 = load i32, ptr %17523, align 4, !tbaa !5
  %17525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17512, ptr noundef @.str.2, i32 noundef %17513, ptr noundef @.str.216, ptr noundef @.str.1, i32 noundef 826, ptr noundef %17516, ptr noundef %17519, ptr noundef %17522, i32 noundef %17524) #10
  br label %17543

17526:                                            ; preds = %17504, %17497
  %17527 = load i32, ptr %358, align 4, !tbaa !5
  %17528 = call ptr @__errno_location() #11
  store i32 %17527, ptr %17528, align 4, !tbaa !5
  %17529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17530 = load i32, ptr @test_count, align 4, !tbaa !5
  %17531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17532 = load i32, ptr %17531, align 4, !tbaa !5
  %17533 = call ptr @s2n_strerror(i32 noundef %17532, ptr noundef @.str.4)
  %17534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17535 = load i32, ptr %17534, align 4, !tbaa !5
  %17536 = call ptr @s2n_strerror_debug(i32 noundef %17535, ptr noundef @.str.4)
  %17537 = call ptr @__errno_location() #11
  %17538 = load i32, ptr %17537, align 4, !tbaa !5
  %17539 = call ptr @strerror(i32 noundef %17538) #10
  %17540 = call ptr @__errno_location() #11
  %17541 = load i32, ptr %17540, align 4, !tbaa !5
  %17542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17529, ptr noundef @.str.5, i32 noundef %17530, ptr noundef @.str.216, ptr noundef @.str.1, i32 noundef 826, ptr noundef %17533, ptr noundef %17536, ptr noundef %17539, i32 noundef %17541) #10
  br label %17543

17543:                                            ; preds = %17526, %17509
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #10
  br label %17544

17544:                                            ; preds = %17543
  br label %17545

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

17546:                                            ; No predecessors!
  br label %17547

17547:                                            ; preds = %17546
  br label %17548

17548:                                            ; preds = %17547, %17486
  br label %17549

17549:                                            ; preds = %17548
  br label %17550

17550:                                            ; preds = %17549
  br label %17551

17551:                                            ; preds = %17550
  %17552 = load i32, ptr @test_count, align 4, !tbaa !5
  %17553 = add nsw i32 %17552, 1
  store i32 %17553, ptr @test_count, align 4, !tbaa !5
  %17554 = load ptr, ptr %14, align 8, !tbaa !9
  %17555 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20250211, ptr noundef @.str.214, ptr noundef %17554)
  %17556 = getelementptr inbounds %struct.s2n_result, ptr %359, i32 0, i32 0
  store i32 %17555, ptr %17556, align 4
  %17557 = getelementptr inbounds %struct.s2n_result, ptr %359, i32 0, i32 0
  %17558 = load i32, ptr %17557, align 4
  %17559 = call zeroext i1 @s2n_result_is_ok(i32 %17558)
  br i1 %17559, label %17613, label %17560

17560:                                            ; preds = %17551
  br label %17561

17561:                                            ; preds = %17560
  br label %17562

17562:                                            ; preds = %17561
  call void @llvm.lifetime.start.p0(i64 4, ptr %360) #10
  %17563 = call ptr @__errno_location() #11
  %17564 = load i32, ptr %17563, align 4, !tbaa !5
  store i32 %17564, ptr %360, align 4, !tbaa !5
  %17565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17566 = call i32 @s2n_print_stacktrace(ptr noundef %17565)
  %17567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17568 = trunc i8 %17567 to i1
  br i1 %17568, label %17569, label %17591

17569:                                            ; preds = %17562
  %17570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17571 = call i32 @fileno(ptr noundef %17570) #10
  %17572 = call i32 @isatty(i32 noundef %17571) #10
  %17573 = icmp ne i32 %17572, 0
  br i1 %17573, label %17574, label %17591

17574:                                            ; preds = %17569
  %17575 = load i32, ptr %360, align 4, !tbaa !5
  %17576 = call ptr @__errno_location() #11
  store i32 %17575, ptr %17576, align 4, !tbaa !5
  %17577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17578 = load i32, ptr @test_count, align 4, !tbaa !5
  %17579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17580 = load i32, ptr %17579, align 4, !tbaa !5
  %17581 = call ptr @s2n_strerror(i32 noundef %17580, ptr noundef @.str.4)
  %17582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17583 = load i32, ptr %17582, align 4, !tbaa !5
  %17584 = call ptr @s2n_strerror_debug(i32 noundef %17583, ptr noundef @.str.4)
  %17585 = call ptr @__errno_location() #11
  %17586 = load i32, ptr %17585, align 4, !tbaa !5
  %17587 = call ptr @strerror(i32 noundef %17586) #10
  %17588 = call ptr @__errno_location() #11
  %17589 = load i32, ptr %17588, align 4, !tbaa !5
  %17590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17577, ptr noundef @.str.2, i32 noundef %17578, ptr noundef @.str.217, ptr noundef @.str.1, i32 noundef 827, ptr noundef %17581, ptr noundef %17584, ptr noundef %17587, i32 noundef %17589) #10
  br label %17608

17591:                                            ; preds = %17569, %17562
  %17592 = load i32, ptr %360, align 4, !tbaa !5
  %17593 = call ptr @__errno_location() #11
  store i32 %17592, ptr %17593, align 4, !tbaa !5
  %17594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17595 = load i32, ptr @test_count, align 4, !tbaa !5
  %17596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17597 = load i32, ptr %17596, align 4, !tbaa !5
  %17598 = call ptr @s2n_strerror(i32 noundef %17597, ptr noundef @.str.4)
  %17599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17600 = load i32, ptr %17599, align 4, !tbaa !5
  %17601 = call ptr @s2n_strerror_debug(i32 noundef %17600, ptr noundef @.str.4)
  %17602 = call ptr @__errno_location() #11
  %17603 = load i32, ptr %17602, align 4, !tbaa !5
  %17604 = call ptr @strerror(i32 noundef %17603) #10
  %17605 = call ptr @__errno_location() #11
  %17606 = load i32, ptr %17605, align 4, !tbaa !5
  %17607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17594, ptr noundef @.str.5, i32 noundef %17595, ptr noundef @.str.217, ptr noundef @.str.1, i32 noundef 827, ptr noundef %17598, ptr noundef %17601, ptr noundef %17604, i32 noundef %17606) #10
  br label %17608

17608:                                            ; preds = %17591, %17574
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #10
  br label %17609

17609:                                            ; preds = %17608
  br label %17610

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

17611:                                            ; No predecessors!
  br label %17612

17612:                                            ; preds = %17611
  br label %17613

17613:                                            ; preds = %17612, %17551
  br label %17614

17614:                                            ; preds = %17613
  br label %17615

17615:                                            ; preds = %17614
  br label %17616

17616:                                            ; preds = %17615
  %17617 = load i32, ptr @test_count, align 4, !tbaa !5
  %17618 = add nsw i32 %17617, 1
  store i32 %17618, ptr @test_count, align 4, !tbaa !5
  %17619 = load ptr, ptr %12, align 8, !tbaa !9
  %17620 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240503, ptr noundef @.str.212, ptr noundef %17619)
  %17621 = getelementptr inbounds %struct.s2n_result, ptr %361, i32 0, i32 0
  store i32 %17620, ptr %17621, align 4
  %17622 = getelementptr inbounds %struct.s2n_result, ptr %361, i32 0, i32 0
  %17623 = load i32, ptr %17622, align 4
  %17624 = call zeroext i1 @s2n_result_is_ok(i32 %17623)
  br i1 %17624, label %17678, label %17625

17625:                                            ; preds = %17616
  br label %17626

17626:                                            ; preds = %17625
  br label %17627

17627:                                            ; preds = %17626
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #10
  %17628 = call ptr @__errno_location() #11
  %17629 = load i32, ptr %17628, align 4, !tbaa !5
  store i32 %17629, ptr %362, align 4, !tbaa !5
  %17630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17631 = call i32 @s2n_print_stacktrace(ptr noundef %17630)
  %17632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17633 = trunc i8 %17632 to i1
  br i1 %17633, label %17634, label %17656

17634:                                            ; preds = %17627
  %17635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17636 = call i32 @fileno(ptr noundef %17635) #10
  %17637 = call i32 @isatty(i32 noundef %17636) #10
  %17638 = icmp ne i32 %17637, 0
  br i1 %17638, label %17639, label %17656

17639:                                            ; preds = %17634
  %17640 = load i32, ptr %362, align 4, !tbaa !5
  %17641 = call ptr @__errno_location() #11
  store i32 %17640, ptr %17641, align 4, !tbaa !5
  %17642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17643 = load i32, ptr @test_count, align 4, !tbaa !5
  %17644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17645 = load i32, ptr %17644, align 4, !tbaa !5
  %17646 = call ptr @s2n_strerror(i32 noundef %17645, ptr noundef @.str.4)
  %17647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17648 = load i32, ptr %17647, align 4, !tbaa !5
  %17649 = call ptr @s2n_strerror_debug(i32 noundef %17648, ptr noundef @.str.4)
  %17650 = call ptr @__errno_location() #11
  %17651 = load i32, ptr %17650, align 4, !tbaa !5
  %17652 = call ptr @strerror(i32 noundef %17651) #10
  %17653 = call ptr @__errno_location() #11
  %17654 = load i32, ptr %17653, align 4, !tbaa !5
  %17655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17642, ptr noundef @.str.2, i32 noundef %17643, ptr noundef @.str.218, ptr noundef @.str.1, i32 noundef 831, ptr noundef %17646, ptr noundef %17649, ptr noundef %17652, i32 noundef %17654) #10
  br label %17673

17656:                                            ; preds = %17634, %17627
  %17657 = load i32, ptr %362, align 4, !tbaa !5
  %17658 = call ptr @__errno_location() #11
  store i32 %17657, ptr %17658, align 4, !tbaa !5
  %17659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17660 = load i32, ptr @test_count, align 4, !tbaa !5
  %17661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17662 = load i32, ptr %17661, align 4, !tbaa !5
  %17663 = call ptr @s2n_strerror(i32 noundef %17662, ptr noundef @.str.4)
  %17664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17665 = load i32, ptr %17664, align 4, !tbaa !5
  %17666 = call ptr @s2n_strerror_debug(i32 noundef %17665, ptr noundef @.str.4)
  %17667 = call ptr @__errno_location() #11
  %17668 = load i32, ptr %17667, align 4, !tbaa !5
  %17669 = call ptr @strerror(i32 noundef %17668) #10
  %17670 = call ptr @__errno_location() #11
  %17671 = load i32, ptr %17670, align 4, !tbaa !5
  %17672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17659, ptr noundef @.str.5, i32 noundef %17660, ptr noundef @.str.218, ptr noundef @.str.1, i32 noundef 831, ptr noundef %17663, ptr noundef %17666, ptr noundef %17669, i32 noundef %17671) #10
  br label %17673

17673:                                            ; preds = %17656, %17639
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #10
  br label %17674

17674:                                            ; preds = %17673
  br label %17675

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

17676:                                            ; No predecessors!
  br label %17677

17677:                                            ; preds = %17676
  br label %17678

17678:                                            ; preds = %17677, %17616
  br label %17679

17679:                                            ; preds = %17678
  br label %17680

17680:                                            ; preds = %17679
  br label %17681

17681:                                            ; preds = %17680
  br label %17682

17682:                                            ; preds = %17681
  br label %17683

17683:                                            ; preds = %17682
  %17684 = load i32, ptr @test_count, align 4, !tbaa !5
  %17685 = add nsw i32 %17684, 1
  store i32 %17685, ptr @test_count, align 4, !tbaa !5
  %17686 = load ptr, ptr %16, align 8, !tbaa !9
  %17687 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240503, ptr noundef @.str.212, ptr noundef %17686)
  %17688 = getelementptr inbounds %struct.s2n_result, ptr %363, i32 0, i32 0
  store i32 %17687, ptr %17688, align 4
  %17689 = getelementptr inbounds %struct.s2n_result, ptr %363, i32 0, i32 0
  %17690 = load i32, ptr %17689, align 4
  %17691 = call zeroext i1 @s2n_result_is_error(i32 %17690)
  br i1 %17691, label %17745, label %17692

17692:                                            ; preds = %17683
  br label %17693

17693:                                            ; preds = %17692
  br label %17694

17694:                                            ; preds = %17693
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #10
  %17695 = call ptr @__errno_location() #11
  %17696 = load i32, ptr %17695, align 4, !tbaa !5
  store i32 %17696, ptr %364, align 4, !tbaa !5
  %17697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17698 = call i32 @s2n_print_stacktrace(ptr noundef %17697)
  %17699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17700 = trunc i8 %17699 to i1
  br i1 %17700, label %17701, label %17723

17701:                                            ; preds = %17694
  %17702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17703 = call i32 @fileno(ptr noundef %17702) #10
  %17704 = call i32 @isatty(i32 noundef %17703) #10
  %17705 = icmp ne i32 %17704, 0
  br i1 %17705, label %17706, label %17723

17706:                                            ; preds = %17701
  %17707 = load i32, ptr %364, align 4, !tbaa !5
  %17708 = call ptr @__errno_location() #11
  store i32 %17707, ptr %17708, align 4, !tbaa !5
  %17709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17710 = load i32, ptr @test_count, align 4, !tbaa !5
  %17711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17712 = load i32, ptr %17711, align 4, !tbaa !5
  %17713 = call ptr @s2n_strerror(i32 noundef %17712, ptr noundef @.str.4)
  %17714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17715 = load i32, ptr %17714, align 4, !tbaa !5
  %17716 = call ptr @s2n_strerror_debug(i32 noundef %17715, ptr noundef @.str.4)
  %17717 = call ptr @__errno_location() #11
  %17718 = load i32, ptr %17717, align 4, !tbaa !5
  %17719 = call ptr @strerror(i32 noundef %17718) #10
  %17720 = call ptr @__errno_location() #11
  %17721 = load i32, ptr %17720, align 4, !tbaa !5
  %17722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17709, ptr noundef @.str.2, i32 noundef %17710, ptr noundef @.str.219, ptr noundef @.str.1, i32 noundef 835, ptr noundef %17713, ptr noundef %17716, ptr noundef %17719, i32 noundef %17721) #10
  br label %17740

17723:                                            ; preds = %17701, %17694
  %17724 = load i32, ptr %364, align 4, !tbaa !5
  %17725 = call ptr @__errno_location() #11
  store i32 %17724, ptr %17725, align 4, !tbaa !5
  %17726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17727 = load i32, ptr @test_count, align 4, !tbaa !5
  %17728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17729 = load i32, ptr %17728, align 4, !tbaa !5
  %17730 = call ptr @s2n_strerror(i32 noundef %17729, ptr noundef @.str.4)
  %17731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17732 = load i32, ptr %17731, align 4, !tbaa !5
  %17733 = call ptr @s2n_strerror_debug(i32 noundef %17732, ptr noundef @.str.4)
  %17734 = call ptr @__errno_location() #11
  %17735 = load i32, ptr %17734, align 4, !tbaa !5
  %17736 = call ptr @strerror(i32 noundef %17735) #10
  %17737 = call ptr @__errno_location() #11
  %17738 = load i32, ptr %17737, align 4, !tbaa !5
  %17739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17726, ptr noundef @.str.5, i32 noundef %17727, ptr noundef @.str.219, ptr noundef @.str.1, i32 noundef 835, ptr noundef %17730, ptr noundef %17733, ptr noundef %17736, i32 noundef %17738) #10
  br label %17740

17740:                                            ; preds = %17723, %17706
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #10
  br label %17741

17741:                                            ; preds = %17740
  br label %17742

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

17743:                                            ; No predecessors!
  br label %17744

17744:                                            ; preds = %17743
  br label %17745

17745:                                            ; preds = %17744, %17683
  br label %17746

17746:                                            ; preds = %17745
  br label %17747

17747:                                            ; preds = %17746
  br label %17748

17748:                                            ; preds = %17747
  %17749 = load i32, ptr @test_count, align 4, !tbaa !5
  %17750 = add nsw i32 %17749, 1
  store i32 %17750, ptr @test_count, align 4, !tbaa !5
  %17751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17752 = load i32, ptr %17751, align 4, !tbaa !5
  %17753 = icmp eq i32 %17752, 335544349
  br i1 %17753, label %17807, label %17754

17754:                                            ; preds = %17748
  br label %17755

17755:                                            ; preds = %17754
  br label %17756

17756:                                            ; preds = %17755
  call void @llvm.lifetime.start.p0(i64 4, ptr %365) #10
  %17757 = call ptr @__errno_location() #11
  %17758 = load i32, ptr %17757, align 4, !tbaa !5
  store i32 %17758, ptr %365, align 4, !tbaa !5
  %17759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17760 = call i32 @s2n_print_stacktrace(ptr noundef %17759)
  %17761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17762 = trunc i8 %17761 to i1
  br i1 %17762, label %17763, label %17785

17763:                                            ; preds = %17756
  %17764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17765 = call i32 @fileno(ptr noundef %17764) #10
  %17766 = call i32 @isatty(i32 noundef %17765) #10
  %17767 = icmp ne i32 %17766, 0
  br i1 %17767, label %17768, label %17785

17768:                                            ; preds = %17763
  %17769 = load i32, ptr %365, align 4, !tbaa !5
  %17770 = call ptr @__errno_location() #11
  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() #11
  %17780 = load i32, ptr %17779, align 4, !tbaa !5
  %17781 = call ptr @strerror(i32 noundef %17780) #10
  %17782 = call ptr @__errno_location() #11
  %17783 = load i32, ptr %17782, align 4, !tbaa !5
  %17784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17771, ptr noundef @.str.2, i32 noundef %17772, ptr noundef @.str.220, ptr noundef @.str.1, i32 noundef 835, ptr noundef %17775, ptr noundef %17778, ptr noundef %17781, i32 noundef %17783) #10
  br label %17802

17785:                                            ; preds = %17763, %17756
  %17786 = load i32, ptr %365, align 4, !tbaa !5
  %17787 = call ptr @__errno_location() #11
  store i32 %17786, ptr %17787, align 4, !tbaa !5
  %17788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17789 = load i32, ptr @test_count, align 4, !tbaa !5
  %17790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17791 = load i32, ptr %17790, align 4, !tbaa !5
  %17792 = call ptr @s2n_strerror(i32 noundef %17791, ptr noundef @.str.4)
  %17793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17794 = load i32, ptr %17793, align 4, !tbaa !5
  %17795 = call ptr @s2n_strerror_debug(i32 noundef %17794, ptr noundef @.str.4)
  %17796 = call ptr @__errno_location() #11
  %17797 = load i32, ptr %17796, align 4, !tbaa !5
  %17798 = call ptr @strerror(i32 noundef %17797) #10
  %17799 = call ptr @__errno_location() #11
  %17800 = load i32, ptr %17799, align 4, !tbaa !5
  %17801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17788, ptr noundef @.str.5, i32 noundef %17789, ptr noundef @.str.220, ptr noundef @.str.1, i32 noundef 835, ptr noundef %17792, ptr noundef %17795, ptr noundef %17798, i32 noundef %17800) #10
  br label %17802

17802:                                            ; preds = %17785, %17768
  call void @llvm.lifetime.end.p0(i64 4, ptr %365) #10
  br label %17803

17803:                                            ; preds = %17802
  br label %17804

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

17805:                                            ; No predecessors!
  br label %17806

17806:                                            ; preds = %17805
  br label %17807

17807:                                            ; preds = %17806, %17748
  br label %17808

17808:                                            ; preds = %17807
  br label %17809

17809:                                            ; preds = %17808
  br label %17810

17810:                                            ; preds = %17809
  %17811 = load i32, ptr @test_count, align 4, !tbaa !5
  %17812 = add nsw i32 %17811, 1
  store i32 %17812, ptr @test_count, align 4, !tbaa !5
  %17813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17814 = load i32, ptr %17813, align 4, !tbaa !5
  %17815 = call ptr @s2n_strerror_debug(i32 noundef %17814, ptr noundef @.str.4)
  %17816 = icmp eq ptr %17815, null
  br i1 %17816, label %17817, label %17870

17817:                                            ; preds = %17810
  br label %17818

17818:                                            ; preds = %17817
  br label %17819

17819:                                            ; preds = %17818
  call void @llvm.lifetime.start.p0(i64 4, ptr %366) #10
  %17820 = call ptr @__errno_location() #11
  %17821 = load i32, ptr %17820, align 4, !tbaa !5
  store i32 %17821, ptr %366, align 4, !tbaa !5
  %17822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17823 = call i32 @s2n_print_stacktrace(ptr noundef %17822)
  %17824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17825 = trunc i8 %17824 to i1
  br i1 %17825, label %17826, label %17848

17826:                                            ; preds = %17819
  %17827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17828 = call i32 @fileno(ptr noundef %17827) #10
  %17829 = call i32 @isatty(i32 noundef %17828) #10
  %17830 = icmp ne i32 %17829, 0
  br i1 %17830, label %17831, label %17848

17831:                                            ; preds = %17826
  %17832 = load i32, ptr %366, align 4, !tbaa !5
  %17833 = call ptr @__errno_location() #11
  store i32 %17832, ptr %17833, align 4, !tbaa !5
  %17834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17835 = load i32, ptr @test_count, align 4, !tbaa !5
  %17836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17837 = load i32, ptr %17836, align 4, !tbaa !5
  %17838 = call ptr @s2n_strerror(i32 noundef %17837, ptr noundef @.str.4)
  %17839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17840 = load i32, ptr %17839, align 4, !tbaa !5
  %17841 = call ptr @s2n_strerror_debug(i32 noundef %17840, ptr noundef @.str.4)
  %17842 = call ptr @__errno_location() #11
  %17843 = load i32, ptr %17842, align 4, !tbaa !5
  %17844 = call ptr @strerror(i32 noundef %17843) #10
  %17845 = call ptr @__errno_location() #11
  %17846 = load i32, ptr %17845, align 4, !tbaa !5
  %17847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17834, ptr noundef @.str.2, i32 noundef %17835, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 835, ptr noundef %17838, ptr noundef %17841, ptr noundef %17844, i32 noundef %17846) #10
  br label %17865

17848:                                            ; preds = %17826, %17819
  %17849 = load i32, ptr %366, align 4, !tbaa !5
  %17850 = call ptr @__errno_location() #11
  store i32 %17849, ptr %17850, align 4, !tbaa !5
  %17851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17852 = load i32, ptr @test_count, align 4, !tbaa !5
  %17853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17854 = load i32, ptr %17853, align 4, !tbaa !5
  %17855 = call ptr @s2n_strerror(i32 noundef %17854, ptr noundef @.str.4)
  %17856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17857 = load i32, ptr %17856, align 4, !tbaa !5
  %17858 = call ptr @s2n_strerror_debug(i32 noundef %17857, ptr noundef @.str.4)
  %17859 = call ptr @__errno_location() #11
  %17860 = load i32, ptr %17859, align 4, !tbaa !5
  %17861 = call ptr @strerror(i32 noundef %17860) #10
  %17862 = call ptr @__errno_location() #11
  %17863 = load i32, ptr %17862, align 4, !tbaa !5
  %17864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17851, ptr noundef @.str.5, i32 noundef %17852, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 835, ptr noundef %17855, ptr noundef %17858, ptr noundef %17861, i32 noundef %17863) #10
  br label %17865

17865:                                            ; preds = %17848, %17831
  call void @llvm.lifetime.end.p0(i64 4, ptr %366) #10
  br label %17866

17866:                                            ; preds = %17865
  br label %17867

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

17868:                                            ; No predecessors!
  br label %17869

17869:                                            ; preds = %17868
  br label %17870

17870:                                            ; preds = %17869, %17810
  br label %17871

17871:                                            ; preds = %17870
  br label %17872

17872:                                            ; preds = %17871
  br label %17873

17873:                                            ; preds = %17872
  br label %17874

17874:                                            ; preds = %17873
  br label %17875

17875:                                            ; preds = %17874
  %17876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17876, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17877 = call ptr @__errno_location() #11
  store i32 0, ptr %17877, align 4, !tbaa !5
  br label %17878

17878:                                            ; preds = %17875
  br label %17879

17879:                                            ; preds = %17878
  br label %17880

17880:                                            ; preds = %17879
  br label %17881

17881:                                            ; preds = %17880
  br label %17882

17882:                                            ; preds = %17881
  %17883 = load i32, ptr @test_count, align 4, !tbaa !5
  %17884 = add nsw i32 %17883, 1
  store i32 %17884, ptr @test_count, align 4, !tbaa !5
  %17885 = load ptr, ptr %14, align 8, !tbaa !9
  %17886 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_rfc9151, ptr noundef @.str.46, ptr noundef %17885)
  %17887 = getelementptr inbounds %struct.s2n_result, ptr %367, i32 0, i32 0
  store i32 %17886, ptr %17887, align 4
  %17888 = getelementptr inbounds %struct.s2n_result, ptr %367, i32 0, i32 0
  %17889 = load i32, ptr %17888, align 4
  %17890 = call zeroext i1 @s2n_result_is_ok(i32 %17889)
  br i1 %17890, label %17944, label %17891

17891:                                            ; preds = %17882
  br label %17892

17892:                                            ; preds = %17891
  br label %17893

17893:                                            ; preds = %17892
  call void @llvm.lifetime.start.p0(i64 4, ptr %368) #10
  %17894 = call ptr @__errno_location() #11
  %17895 = load i32, ptr %17894, align 4, !tbaa !5
  store i32 %17895, ptr %368, align 4, !tbaa !5
  %17896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17897 = call i32 @s2n_print_stacktrace(ptr noundef %17896)
  %17898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17899 = trunc i8 %17898 to i1
  br i1 %17899, label %17900, label %17922

17900:                                            ; preds = %17893
  %17901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17902 = call i32 @fileno(ptr noundef %17901) #10
  %17903 = call i32 @isatty(i32 noundef %17902) #10
  %17904 = icmp ne i32 %17903, 0
  br i1 %17904, label %17905, label %17922

17905:                                            ; preds = %17900
  %17906 = load i32, ptr %368, align 4, !tbaa !5
  %17907 = call ptr @__errno_location() #11
  store i32 %17906, ptr %17907, align 4, !tbaa !5
  %17908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17909 = load i32, ptr @test_count, align 4, !tbaa !5
  %17910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17911 = load i32, ptr %17910, align 4, !tbaa !5
  %17912 = call ptr @s2n_strerror(i32 noundef %17911, ptr noundef @.str.4)
  %17913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17914 = load i32, ptr %17913, align 4, !tbaa !5
  %17915 = call ptr @s2n_strerror_debug(i32 noundef %17914, ptr noundef @.str.4)
  %17916 = call ptr @__errno_location() #11
  %17917 = load i32, ptr %17916, align 4, !tbaa !5
  %17918 = call ptr @strerror(i32 noundef %17917) #10
  %17919 = call ptr @__errno_location() #11
  %17920 = load i32, ptr %17919, align 4, !tbaa !5
  %17921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17908, ptr noundef @.str.2, i32 noundef %17909, ptr noundef @.str.210, ptr noundef @.str.1, i32 noundef 840, ptr noundef %17912, ptr noundef %17915, ptr noundef %17918, i32 noundef %17920) #10
  br label %17939

17922:                                            ; preds = %17900, %17893
  %17923 = load i32, ptr %368, align 4, !tbaa !5
  %17924 = call ptr @__errno_location() #11
  store i32 %17923, ptr %17924, align 4, !tbaa !5
  %17925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17926 = load i32, ptr @test_count, align 4, !tbaa !5
  %17927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17928 = load i32, ptr %17927, align 4, !tbaa !5
  %17929 = call ptr @s2n_strerror(i32 noundef %17928, ptr noundef @.str.4)
  %17930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17931 = load i32, ptr %17930, align 4, !tbaa !5
  %17932 = call ptr @s2n_strerror_debug(i32 noundef %17931, ptr noundef @.str.4)
  %17933 = call ptr @__errno_location() #11
  %17934 = load i32, ptr %17933, align 4, !tbaa !5
  %17935 = call ptr @strerror(i32 noundef %17934) #10
  %17936 = call ptr @__errno_location() #11
  %17937 = load i32, ptr %17936, align 4, !tbaa !5
  %17938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17925, ptr noundef @.str.5, i32 noundef %17926, ptr noundef @.str.210, ptr noundef @.str.1, i32 noundef 840, ptr noundef %17929, ptr noundef %17932, ptr noundef %17935, i32 noundef %17937) #10
  br label %17939

17939:                                            ; preds = %17922, %17905
  call void @llvm.lifetime.end.p0(i64 4, ptr %368) #10
  br label %17940

17940:                                            ; preds = %17939
  br label %17941

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

17942:                                            ; No predecessors!
  br label %17943

17943:                                            ; preds = %17942
  br label %17944

17944:                                            ; preds = %17943, %17882
  br label %17945

17945:                                            ; preds = %17944
  br label %17946

17946:                                            ; preds = %17945
  br label %17947

17947:                                            ; preds = %17946
  %17948 = load i32, ptr @test_count, align 4, !tbaa !5
  %17949 = add nsw i32 %17948, 1
  store i32 %17949, ptr @test_count, align 4, !tbaa !5
  %17950 = load ptr, ptr %14, align 8, !tbaa !9
  %17951 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_rfc9151, ptr noundef @.str.184, ptr noundef %17950)
  %17952 = getelementptr inbounds %struct.s2n_result, ptr %369, i32 0, i32 0
  store i32 %17951, ptr %17952, align 4
  %17953 = getelementptr inbounds %struct.s2n_result, ptr %369, i32 0, i32 0
  %17954 = load i32, ptr %17953, align 4
  %17955 = call zeroext i1 @s2n_result_is_ok(i32 %17954)
  br i1 %17955, label %18009, label %17956

17956:                                            ; preds = %17947
  br label %17957

17957:                                            ; preds = %17956
  br label %17958

17958:                                            ; preds = %17957
  call void @llvm.lifetime.start.p0(i64 4, ptr %370) #10
  %17959 = call ptr @__errno_location() #11
  %17960 = load i32, ptr %17959, align 4, !tbaa !5
  store i32 %17960, ptr %370, align 4, !tbaa !5
  %17961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17962 = call i32 @s2n_print_stacktrace(ptr noundef %17961)
  %17963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17964 = trunc i8 %17963 to i1
  br i1 %17964, label %17965, label %17987

17965:                                            ; preds = %17958
  %17966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17967 = call i32 @fileno(ptr noundef %17966) #10
  %17968 = call i32 @isatty(i32 noundef %17967) #10
  %17969 = icmp ne i32 %17968, 0
  br i1 %17969, label %17970, label %17987

17970:                                            ; preds = %17965
  %17971 = load i32, ptr %370, align 4, !tbaa !5
  %17972 = call ptr @__errno_location() #11
  store i32 %17971, ptr %17972, align 4, !tbaa !5
  %17973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17974 = load i32, ptr @test_count, align 4, !tbaa !5
  %17975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17976 = load i32, ptr %17975, align 4, !tbaa !5
  %17977 = call ptr @s2n_strerror(i32 noundef %17976, ptr noundef @.str.4)
  %17978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17979 = load i32, ptr %17978, align 4, !tbaa !5
  %17980 = call ptr @s2n_strerror_debug(i32 noundef %17979, ptr noundef @.str.4)
  %17981 = call ptr @__errno_location() #11
  %17982 = load i32, ptr %17981, align 4, !tbaa !5
  %17983 = call ptr @strerror(i32 noundef %17982) #10
  %17984 = call ptr @__errno_location() #11
  %17985 = load i32, ptr %17984, align 4, !tbaa !5
  %17986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17973, ptr noundef @.str.2, i32 noundef %17974, ptr noundef @.str.211, ptr noundef @.str.1, i32 noundef 841, ptr noundef %17977, ptr noundef %17980, ptr noundef %17983, i32 noundef %17985) #10
  br label %18004

17987:                                            ; preds = %17965, %17958
  %17988 = load i32, ptr %370, align 4, !tbaa !5
  %17989 = call ptr @__errno_location() #11
  store i32 %17988, ptr %17989, align 4, !tbaa !5
  %17990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17991 = load i32, ptr @test_count, align 4, !tbaa !5
  %17992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17993 = load i32, ptr %17992, align 4, !tbaa !5
  %17994 = call ptr @s2n_strerror(i32 noundef %17993, ptr noundef @.str.4)
  %17995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17996 = load i32, ptr %17995, align 4, !tbaa !5
  %17997 = call ptr @s2n_strerror_debug(i32 noundef %17996, ptr noundef @.str.4)
  %17998 = call ptr @__errno_location() #11
  %17999 = load i32, ptr %17998, align 4, !tbaa !5
  %18000 = call ptr @strerror(i32 noundef %17999) #10
  %18001 = call ptr @__errno_location() #11
  %18002 = load i32, ptr %18001, align 4, !tbaa !5
  %18003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17990, ptr noundef @.str.5, i32 noundef %17991, ptr noundef @.str.211, ptr noundef @.str.1, i32 noundef 841, ptr noundef %17994, ptr noundef %17997, ptr noundef %18000, i32 noundef %18002) #10
  br label %18004

18004:                                            ; preds = %17987, %17970
  call void @llvm.lifetime.end.p0(i64 4, ptr %370) #10
  br label %18005

18005:                                            ; preds = %18004
  br label %18006

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

18007:                                            ; No predecessors!
  br label %18008

18008:                                            ; preds = %18007
  br label %18009

18009:                                            ; preds = %18008, %17947
  br label %18010

18010:                                            ; preds = %18009
  br label %18011

18011:                                            ; preds = %18010
  br label %18012

18012:                                            ; preds = %18011
  %18013 = load i32, ptr @test_count, align 4, !tbaa !5
  %18014 = add nsw i32 %18013, 1
  store i32 %18014, ptr @test_count, align 4, !tbaa !5
  %18015 = load ptr, ptr %14, align 8, !tbaa !9
  %18016 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_rfc9151, ptr noundef @.str.221, ptr noundef %18015)
  %18017 = getelementptr inbounds %struct.s2n_result, ptr %371, i32 0, i32 0
  store i32 %18016, ptr %18017, align 4
  %18018 = getelementptr inbounds %struct.s2n_result, ptr %371, i32 0, i32 0
  %18019 = load i32, ptr %18018, align 4
  %18020 = call zeroext i1 @s2n_result_is_ok(i32 %18019)
  br i1 %18020, label %18074, label %18021

18021:                                            ; preds = %18012
  br label %18022

18022:                                            ; preds = %18021
  br label %18023

18023:                                            ; preds = %18022
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #10
  %18024 = call ptr @__errno_location() #11
  %18025 = load i32, ptr %18024, align 4, !tbaa !5
  store i32 %18025, ptr %372, align 4, !tbaa !5
  %18026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18027 = call i32 @s2n_print_stacktrace(ptr noundef %18026)
  %18028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18029 = trunc i8 %18028 to i1
  br i1 %18029, label %18030, label %18052

18030:                                            ; preds = %18023
  %18031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18032 = call i32 @fileno(ptr noundef %18031) #10
  %18033 = call i32 @isatty(i32 noundef %18032) #10
  %18034 = icmp ne i32 %18033, 0
  br i1 %18034, label %18035, label %18052

18035:                                            ; preds = %18030
  %18036 = load i32, ptr %372, align 4, !tbaa !5
  %18037 = call ptr @__errno_location() #11
  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() #11
  %18047 = load i32, ptr %18046, align 4, !tbaa !5
  %18048 = call ptr @strerror(i32 noundef %18047) #10
  %18049 = call ptr @__errno_location() #11
  %18050 = load i32, ptr %18049, align 4, !tbaa !5
  %18051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18038, ptr noundef @.str.2, i32 noundef %18039, ptr noundef @.str.222, ptr noundef @.str.1, i32 noundef 842, ptr noundef %18042, ptr noundef %18045, ptr noundef %18048, i32 noundef %18050) #10
  br label %18069

18052:                                            ; preds = %18030, %18023
  %18053 = load i32, ptr %372, align 4, !tbaa !5
  %18054 = call ptr @__errno_location() #11
  store i32 %18053, ptr %18054, align 4, !tbaa !5
  %18055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18056 = load i32, ptr @test_count, align 4, !tbaa !5
  %18057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18058 = load i32, ptr %18057, align 4, !tbaa !5
  %18059 = call ptr @s2n_strerror(i32 noundef %18058, ptr noundef @.str.4)
  %18060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18061 = load i32, ptr %18060, align 4, !tbaa !5
  %18062 = call ptr @s2n_strerror_debug(i32 noundef %18061, ptr noundef @.str.4)
  %18063 = call ptr @__errno_location() #11
  %18064 = load i32, ptr %18063, align 4, !tbaa !5
  %18065 = call ptr @strerror(i32 noundef %18064) #10
  %18066 = call ptr @__errno_location() #11
  %18067 = load i32, ptr %18066, align 4, !tbaa !5
  %18068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18055, ptr noundef @.str.5, i32 noundef %18056, ptr noundef @.str.222, ptr noundef @.str.1, i32 noundef 842, ptr noundef %18059, ptr noundef %18062, ptr noundef %18065, i32 noundef %18067) #10
  br label %18069

18069:                                            ; preds = %18052, %18035
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #10
  br label %18070

18070:                                            ; preds = %18069
  br label %18071

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

18072:                                            ; No predecessors!
  br label %18073

18073:                                            ; preds = %18072
  br label %18074

18074:                                            ; preds = %18073, %18012
  br label %18075

18075:                                            ; preds = %18074
  br label %18076

18076:                                            ; preds = %18075
  br label %18077

18077:                                            ; preds = %18076
  %18078 = load i32, ptr @test_count, align 4, !tbaa !5
  %18079 = add nsw i32 %18078, 1
  store i32 %18079, ptr @test_count, align 4, !tbaa !5
  %18080 = load ptr, ptr %14, align 8, !tbaa !9
  %18081 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240503, ptr noundef @.str.214, ptr noundef %18080)
  %18082 = getelementptr inbounds %struct.s2n_result, ptr %373, i32 0, i32 0
  store i32 %18081, ptr %18082, align 4
  %18083 = getelementptr inbounds %struct.s2n_result, ptr %373, i32 0, i32 0
  %18084 = load i32, ptr %18083, align 4
  %18085 = call zeroext i1 @s2n_result_is_ok(i32 %18084)
  br i1 %18085, label %18139, label %18086

18086:                                            ; preds = %18077
  br label %18087

18087:                                            ; preds = %18086
  br label %18088

18088:                                            ; preds = %18087
  call void @llvm.lifetime.start.p0(i64 4, ptr %374) #10
  %18089 = call ptr @__errno_location() #11
  %18090 = load i32, ptr %18089, align 4, !tbaa !5
  store i32 %18090, ptr %374, align 4, !tbaa !5
  %18091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18092 = call i32 @s2n_print_stacktrace(ptr noundef %18091)
  %18093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18094 = trunc i8 %18093 to i1
  br i1 %18094, label %18095, label %18117

18095:                                            ; preds = %18088
  %18096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18097 = call i32 @fileno(ptr noundef %18096) #10
  %18098 = call i32 @isatty(i32 noundef %18097) #10
  %18099 = icmp ne i32 %18098, 0
  br i1 %18099, label %18100, label %18117

18100:                                            ; preds = %18095
  %18101 = load i32, ptr %374, align 4, !tbaa !5
  %18102 = call ptr @__errno_location() #11
  store i32 %18101, ptr %18102, align 4, !tbaa !5
  %18103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18104 = load i32, ptr @test_count, align 4, !tbaa !5
  %18105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18106 = load i32, ptr %18105, align 4, !tbaa !5
  %18107 = call ptr @s2n_strerror(i32 noundef %18106, ptr noundef @.str.4)
  %18108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18109 = load i32, ptr %18108, align 4, !tbaa !5
  %18110 = call ptr @s2n_strerror_debug(i32 noundef %18109, ptr noundef @.str.4)
  %18111 = call ptr @__errno_location() #11
  %18112 = load i32, ptr %18111, align 4, !tbaa !5
  %18113 = call ptr @strerror(i32 noundef %18112) #10
  %18114 = call ptr @__errno_location() #11
  %18115 = load i32, ptr %18114, align 4, !tbaa !5
  %18116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18103, ptr noundef @.str.2, i32 noundef %18104, ptr noundef @.str.215, ptr noundef @.str.1, i32 noundef 845, ptr noundef %18107, ptr noundef %18110, ptr noundef %18113, i32 noundef %18115) #10
  br label %18134

18117:                                            ; preds = %18095, %18088
  %18118 = load i32, ptr %374, align 4, !tbaa !5
  %18119 = call ptr @__errno_location() #11
  store i32 %18118, ptr %18119, align 4, !tbaa !5
  %18120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18121 = load i32, ptr @test_count, align 4, !tbaa !5
  %18122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18123 = load i32, ptr %18122, align 4, !tbaa !5
  %18124 = call ptr @s2n_strerror(i32 noundef %18123, ptr noundef @.str.4)
  %18125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18126 = load i32, ptr %18125, align 4, !tbaa !5
  %18127 = call ptr @s2n_strerror_debug(i32 noundef %18126, ptr noundef @.str.4)
  %18128 = call ptr @__errno_location() #11
  %18129 = load i32, ptr %18128, align 4, !tbaa !5
  %18130 = call ptr @strerror(i32 noundef %18129) #10
  %18131 = call ptr @__errno_location() #11
  %18132 = load i32, ptr %18131, align 4, !tbaa !5
  %18133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18120, ptr noundef @.str.5, i32 noundef %18121, ptr noundef @.str.215, ptr noundef @.str.1, i32 noundef 845, ptr noundef %18124, ptr noundef %18127, ptr noundef %18130, i32 noundef %18132) #10
  br label %18134

18134:                                            ; preds = %18117, %18100
  call void @llvm.lifetime.end.p0(i64 4, ptr %374) #10
  br label %18135

18135:                                            ; preds = %18134
  br label %18136

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

18137:                                            ; No predecessors!
  br label %18138

18138:                                            ; preds = %18137
  br label %18139

18139:                                            ; preds = %18138, %18077
  br label %18140

18140:                                            ; preds = %18139
  br label %18141

18141:                                            ; preds = %18140
  br label %18142

18142:                                            ; preds = %18141
  %18143 = load i32, ptr @test_count, align 4, !tbaa !5
  %18144 = add nsw i32 %18143, 1
  store i32 %18144, ptr @test_count, align 4, !tbaa !5
  %18145 = load ptr, ptr %14, align 8, !tbaa !9
  %18146 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240502, ptr noundef @.str.214, ptr noundef %18145)
  %18147 = getelementptr inbounds %struct.s2n_result, ptr %375, i32 0, i32 0
  store i32 %18146, ptr %18147, align 4
  %18148 = getelementptr inbounds %struct.s2n_result, ptr %375, i32 0, i32 0
  %18149 = load i32, ptr %18148, align 4
  %18150 = call zeroext i1 @s2n_result_is_ok(i32 %18149)
  br i1 %18150, label %18204, label %18151

18151:                                            ; preds = %18142
  br label %18152

18152:                                            ; preds = %18151
  br label %18153

18153:                                            ; preds = %18152
  call void @llvm.lifetime.start.p0(i64 4, ptr %376) #10
  %18154 = call ptr @__errno_location() #11
  %18155 = load i32, ptr %18154, align 4, !tbaa !5
  store i32 %18155, ptr %376, align 4, !tbaa !5
  %18156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18157 = call i32 @s2n_print_stacktrace(ptr noundef %18156)
  %18158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18159 = trunc i8 %18158 to i1
  br i1 %18159, label %18160, label %18182

18160:                                            ; preds = %18153
  %18161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18162 = call i32 @fileno(ptr noundef %18161) #10
  %18163 = call i32 @isatty(i32 noundef %18162) #10
  %18164 = icmp ne i32 %18163, 0
  br i1 %18164, label %18165, label %18182

18165:                                            ; preds = %18160
  %18166 = load i32, ptr %376, align 4, !tbaa !5
  %18167 = call ptr @__errno_location() #11
  store i32 %18166, ptr %18167, align 4, !tbaa !5
  %18168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18169 = load i32, ptr @test_count, align 4, !tbaa !5
  %18170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18171 = load i32, ptr %18170, align 4, !tbaa !5
  %18172 = call ptr @s2n_strerror(i32 noundef %18171, ptr noundef @.str.4)
  %18173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18174 = load i32, ptr %18173, align 4, !tbaa !5
  %18175 = call ptr @s2n_strerror_debug(i32 noundef %18174, ptr noundef @.str.4)
  %18176 = call ptr @__errno_location() #11
  %18177 = load i32, ptr %18176, align 4, !tbaa !5
  %18178 = call ptr @strerror(i32 noundef %18177) #10
  %18179 = call ptr @__errno_location() #11
  %18180 = load i32, ptr %18179, align 4, !tbaa !5
  %18181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18168, ptr noundef @.str.2, i32 noundef %18169, ptr noundef @.str.216, ptr noundef @.str.1, i32 noundef 847, ptr noundef %18172, ptr noundef %18175, ptr noundef %18178, i32 noundef %18180) #10
  br label %18199

18182:                                            ; preds = %18160, %18153
  %18183 = load i32, ptr %376, align 4, !tbaa !5
  %18184 = call ptr @__errno_location() #11
  store i32 %18183, ptr %18184, align 4, !tbaa !5
  %18185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18186 = load i32, ptr @test_count, align 4, !tbaa !5
  %18187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18188 = load i32, ptr %18187, align 4, !tbaa !5
  %18189 = call ptr @s2n_strerror(i32 noundef %18188, ptr noundef @.str.4)
  %18190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18191 = load i32, ptr %18190, align 4, !tbaa !5
  %18192 = call ptr @s2n_strerror_debug(i32 noundef %18191, ptr noundef @.str.4)
  %18193 = call ptr @__errno_location() #11
  %18194 = load i32, ptr %18193, align 4, !tbaa !5
  %18195 = call ptr @strerror(i32 noundef %18194) #10
  %18196 = call ptr @__errno_location() #11
  %18197 = load i32, ptr %18196, align 4, !tbaa !5
  %18198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18185, ptr noundef @.str.5, i32 noundef %18186, ptr noundef @.str.216, ptr noundef @.str.1, i32 noundef 847, ptr noundef %18189, ptr noundef %18192, ptr noundef %18195, i32 noundef %18197) #10
  br label %18199

18199:                                            ; preds = %18182, %18165
  call void @llvm.lifetime.end.p0(i64 4, ptr %376) #10
  br label %18200

18200:                                            ; preds = %18199
  br label %18201

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

18202:                                            ; No predecessors!
  br label %18203

18203:                                            ; preds = %18202
  br label %18204

18204:                                            ; preds = %18203, %18142
  br label %18205

18205:                                            ; preds = %18204
  br label %18206

18206:                                            ; preds = %18205
  br label %18207

18207:                                            ; preds = %18206
  %18208 = load i32, ptr @test_count, align 4, !tbaa !5
  %18209 = add nsw i32 %18208, 1
  store i32 %18209, ptr @test_count, align 4, !tbaa !5
  %18210 = load ptr, ptr %14, align 8, !tbaa !9
  %18211 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20250414, ptr noundef @.str.214, ptr noundef %18210)
  %18212 = getelementptr inbounds %struct.s2n_result, ptr %377, i32 0, i32 0
  store i32 %18211, ptr %18212, align 4
  %18213 = getelementptr inbounds %struct.s2n_result, ptr %377, i32 0, i32 0
  %18214 = load i32, ptr %18213, align 4
  %18215 = call zeroext i1 @s2n_result_is_ok(i32 %18214)
  br i1 %18215, label %18269, label %18216

18216:                                            ; preds = %18207
  br label %18217

18217:                                            ; preds = %18216
  br label %18218

18218:                                            ; preds = %18217
  call void @llvm.lifetime.start.p0(i64 4, ptr %378) #10
  %18219 = call ptr @__errno_location() #11
  %18220 = load i32, ptr %18219, align 4, !tbaa !5
  store i32 %18220, ptr %378, align 4, !tbaa !5
  %18221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18222 = call i32 @s2n_print_stacktrace(ptr noundef %18221)
  %18223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18224 = trunc i8 %18223 to i1
  br i1 %18224, label %18225, label %18247

18225:                                            ; preds = %18218
  %18226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18227 = call i32 @fileno(ptr noundef %18226) #10
  %18228 = call i32 @isatty(i32 noundef %18227) #10
  %18229 = icmp ne i32 %18228, 0
  br i1 %18229, label %18230, label %18247

18230:                                            ; preds = %18225
  %18231 = load i32, ptr %378, align 4, !tbaa !5
  %18232 = call ptr @__errno_location() #11
  store i32 %18231, ptr %18232, align 4, !tbaa !5
  %18233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18234 = load i32, ptr @test_count, align 4, !tbaa !5
  %18235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18236 = load i32, ptr %18235, align 4, !tbaa !5
  %18237 = call ptr @s2n_strerror(i32 noundef %18236, ptr noundef @.str.4)
  %18238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18239 = load i32, ptr %18238, align 4, !tbaa !5
  %18240 = call ptr @s2n_strerror_debug(i32 noundef %18239, ptr noundef @.str.4)
  %18241 = call ptr @__errno_location() #11
  %18242 = load i32, ptr %18241, align 4, !tbaa !5
  %18243 = call ptr @strerror(i32 noundef %18242) #10
  %18244 = call ptr @__errno_location() #11
  %18245 = load i32, ptr %18244, align 4, !tbaa !5
  %18246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18233, ptr noundef @.str.2, i32 noundef %18234, ptr noundef @.str.223, ptr noundef @.str.1, i32 noundef 848, ptr noundef %18237, ptr noundef %18240, ptr noundef %18243, i32 noundef %18245) #10
  br label %18264

18247:                                            ; preds = %18225, %18218
  %18248 = load i32, ptr %378, align 4, !tbaa !5
  %18249 = call ptr @__errno_location() #11
  store i32 %18248, ptr %18249, align 4, !tbaa !5
  %18250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18251 = load i32, ptr @test_count, align 4, !tbaa !5
  %18252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18253 = load i32, ptr %18252, align 4, !tbaa !5
  %18254 = call ptr @s2n_strerror(i32 noundef %18253, ptr noundef @.str.4)
  %18255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18256 = load i32, ptr %18255, align 4, !tbaa !5
  %18257 = call ptr @s2n_strerror_debug(i32 noundef %18256, ptr noundef @.str.4)
  %18258 = call ptr @__errno_location() #11
  %18259 = load i32, ptr %18258, align 4, !tbaa !5
  %18260 = call ptr @strerror(i32 noundef %18259) #10
  %18261 = call ptr @__errno_location() #11
  %18262 = load i32, ptr %18261, align 4, !tbaa !5
  %18263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18250, ptr noundef @.str.5, i32 noundef %18251, ptr noundef @.str.223, ptr noundef @.str.1, i32 noundef 848, ptr noundef %18254, ptr noundef %18257, ptr noundef %18260, i32 noundef %18262) #10
  br label %18264

18264:                                            ; preds = %18247, %18230
  call void @llvm.lifetime.end.p0(i64 4, ptr %378) #10
  br label %18265

18265:                                            ; preds = %18264
  br label %18266

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

18267:                                            ; No predecessors!
  br label %18268

18268:                                            ; preds = %18267
  br label %18269

18269:                                            ; preds = %18268, %18207
  br label %18270

18270:                                            ; preds = %18269
  br label %18271

18271:                                            ; preds = %18270
  br label %18272

18272:                                            ; preds = %18271
  %18273 = load i32, ptr @test_count, align 4, !tbaa !5
  %18274 = add nsw i32 %18273, 1
  store i32 %18274, ptr @test_count, align 4, !tbaa !5
  %18275 = load ptr, ptr %14, align 8, !tbaa !9
  %18276 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240503, ptr noundef @.str.221, ptr noundef %18275)
  %18277 = getelementptr inbounds %struct.s2n_result, ptr %379, i32 0, i32 0
  store i32 %18276, ptr %18277, align 4
  %18278 = getelementptr inbounds %struct.s2n_result, ptr %379, i32 0, i32 0
  %18279 = load i32, ptr %18278, align 4
  %18280 = call zeroext i1 @s2n_result_is_ok(i32 %18279)
  br i1 %18280, label %18334, label %18281

18281:                                            ; preds = %18272
  br label %18282

18282:                                            ; preds = %18281
  br label %18283

18283:                                            ; preds = %18282
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #10
  %18284 = call ptr @__errno_location() #11
  %18285 = load i32, ptr %18284, align 4, !tbaa !5
  store i32 %18285, ptr %380, align 4, !tbaa !5
  %18286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18287 = call i32 @s2n_print_stacktrace(ptr noundef %18286)
  %18288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18289 = trunc i8 %18288 to i1
  br i1 %18289, label %18290, label %18312

18290:                                            ; preds = %18283
  %18291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18292 = call i32 @fileno(ptr noundef %18291) #10
  %18293 = call i32 @isatty(i32 noundef %18292) #10
  %18294 = icmp ne i32 %18293, 0
  br i1 %18294, label %18295, label %18312

18295:                                            ; preds = %18290
  %18296 = load i32, ptr %380, align 4, !tbaa !5
  %18297 = call ptr @__errno_location() #11
  store i32 %18296, ptr %18297, align 4, !tbaa !5
  %18298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18299 = load i32, ptr @test_count, align 4, !tbaa !5
  %18300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18301 = load i32, ptr %18300, align 4, !tbaa !5
  %18302 = call ptr @s2n_strerror(i32 noundef %18301, ptr noundef @.str.4)
  %18303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18304 = load i32, ptr %18303, align 4, !tbaa !5
  %18305 = call ptr @s2n_strerror_debug(i32 noundef %18304, ptr noundef @.str.4)
  %18306 = call ptr @__errno_location() #11
  %18307 = load i32, ptr %18306, align 4, !tbaa !5
  %18308 = call ptr @strerror(i32 noundef %18307) #10
  %18309 = call ptr @__errno_location() #11
  %18310 = load i32, ptr %18309, align 4, !tbaa !5
  %18311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18298, ptr noundef @.str.2, i32 noundef %18299, ptr noundef @.str.224, ptr noundef @.str.1, i32 noundef 851, ptr noundef %18302, ptr noundef %18305, ptr noundef %18308, i32 noundef %18310) #10
  br label %18329

18312:                                            ; preds = %18290, %18283
  %18313 = load i32, ptr %380, align 4, !tbaa !5
  %18314 = call ptr @__errno_location() #11
  store i32 %18313, ptr %18314, align 4, !tbaa !5
  %18315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18316 = load i32, ptr @test_count, align 4, !tbaa !5
  %18317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18318 = load i32, ptr %18317, align 4, !tbaa !5
  %18319 = call ptr @s2n_strerror(i32 noundef %18318, ptr noundef @.str.4)
  %18320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18321 = load i32, ptr %18320, align 4, !tbaa !5
  %18322 = call ptr @s2n_strerror_debug(i32 noundef %18321, ptr noundef @.str.4)
  %18323 = call ptr @__errno_location() #11
  %18324 = load i32, ptr %18323, align 4, !tbaa !5
  %18325 = call ptr @strerror(i32 noundef %18324) #10
  %18326 = call ptr @__errno_location() #11
  %18327 = load i32, ptr %18326, align 4, !tbaa !5
  %18328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18315, ptr noundef @.str.5, i32 noundef %18316, ptr noundef @.str.224, ptr noundef @.str.1, i32 noundef 851, ptr noundef %18319, ptr noundef %18322, ptr noundef %18325, i32 noundef %18327) #10
  br label %18329

18329:                                            ; preds = %18312, %18295
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #10
  br label %18330

18330:                                            ; preds = %18329
  br label %18331

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

18332:                                            ; No predecessors!
  br label %18333

18333:                                            ; preds = %18332
  br label %18334

18334:                                            ; preds = %18333, %18272
  br label %18335

18335:                                            ; preds = %18334
  br label %18336

18336:                                            ; preds = %18335
  br label %18337

18337:                                            ; preds = %18336
  %18338 = load i32, ptr @test_count, align 4, !tbaa !5
  %18339 = add nsw i32 %18338, 1
  store i32 %18339, ptr @test_count, align 4, !tbaa !5
  %18340 = load ptr, ptr %16, align 8, !tbaa !9
  %18341 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20240503, ptr noundef @.str.221, ptr noundef %18340)
  %18342 = getelementptr inbounds %struct.s2n_result, ptr %381, i32 0, i32 0
  store i32 %18341, ptr %18342, align 4
  %18343 = getelementptr inbounds %struct.s2n_result, ptr %381, i32 0, i32 0
  %18344 = load i32, ptr %18343, align 4
  %18345 = call zeroext i1 @s2n_result_is_ok(i32 %18344)
  br i1 %18345, label %18399, label %18346

18346:                                            ; preds = %18337
  br label %18347

18347:                                            ; preds = %18346
  br label %18348

18348:                                            ; preds = %18347
  call void @llvm.lifetime.start.p0(i64 4, ptr %382) #10
  %18349 = call ptr @__errno_location() #11
  %18350 = load i32, ptr %18349, align 4, !tbaa !5
  store i32 %18350, ptr %382, align 4, !tbaa !5
  %18351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18352 = call i32 @s2n_print_stacktrace(ptr noundef %18351)
  %18353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18354 = trunc i8 %18353 to i1
  br i1 %18354, label %18355, label %18377

18355:                                            ; preds = %18348
  %18356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18357 = call i32 @fileno(ptr noundef %18356) #10
  %18358 = call i32 @isatty(i32 noundef %18357) #10
  %18359 = icmp ne i32 %18358, 0
  br i1 %18359, label %18360, label %18377

18360:                                            ; preds = %18355
  %18361 = load i32, ptr %382, align 4, !tbaa !5
  %18362 = call ptr @__errno_location() #11
  store i32 %18361, ptr %18362, align 4, !tbaa !5
  %18363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18364 = load i32, ptr @test_count, align 4, !tbaa !5
  %18365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18366 = load i32, ptr %18365, align 4, !tbaa !5
  %18367 = call ptr @s2n_strerror(i32 noundef %18366, ptr noundef @.str.4)
  %18368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18369 = load i32, ptr %18368, align 4, !tbaa !5
  %18370 = call ptr @s2n_strerror_debug(i32 noundef %18369, ptr noundef @.str.4)
  %18371 = call ptr @__errno_location() #11
  %18372 = load i32, ptr %18371, align 4, !tbaa !5
  %18373 = call ptr @strerror(i32 noundef %18372) #10
  %18374 = call ptr @__errno_location() #11
  %18375 = load i32, ptr %18374, align 4, !tbaa !5
  %18376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18363, ptr noundef @.str.2, i32 noundef %18364, ptr noundef @.str.225, ptr noundef @.str.1, i32 noundef 852, ptr noundef %18367, ptr noundef %18370, ptr noundef %18373, i32 noundef %18375) #10
  br label %18394

18377:                                            ; preds = %18355, %18348
  %18378 = load i32, ptr %382, align 4, !tbaa !5
  %18379 = call ptr @__errno_location() #11
  store i32 %18378, ptr %18379, align 4, !tbaa !5
  %18380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18381 = load i32, ptr @test_count, align 4, !tbaa !5
  %18382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18383 = load i32, ptr %18382, align 4, !tbaa !5
  %18384 = call ptr @s2n_strerror(i32 noundef %18383, ptr noundef @.str.4)
  %18385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18386 = load i32, ptr %18385, align 4, !tbaa !5
  %18387 = call ptr @s2n_strerror_debug(i32 noundef %18386, ptr noundef @.str.4)
  %18388 = call ptr @__errno_location() #11
  %18389 = load i32, ptr %18388, align 4, !tbaa !5
  %18390 = call ptr @strerror(i32 noundef %18389) #10
  %18391 = call ptr @__errno_location() #11
  %18392 = load i32, ptr %18391, align 4, !tbaa !5
  %18393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18380, ptr noundef @.str.5, i32 noundef %18381, ptr noundef @.str.225, ptr noundef @.str.1, i32 noundef 852, ptr noundef %18384, ptr noundef %18387, ptr noundef %18390, i32 noundef %18392) #10
  br label %18394

18394:                                            ; preds = %18377, %18360
  call void @llvm.lifetime.end.p0(i64 4, ptr %382) #10
  br label %18395

18395:                                            ; preds = %18394
  br label %18396

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

18397:                                            ; No predecessors!
  br label %18398

18398:                                            ; preds = %18397
  br label %18399

18399:                                            ; preds = %18398, %18337
  br label %18400

18400:                                            ; preds = %18399
  br label %18401

18401:                                            ; preds = %18400
  br label %18402

18402:                                            ; preds = %18401
  %18403 = load i32, ptr @test_count, align 4, !tbaa !5
  %18404 = add nsw i32 %18403, 1
  store i32 %18404, ptr @test_count, align 4, !tbaa !5
  %18405 = load ptr, ptr %14, align 8, !tbaa !9
  %18406 = call i32 @s2n_test_security_policies_compatible(ptr noundef @security_policy_20250211, ptr noundef @.str.221, ptr noundef %18405)
  %18407 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  store i32 %18406, ptr %18407, align 4
  %18408 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  %18409 = load i32, ptr %18408, align 4
  %18410 = call zeroext i1 @s2n_result_is_ok(i32 %18409)
  br i1 %18410, label %18464, label %18411

18411:                                            ; preds = %18402
  br label %18412

18412:                                            ; preds = %18411
  br label %18413

18413:                                            ; preds = %18412
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #10
  %18414 = call ptr @__errno_location() #11
  %18415 = load i32, ptr %18414, align 4, !tbaa !5
  store i32 %18415, ptr %384, align 4, !tbaa !5
  %18416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18417 = call i32 @s2n_print_stacktrace(ptr noundef %18416)
  %18418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18419 = trunc i8 %18418 to i1
  br i1 %18419, label %18420, label %18442

18420:                                            ; preds = %18413
  %18421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18422 = call i32 @fileno(ptr noundef %18421) #10
  %18423 = call i32 @isatty(i32 noundef %18422) #10
  %18424 = icmp ne i32 %18423, 0
  br i1 %18424, label %18425, label %18442

18425:                                            ; preds = %18420
  %18426 = load i32, ptr %384, align 4, !tbaa !5
  %18427 = call ptr @__errno_location() #11
  store i32 %18426, ptr %18427, align 4, !tbaa !5
  %18428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18429 = load i32, ptr @test_count, align 4, !tbaa !5
  %18430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18431 = load i32, ptr %18430, align 4, !tbaa !5
  %18432 = call ptr @s2n_strerror(i32 noundef %18431, ptr noundef @.str.4)
  %18433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18434 = load i32, ptr %18433, align 4, !tbaa !5
  %18435 = call ptr @s2n_strerror_debug(i32 noundef %18434, ptr noundef @.str.4)
  %18436 = call ptr @__errno_location() #11
  %18437 = load i32, ptr %18436, align 4, !tbaa !5
  %18438 = call ptr @strerror(i32 noundef %18437) #10
  %18439 = call ptr @__errno_location() #11
  %18440 = load i32, ptr %18439, align 4, !tbaa !5
  %18441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18428, ptr noundef @.str.2, i32 noundef %18429, ptr noundef @.str.226, ptr noundef @.str.1, i32 noundef 855, ptr noundef %18432, ptr noundef %18435, ptr noundef %18438, i32 noundef %18440) #10
  br label %18459

18442:                                            ; preds = %18420, %18413
  %18443 = load i32, ptr %384, align 4, !tbaa !5
  %18444 = call ptr @__errno_location() #11
  store i32 %18443, ptr %18444, align 4, !tbaa !5
  %18445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18446 = load i32, ptr @test_count, align 4, !tbaa !5
  %18447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18448 = load i32, ptr %18447, align 4, !tbaa !5
  %18449 = call ptr @s2n_strerror(i32 noundef %18448, ptr noundef @.str.4)
  %18450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18451 = load i32, ptr %18450, align 4, !tbaa !5
  %18452 = call ptr @s2n_strerror_debug(i32 noundef %18451, ptr noundef @.str.4)
  %18453 = call ptr @__errno_location() #11
  %18454 = load i32, ptr %18453, align 4, !tbaa !5
  %18455 = call ptr @strerror(i32 noundef %18454) #10
  %18456 = call ptr @__errno_location() #11
  %18457 = load i32, ptr %18456, align 4, !tbaa !5
  %18458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18445, ptr noundef @.str.5, i32 noundef %18446, ptr noundef @.str.226, ptr noundef @.str.1, i32 noundef 855, ptr noundef %18449, ptr noundef %18452, ptr noundef %18455, i32 noundef %18457) #10
  br label %18459

18459:                                            ; preds = %18442, %18425
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #10
  br label %18460

18460:                                            ; preds = %18459
  br label %18461

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

18462:                                            ; No predecessors!
  br label %18463

18463:                                            ; preds = %18462
  br label %18464

18464:                                            ; preds = %18463, %18402
  br label %18465

18465:                                            ; preds = %18464
  br label %18466

18466:                                            ; preds = %18465
  br label %18467

18467:                                            ; preds = %18466, %17223
  call void @llvm.lifetime.start.p0(i64 16, ptr %385) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %385, ptr align 16 @__const.main.versioned_policies, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %386) #10
  %18468 = getelementptr inbounds %struct.s2n_supported_cert, ptr %386, i32 0, i32 0
  %18469 = load ptr, ptr %10, align 8, !tbaa !9
  store ptr %18469, ptr %18468, align 16, !tbaa !80
  %18470 = getelementptr inbounds %struct.s2n_supported_cert, ptr %386, i32 0, i32 1
  store i64 0, ptr %18470, align 8, !tbaa !82
  %18471 = getelementptr inbounds %struct.s2n_supported_cert, ptr %386, i64 1
  %18472 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18471, i32 0, i32 0
  %18473 = load ptr, ptr %12, align 8, !tbaa !9
  store ptr %18473, ptr %18472, align 16, !tbaa !80
  %18474 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18471, i32 0, i32 1
  store i64 1, ptr %18474, align 8, !tbaa !82
  br label %18475

18475:                                            ; preds = %18467
  %18476 = load i32, ptr @test_count, align 4, !tbaa !5
  %18477 = add nsw i32 %18476, 1
  store i32 %18477, ptr @test_count, align 4, !tbaa !5
  %18478 = getelementptr inbounds [2 x ptr], ptr %385, i64 0, i64 0
  %18479 = getelementptr inbounds [2 x %struct.s2n_supported_cert], ptr %386, i64 0, i64 0
  %18480 = call i32 @s2n_test_default_backwards_compatible(ptr noundef @.str.37, ptr noundef %18478, i64 noundef 2, ptr noundef %18479, i64 noundef 2)
  %18481 = getelementptr inbounds %struct.s2n_result, ptr %387, i32 0, i32 0
  store i32 %18480, ptr %18481, align 4
  %18482 = getelementptr inbounds %struct.s2n_result, ptr %387, i32 0, i32 0
  %18483 = load i32, ptr %18482, align 4
  %18484 = call zeroext i1 @s2n_result_is_ok(i32 %18483)
  br i1 %18484, label %18538, label %18485

18485:                                            ; preds = %18475
  br label %18486

18486:                                            ; preds = %18485
  br label %18487

18487:                                            ; preds = %18486
  call void @llvm.lifetime.start.p0(i64 4, ptr %388) #10
  %18488 = call ptr @__errno_location() #11
  %18489 = load i32, ptr %18488, align 4, !tbaa !5
  store i32 %18489, ptr %388, align 4, !tbaa !5
  %18490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18491 = call i32 @s2n_print_stacktrace(ptr noundef %18490)
  %18492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18493 = trunc i8 %18492 to i1
  br i1 %18493, label %18494, label %18516

18494:                                            ; preds = %18487
  %18495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18496 = call i32 @fileno(ptr noundef %18495) #10
  %18497 = call i32 @isatty(i32 noundef %18496) #10
  %18498 = icmp ne i32 %18497, 0
  br i1 %18498, label %18499, label %18516

18499:                                            ; preds = %18494
  %18500 = load i32, ptr %388, align 4, !tbaa !5
  %18501 = call ptr @__errno_location() #11
  store i32 %18500, ptr %18501, align 4, !tbaa !5
  %18502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18503 = load i32, ptr @test_count, align 4, !tbaa !5
  %18504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18505 = load i32, ptr %18504, align 4, !tbaa !5
  %18506 = call ptr @s2n_strerror(i32 noundef %18505, ptr noundef @.str.4)
  %18507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18508 = load i32, ptr %18507, align 4, !tbaa !5
  %18509 = call ptr @s2n_strerror_debug(i32 noundef %18508, ptr noundef @.str.4)
  %18510 = call ptr @__errno_location() #11
  %18511 = load i32, ptr %18510, align 4, !tbaa !5
  %18512 = call ptr @strerror(i32 noundef %18511) #10
  %18513 = call ptr @__errno_location() #11
  %18514 = load i32, ptr %18513, align 4, !tbaa !5
  %18515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18502, ptr noundef @.str.2, i32 noundef %18503, ptr noundef @.str.227, ptr noundef @.str.1, i32 noundef 885, ptr noundef %18506, ptr noundef %18509, ptr noundef %18512, i32 noundef %18514) #10
  br label %18533

18516:                                            ; preds = %18494, %18487
  %18517 = load i32, ptr %388, align 4, !tbaa !5
  %18518 = call ptr @__errno_location() #11
  store i32 %18517, ptr %18518, align 4, !tbaa !5
  %18519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18520 = load i32, ptr @test_count, align 4, !tbaa !5
  %18521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18522 = load i32, ptr %18521, align 4, !tbaa !5
  %18523 = call ptr @s2n_strerror(i32 noundef %18522, ptr noundef @.str.4)
  %18524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18525 = load i32, ptr %18524, align 4, !tbaa !5
  %18526 = call ptr @s2n_strerror_debug(i32 noundef %18525, ptr noundef @.str.4)
  %18527 = call ptr @__errno_location() #11
  %18528 = load i32, ptr %18527, align 4, !tbaa !5
  %18529 = call ptr @strerror(i32 noundef %18528) #10
  %18530 = call ptr @__errno_location() #11
  %18531 = load i32, ptr %18530, align 4, !tbaa !5
  %18532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18519, ptr noundef @.str.5, i32 noundef %18520, ptr noundef @.str.227, ptr noundef @.str.1, i32 noundef 885, ptr noundef %18523, ptr noundef %18526, ptr noundef %18529, i32 noundef %18531) #10
  br label %18533

18533:                                            ; preds = %18516, %18499
  call void @llvm.lifetime.end.p0(i64 4, ptr %388) #10
  br label %18534

18534:                                            ; preds = %18533
  br label %18535

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

18536:                                            ; No predecessors!
  br label %18537

18537:                                            ; preds = %18536
  br label %18538

18538:                                            ; preds = %18537, %18475
  br label %18539

18539:                                            ; preds = %18538
  br label %18540

18540:                                            ; preds = %18539
  call void @llvm.lifetime.end.p0(i64 32, ptr %386) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %385) #10
  %18541 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %18541, label %18542, label %18620

18542:                                            ; preds = %18540
  call void @llvm.lifetime.start.p0(i64 16, ptr %389) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %389, ptr align 16 @__const.main.versioned_policies.228, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %390) #10
  %18543 = getelementptr inbounds %struct.s2n_supported_cert, ptr %390, i32 0, i32 0
  %18544 = load ptr, ptr %10, align 8, !tbaa !9
  store ptr %18544, ptr %18543, align 16, !tbaa !80
  %18545 = getelementptr inbounds %struct.s2n_supported_cert, ptr %390, i32 0, i32 1
  store i64 0, ptr %18545, align 8, !tbaa !82
  %18546 = getelementptr inbounds %struct.s2n_supported_cert, ptr %390, i64 1
  %18547 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18546, i32 0, i32 0
  %18548 = load ptr, ptr %12, align 8, !tbaa !9
  store ptr %18548, ptr %18547, align 16, !tbaa !80
  %18549 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18546, i32 0, i32 1
  store i64 0, ptr %18549, align 8, !tbaa !82
  %18550 = getelementptr inbounds %struct.s2n_supported_cert, ptr %390, i64 2
  %18551 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18550, i32 0, i32 0
  %18552 = load ptr, ptr %18, align 8, !tbaa !9
  store ptr %18552, ptr %18551, align 16, !tbaa !80
  %18553 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18550, i32 0, i32 1
  store i64 0, ptr %18553, align 8, !tbaa !82
  br label %18554

18554:                                            ; preds = %18542
  %18555 = load i32, ptr @test_count, align 4, !tbaa !5
  %18556 = add nsw i32 %18555, 1
  store i32 %18556, ptr @test_count, align 4, !tbaa !5
  %18557 = getelementptr inbounds [2 x ptr], ptr %389, i64 0, i64 0
  %18558 = getelementptr inbounds [3 x %struct.s2n_supported_cert], ptr %390, i64 0, i64 0
  %18559 = call i32 @s2n_test_default_backwards_compatible(ptr noundef @.str.46, ptr noundef %18557, i64 noundef 2, ptr noundef %18558, i64 noundef 3)
  %18560 = getelementptr inbounds %struct.s2n_result, ptr %391, i32 0, i32 0
  store i32 %18559, ptr %18560, align 4
  %18561 = getelementptr inbounds %struct.s2n_result, ptr %391, i32 0, i32 0
  %18562 = load i32, ptr %18561, align 4
  %18563 = call zeroext i1 @s2n_result_is_ok(i32 %18562)
  br i1 %18563, label %18617, label %18564

18564:                                            ; preds = %18554
  br label %18565

18565:                                            ; preds = %18564
  br label %18566

18566:                                            ; preds = %18565
  call void @llvm.lifetime.start.p0(i64 4, ptr %392) #10
  %18567 = call ptr @__errno_location() #11
  %18568 = load i32, ptr %18567, align 4, !tbaa !5
  store i32 %18568, ptr %392, align 4, !tbaa !5
  %18569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18570 = call i32 @s2n_print_stacktrace(ptr noundef %18569)
  %18571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18572 = trunc i8 %18571 to i1
  br i1 %18572, label %18573, label %18595

18573:                                            ; preds = %18566
  %18574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18575 = call i32 @fileno(ptr noundef %18574) #10
  %18576 = call i32 @isatty(i32 noundef %18575) #10
  %18577 = icmp ne i32 %18576, 0
  br i1 %18577, label %18578, label %18595

18578:                                            ; preds = %18573
  %18579 = load i32, ptr %392, align 4, !tbaa !5
  %18580 = call ptr @__errno_location() #11
  store i32 %18579, ptr %18580, align 4, !tbaa !5
  %18581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18582 = load i32, ptr @test_count, align 4, !tbaa !5
  %18583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18584 = load i32, ptr %18583, align 4, !tbaa !5
  %18585 = call ptr @s2n_strerror(i32 noundef %18584, ptr noundef @.str.4)
  %18586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18587 = load i32, ptr %18586, align 4, !tbaa !5
  %18588 = call ptr @s2n_strerror_debug(i32 noundef %18587, ptr noundef @.str.4)
  %18589 = call ptr @__errno_location() #11
  %18590 = load i32, ptr %18589, align 4, !tbaa !5
  %18591 = call ptr @strerror(i32 noundef %18590) #10
  %18592 = call ptr @__errno_location() #11
  %18593 = load i32, ptr %18592, align 4, !tbaa !5
  %18594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18581, ptr noundef @.str.2, i32 noundef %18582, ptr noundef @.str.229, ptr noundef @.str.1, i32 noundef 903, ptr noundef %18585, ptr noundef %18588, ptr noundef %18591, i32 noundef %18593) #10
  br label %18612

18595:                                            ; preds = %18573, %18566
  %18596 = load i32, ptr %392, align 4, !tbaa !5
  %18597 = call ptr @__errno_location() #11
  store i32 %18596, ptr %18597, align 4, !tbaa !5
  %18598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18599 = load i32, ptr @test_count, align 4, !tbaa !5
  %18600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18601 = load i32, ptr %18600, align 4, !tbaa !5
  %18602 = call ptr @s2n_strerror(i32 noundef %18601, ptr noundef @.str.4)
  %18603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18604 = load i32, ptr %18603, align 4, !tbaa !5
  %18605 = call ptr @s2n_strerror_debug(i32 noundef %18604, ptr noundef @.str.4)
  %18606 = call ptr @__errno_location() #11
  %18607 = load i32, ptr %18606, align 4, !tbaa !5
  %18608 = call ptr @strerror(i32 noundef %18607) #10
  %18609 = call ptr @__errno_location() #11
  %18610 = load i32, ptr %18609, align 4, !tbaa !5
  %18611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18598, ptr noundef @.str.5, i32 noundef %18599, ptr noundef @.str.229, ptr noundef @.str.1, i32 noundef 903, ptr noundef %18602, ptr noundef %18605, ptr noundef %18608, i32 noundef %18610) #10
  br label %18612

18612:                                            ; preds = %18595, %18578
  call void @llvm.lifetime.end.p0(i64 4, ptr %392) #10
  br label %18613

18613:                                            ; preds = %18612
  br label %18614

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

18615:                                            ; No predecessors!
  br label %18616

18616:                                            ; preds = %18615
  br label %18617

18617:                                            ; preds = %18616, %18554
  br label %18618

18618:                                            ; preds = %18617
  br label %18619

18619:                                            ; preds = %18618
  call void @llvm.lifetime.end.p0(i64 48, ptr %390) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %389) #10
  br label %18620

18620:                                            ; preds = %18619, %18540
  call void @llvm.lifetime.start.p0(i64 16, ptr %393) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %393, ptr align 16 @__const.main.versioned_policies.230, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %394) #10
  %18621 = getelementptr inbounds %struct.s2n_supported_cert, ptr %394, i32 0, i32 0
  %18622 = load ptr, ptr %10, align 8, !tbaa !9
  store ptr %18622, ptr %18621, align 16, !tbaa !80
  %18623 = getelementptr inbounds %struct.s2n_supported_cert, ptr %394, i32 0, i32 1
  store i64 0, ptr %18623, align 8, !tbaa !82
  %18624 = getelementptr inbounds %struct.s2n_supported_cert, ptr %394, i64 1
  %18625 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18624, i32 0, i32 0
  %18626 = load ptr, ptr %12, align 8, !tbaa !9
  store ptr %18626, ptr %18625, align 16, !tbaa !80
  %18627 = getelementptr inbounds %struct.s2n_supported_cert, ptr %18624, i32 0, i32 1
  store i64 0, ptr %18627, align 8, !tbaa !82
  br label %18628

18628:                                            ; preds = %18620
  %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 = getelementptr inbounds [2 x ptr], ptr %393, i64 0, i64 0
  %18632 = getelementptr inbounds [2 x %struct.s2n_supported_cert], ptr %394, i64 0, i64 0
  %18633 = call i32 @s2n_test_default_backwards_compatible(ptr noundef @.str.184, ptr noundef %18631, i64 noundef 2, ptr noundef %18632, i64 noundef 2)
  %18634 = getelementptr inbounds %struct.s2n_result, ptr %395, i32 0, i32 0
  store i32 %18633, ptr %18634, align 4
  %18635 = getelementptr inbounds %struct.s2n_result, ptr %395, i32 0, i32 0
  %18636 = load i32, ptr %18635, align 4
  %18637 = call zeroext i1 @s2n_result_is_ok(i32 %18636)
  br i1 %18637, label %18691, label %18638

18638:                                            ; preds = %18628
  br label %18639

18639:                                            ; preds = %18638
  br label %18640

18640:                                            ; preds = %18639
  call void @llvm.lifetime.start.p0(i64 4, ptr %396) #10
  %18641 = call ptr @__errno_location() #11
  %18642 = load i32, ptr %18641, align 4, !tbaa !5
  store i32 %18642, ptr %396, align 4, !tbaa !5
  %18643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18644 = call i32 @s2n_print_stacktrace(ptr noundef %18643)
  %18645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18646 = trunc i8 %18645 to i1
  br i1 %18646, label %18647, label %18669

18647:                                            ; preds = %18640
  %18648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18649 = call i32 @fileno(ptr noundef %18648) #10
  %18650 = call i32 @isatty(i32 noundef %18649) #10
  %18651 = icmp ne i32 %18650, 0
  br i1 %18651, label %18652, label %18669

18652:                                            ; preds = %18647
  %18653 = load i32, ptr %396, align 4, !tbaa !5
  %18654 = call ptr @__errno_location() #11
  store i32 %18653, ptr %18654, align 4, !tbaa !5
  %18655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18656 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %18658, ptr noundef @.str.4)
  %18660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18661 = load i32, ptr %18660, align 4, !tbaa !5
  %18662 = call ptr @s2n_strerror_debug(i32 noundef %18661, ptr noundef @.str.4)
  %18663 = call ptr @__errno_location() #11
  %18664 = load i32, ptr %18663, align 4, !tbaa !5
  %18665 = call ptr @strerror(i32 noundef %18664) #10
  %18666 = call ptr @__errno_location() #11
  %18667 = load i32, ptr %18666, align 4, !tbaa !5
  %18668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18655, ptr noundef @.str.2, i32 noundef %18656, ptr noundef @.str.231, ptr noundef @.str.1, i32 noundef 920, ptr noundef %18659, ptr noundef %18662, ptr noundef %18665, i32 noundef %18667) #10
  br label %18686

18669:                                            ; preds = %18647, %18640
  %18670 = load i32, ptr %396, align 4, !tbaa !5
  %18671 = call ptr @__errno_location() #11
  store i32 %18670, ptr %18671, align 4, !tbaa !5
  %18672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18673 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %18675, ptr noundef @.str.4)
  %18677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18678 = load i32, ptr %18677, align 4, !tbaa !5
  %18679 = call ptr @s2n_strerror_debug(i32 noundef %18678, ptr noundef @.str.4)
  %18680 = call ptr @__errno_location() #11
  %18681 = load i32, ptr %18680, align 4, !tbaa !5
  %18682 = call ptr @strerror(i32 noundef %18681) #10
  %18683 = call ptr @__errno_location() #11
  %18684 = load i32, ptr %18683, align 4, !tbaa !5
  %18685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18672, ptr noundef @.str.5, i32 noundef %18673, ptr noundef @.str.231, ptr noundef @.str.1, i32 noundef 920, ptr noundef %18676, ptr noundef %18679, ptr noundef %18682, i32 noundef %18684) #10
  br label %18686

18686:                                            ; preds = %18669, %18652
  call void @llvm.lifetime.end.p0(i64 4, ptr %396) #10
  br label %18687

18687:                                            ; preds = %18686
  br label %18688

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

18689:                                            ; No predecessors!
  br label %18690

18690:                                            ; preds = %18689
  br label %18691

18691:                                            ; preds = %18690, %18628
  br label %18692

18692:                                            ; preds = %18691
  br label %18693

18693:                                            ; preds = %18692
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %393) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %397) #10
  store ptr null, ptr %397, align 8, !tbaa !9
  br label %18694

18694:                                            ; preds = %18693
  %18695 = load i32, ptr @test_count, align 4, !tbaa !5
  %18696 = add nsw i32 %18695, 1
  store i32 %18696, ptr @test_count, align 4, !tbaa !5
  %18697 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.232, ptr noundef %397)
  %18698 = icmp eq i32 %18697, -1
  br i1 %18698, label %18699, label %18752

18699:                                            ; preds = %18694
  br label %18700

18700:                                            ; preds = %18699
  br label %18701

18701:                                            ; preds = %18700
  call void @llvm.lifetime.start.p0(i64 4, ptr %398) #10
  %18702 = call ptr @__errno_location() #11
  %18703 = load i32, ptr %18702, align 4, !tbaa !5
  store i32 %18703, ptr %398, align 4, !tbaa !5
  %18704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18705 = call i32 @s2n_print_stacktrace(ptr noundef %18704)
  %18706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18707 = trunc i8 %18706 to i1
  br i1 %18707, label %18708, label %18730

18708:                                            ; preds = %18701
  %18709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18710 = call i32 @fileno(ptr noundef %18709) #10
  %18711 = call i32 @isatty(i32 noundef %18710) #10
  %18712 = icmp ne i32 %18711, 0
  br i1 %18712, label %18713, label %18730

18713:                                            ; preds = %18708
  %18714 = load i32, ptr %398, align 4, !tbaa !5
  %18715 = call ptr @__errno_location() #11
  store i32 %18714, ptr %18715, align 4, !tbaa !5
  %18716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18717 = load i32, ptr @test_count, align 4, !tbaa !5
  %18718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18719 = load i32, ptr %18718, align 4, !tbaa !5
  %18720 = call ptr @s2n_strerror(i32 noundef %18719, ptr noundef @.str.4)
  %18721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18722 = load i32, ptr %18721, align 4, !tbaa !5
  %18723 = call ptr @s2n_strerror_debug(i32 noundef %18722, ptr noundef @.str.4)
  %18724 = call ptr @__errno_location() #11
  %18725 = load i32, ptr %18724, align 4, !tbaa !5
  %18726 = call ptr @strerror(i32 noundef %18725) #10
  %18727 = call ptr @__errno_location() #11
  %18728 = load i32, ptr %18727, align 4, !tbaa !5
  %18729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18716, ptr noundef @.str.2, i32 noundef %18717, ptr noundef @.str.233, ptr noundef @.str.1, i32 noundef 927, ptr noundef %18720, ptr noundef %18723, ptr noundef %18726, i32 noundef %18728) #10
  br label %18747

18730:                                            ; preds = %18708, %18701
  %18731 = load i32, ptr %398, align 4, !tbaa !5
  %18732 = call ptr @__errno_location() #11
  store i32 %18731, ptr %18732, align 4, !tbaa !5
  %18733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18734 = load i32, ptr @test_count, align 4, !tbaa !5
  %18735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18736 = load i32, ptr %18735, align 4, !tbaa !5
  %18737 = call ptr @s2n_strerror(i32 noundef %18736, ptr noundef @.str.4)
  %18738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18739 = load i32, ptr %18738, align 4, !tbaa !5
  %18740 = call ptr @s2n_strerror_debug(i32 noundef %18739, ptr noundef @.str.4)
  %18741 = call ptr @__errno_location() #11
  %18742 = load i32, ptr %18741, align 4, !tbaa !5
  %18743 = call ptr @strerror(i32 noundef %18742) #10
  %18744 = call ptr @__errno_location() #11
  %18745 = load i32, ptr %18744, align 4, !tbaa !5
  %18746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18733, ptr noundef @.str.5, i32 noundef %18734, ptr noundef @.str.233, ptr noundef @.str.1, i32 noundef 927, ptr noundef %18737, ptr noundef %18740, ptr noundef %18743, i32 noundef %18745) #10
  br label %18747

18747:                                            ; preds = %18730, %18713
  call void @llvm.lifetime.end.p0(i64 4, ptr %398) #10
  br label %18748

18748:                                            ; preds = %18747
  br label %18749

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

18750:                                            ; No predecessors!
  br label %18751

18751:                                            ; preds = %18750
  br label %18752

18752:                                            ; preds = %18751, %18694
  br label %18753

18753:                                            ; preds = %18752
  br label %18754

18754:                                            ; preds = %18753
  br label %18755

18755:                                            ; preds = %18754
  %18756 = load i32, ptr @test_count, align 4, !tbaa !5
  %18757 = add nsw i32 %18756, 1
  store i32 %18757, ptr @test_count, align 4, !tbaa !5
  %18758 = load ptr, ptr %397, align 8, !tbaa !9
  %18759 = getelementptr inbounds %struct.s2n_security_policy, ptr %18758, i32 0, i32 2
  %18760 = load ptr, ptr %18759, align 8, !tbaa !20
  %18761 = icmp eq ptr %18760, @kem_preferences_null
  br i1 %18761, label %18762, label %18815

18762:                                            ; preds = %18755
  br label %18763

18763:                                            ; preds = %18762
  br label %18764

18764:                                            ; preds = %18763
  call void @llvm.lifetime.start.p0(i64 4, ptr %399) #10
  %18765 = call ptr @__errno_location() #11
  %18766 = load i32, ptr %18765, align 4, !tbaa !5
  store i32 %18766, ptr %399, align 4, !tbaa !5
  %18767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18768 = call i32 @s2n_print_stacktrace(ptr noundef %18767)
  %18769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18770 = trunc i8 %18769 to i1
  br i1 %18770, label %18771, label %18793

18771:                                            ; preds = %18764
  %18772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18773 = call i32 @fileno(ptr noundef %18772) #10
  %18774 = call i32 @isatty(i32 noundef %18773) #10
  %18775 = icmp ne i32 %18774, 0
  br i1 %18775, label %18776, label %18793

18776:                                            ; preds = %18771
  %18777 = load i32, ptr %399, align 4, !tbaa !5
  %18778 = call ptr @__errno_location() #11
  store i32 %18777, ptr %18778, align 4, !tbaa !5
  %18779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18780 = load i32, ptr @test_count, align 4, !tbaa !5
  %18781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18782 = load i32, ptr %18781, align 4, !tbaa !5
  %18783 = call ptr @s2n_strerror(i32 noundef %18782, ptr noundef @.str.4)
  %18784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18785 = load i32, ptr %18784, align 4, !tbaa !5
  %18786 = call ptr @s2n_strerror_debug(i32 noundef %18785, ptr noundef @.str.4)
  %18787 = call ptr @__errno_location() #11
  %18788 = load i32, ptr %18787, align 4, !tbaa !5
  %18789 = call ptr @strerror(i32 noundef %18788) #10
  %18790 = call ptr @__errno_location() #11
  %18791 = load i32, ptr %18790, align 4, !tbaa !5
  %18792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18779, ptr noundef @.str.2, i32 noundef %18780, ptr noundef @.str.234, ptr noundef @.str.1, i32 noundef 928, ptr noundef %18783, ptr noundef %18786, ptr noundef %18789, i32 noundef %18791) #10
  br label %18810

18793:                                            ; preds = %18771, %18764
  %18794 = load i32, ptr %399, align 4, !tbaa !5
  %18795 = call ptr @__errno_location() #11
  store i32 %18794, ptr %18795, align 4, !tbaa !5
  %18796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18797 = load i32, ptr @test_count, align 4, !tbaa !5
  %18798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18799 = load i32, ptr %18798, align 4, !tbaa !5
  %18800 = call ptr @s2n_strerror(i32 noundef %18799, ptr noundef @.str.4)
  %18801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18802 = load i32, ptr %18801, align 4, !tbaa !5
  %18803 = call ptr @s2n_strerror_debug(i32 noundef %18802, ptr noundef @.str.4)
  %18804 = call ptr @__errno_location() #11
  %18805 = load i32, ptr %18804, align 4, !tbaa !5
  %18806 = call ptr @strerror(i32 noundef %18805) #10
  %18807 = call ptr @__errno_location() #11
  %18808 = load i32, ptr %18807, align 4, !tbaa !5
  %18809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18796, ptr noundef @.str.5, i32 noundef %18797, ptr noundef @.str.234, ptr noundef @.str.1, i32 noundef 928, ptr noundef %18800, ptr noundef %18803, ptr noundef %18806, i32 noundef %18808) #10
  br label %18810

18810:                                            ; preds = %18793, %18776
  call void @llvm.lifetime.end.p0(i64 4, ptr %399) #10
  br label %18811

18811:                                            ; preds = %18810
  br label %18812

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

18813:                                            ; No predecessors!
  br label %18814

18814:                                            ; preds = %18813
  br label %18815

18815:                                            ; preds = %18814, %18755
  br label %18816

18816:                                            ; preds = %18815
  br label %18817

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

18818:                                            ; preds = %18817
  %18819 = load i32, ptr @test_count, align 4, !tbaa !5
  %18820 = add nsw i32 %18819, 1
  store i32 %18820, ptr @test_count, align 4, !tbaa !5
  %18821 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.46, ptr noundef %400)
  %18822 = icmp eq i32 %18821, -1
  br i1 %18822, label %18823, label %18876

18823:                                            ; preds = %18818
  br label %18824

18824:                                            ; preds = %18823
  br label %18825

18825:                                            ; preds = %18824
  call void @llvm.lifetime.start.p0(i64 4, ptr %401) #10
  %18826 = call ptr @__errno_location() #11
  %18827 = load i32, ptr %18826, align 4, !tbaa !5
  store i32 %18827, ptr %401, align 4, !tbaa !5
  %18828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18829 = call i32 @s2n_print_stacktrace(ptr noundef %18828)
  %18830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18831 = trunc i8 %18830 to i1
  br i1 %18831, label %18832, label %18854

18832:                                            ; preds = %18825
  %18833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18834 = call i32 @fileno(ptr noundef %18833) #10
  %18835 = call i32 @isatty(i32 noundef %18834) #10
  %18836 = icmp ne i32 %18835, 0
  br i1 %18836, label %18837, label %18854

18837:                                            ; preds = %18832
  %18838 = load i32, ptr %401, align 4, !tbaa !5
  %18839 = call ptr @__errno_location() #11
  store i32 %18838, ptr %18839, align 4, !tbaa !5
  %18840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18841 = load i32, ptr @test_count, align 4, !tbaa !5
  %18842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18843 = load i32, ptr %18842, align 4, !tbaa !5
  %18844 = call ptr @s2n_strerror(i32 noundef %18843, ptr noundef @.str.4)
  %18845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18846 = load i32, ptr %18845, align 4, !tbaa !5
  %18847 = call ptr @s2n_strerror_debug(i32 noundef %18846, ptr noundef @.str.4)
  %18848 = call ptr @__errno_location() #11
  %18849 = load i32, ptr %18848, align 4, !tbaa !5
  %18850 = call ptr @strerror(i32 noundef %18849) #10
  %18851 = call ptr @__errno_location() #11
  %18852 = load i32, ptr %18851, align 4, !tbaa !5
  %18853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18840, ptr noundef @.str.2, i32 noundef %18841, ptr noundef @.str.235, ptr noundef @.str.1, i32 noundef 931, ptr noundef %18844, ptr noundef %18847, ptr noundef %18850, i32 noundef %18852) #10
  br label %18871

18854:                                            ; preds = %18832, %18825
  %18855 = load i32, ptr %401, align 4, !tbaa !5
  %18856 = call ptr @__errno_location() #11
  store i32 %18855, ptr %18856, align 4, !tbaa !5
  %18857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18858 = load i32, ptr @test_count, align 4, !tbaa !5
  %18859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18860 = load i32, ptr %18859, align 4, !tbaa !5
  %18861 = call ptr @s2n_strerror(i32 noundef %18860, ptr noundef @.str.4)
  %18862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18863 = load i32, ptr %18862, align 4, !tbaa !5
  %18864 = call ptr @s2n_strerror_debug(i32 noundef %18863, ptr noundef @.str.4)
  %18865 = call ptr @__errno_location() #11
  %18866 = load i32, ptr %18865, align 4, !tbaa !5
  %18867 = call ptr @strerror(i32 noundef %18866) #10
  %18868 = call ptr @__errno_location() #11
  %18869 = load i32, ptr %18868, align 4, !tbaa !5
  %18870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18857, ptr noundef @.str.5, i32 noundef %18858, ptr noundef @.str.235, ptr noundef @.str.1, i32 noundef 931, ptr noundef %18861, ptr noundef %18864, ptr noundef %18867, i32 noundef %18869) #10
  br label %18871

18871:                                            ; preds = %18854, %18837
  call void @llvm.lifetime.end.p0(i64 4, ptr %401) #10
  br label %18872

18872:                                            ; preds = %18871
  br label %18873

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

18874:                                            ; No predecessors!
  br label %18875

18875:                                            ; preds = %18874
  br label %18876

18876:                                            ; preds = %18875, %18818
  br label %18877

18877:                                            ; preds = %18876
  br label %18878

18878:                                            ; preds = %18877
  br label %18879

18879:                                            ; preds = %18878
  %18880 = load i32, ptr @test_count, align 4, !tbaa !5
  %18881 = add nsw i32 %18880, 1
  store i32 %18881, ptr @test_count, align 4, !tbaa !5
  %18882 = load ptr, ptr %400, align 8, !tbaa !9
  %18883 = getelementptr inbounds %struct.s2n_security_policy, ptr %18882, i32 0, i32 2
  %18884 = load ptr, ptr %18883, align 8, !tbaa !20
  %18885 = icmp eq ptr %18884, @kem_preferences_null
  br i1 %18885, label %18939, label %18886

18886:                                            ; preds = %18879
  br label %18887

18887:                                            ; preds = %18886
  br label %18888

18888:                                            ; preds = %18887
  call void @llvm.lifetime.start.p0(i64 4, ptr %402) #10
  %18889 = call ptr @__errno_location() #11
  %18890 = load i32, ptr %18889, align 4, !tbaa !5
  store i32 %18890, ptr %402, align 4, !tbaa !5
  %18891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18892 = call i32 @s2n_print_stacktrace(ptr noundef %18891)
  %18893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18894 = trunc i8 %18893 to i1
  br i1 %18894, label %18895, label %18917

18895:                                            ; preds = %18888
  %18896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18897 = call i32 @fileno(ptr noundef %18896) #10
  %18898 = call i32 @isatty(i32 noundef %18897) #10
  %18899 = icmp ne i32 %18898, 0
  br i1 %18899, label %18900, label %18917

18900:                                            ; preds = %18895
  %18901 = load i32, ptr %402, align 4, !tbaa !5
  %18902 = call ptr @__errno_location() #11
  store i32 %18901, ptr %18902, align 4, !tbaa !5
  %18903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18904 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %18906, ptr noundef @.str.4)
  %18908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18909 = load i32, ptr %18908, align 4, !tbaa !5
  %18910 = call ptr @s2n_strerror_debug(i32 noundef %18909, ptr noundef @.str.4)
  %18911 = call ptr @__errno_location() #11
  %18912 = load i32, ptr %18911, align 4, !tbaa !5
  %18913 = call ptr @strerror(i32 noundef %18912) #10
  %18914 = call ptr @__errno_location() #11
  %18915 = load i32, ptr %18914, align 4, !tbaa !5
  %18916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18903, ptr noundef @.str.2, i32 noundef %18904, ptr noundef @.str.236, ptr noundef @.str.1, i32 noundef 932, ptr noundef %18907, ptr noundef %18910, ptr noundef %18913, i32 noundef %18915) #10
  br label %18934

18917:                                            ; preds = %18895, %18888
  %18918 = load i32, ptr %402, align 4, !tbaa !5
  %18919 = call ptr @__errno_location() #11
  store i32 %18918, ptr %18919, align 4, !tbaa !5
  %18920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18921 = load i32, ptr @test_count, align 4, !tbaa !5
  %18922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18923 = load i32, ptr %18922, align 4, !tbaa !5
  %18924 = call ptr @s2n_strerror(i32 noundef %18923, ptr noundef @.str.4)
  %18925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18926 = load i32, ptr %18925, align 4, !tbaa !5
  %18927 = call ptr @s2n_strerror_debug(i32 noundef %18926, ptr noundef @.str.4)
  %18928 = call ptr @__errno_location() #11
  %18929 = load i32, ptr %18928, align 4, !tbaa !5
  %18930 = call ptr @strerror(i32 noundef %18929) #10
  %18931 = call ptr @__errno_location() #11
  %18932 = load i32, ptr %18931, align 4, !tbaa !5
  %18933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18920, ptr noundef @.str.5, i32 noundef %18921, ptr noundef @.str.236, ptr noundef @.str.1, i32 noundef 932, ptr noundef %18924, ptr noundef %18927, ptr noundef %18930, i32 noundef %18932) #10
  br label %18934

18934:                                            ; preds = %18917, %18900
  call void @llvm.lifetime.end.p0(i64 4, ptr %402) #10
  br label %18935

18935:                                            ; preds = %18934
  br label %18936

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

18937:                                            ; No predecessors!
  br label %18938

18938:                                            ; preds = %18937
  br label %18939

18939:                                            ; preds = %18938, %18879
  br label %18940

18940:                                            ; preds = %18939
  br label %18941

18941:                                            ; preds = %18940
  br label %18942

18942:                                            ; preds = %18941
  %18943 = load i32, ptr @test_count, align 4, !tbaa !5
  %18944 = add nsw i32 %18943, 1
  store i32 %18944, ptr @test_count, align 4, !tbaa !5
  %18945 = load ptr, ptr %397, align 8, !tbaa !9
  %18946 = getelementptr inbounds %struct.s2n_security_policy, ptr %18945, i32 0, i32 0
  %18947 = load i8, ptr %18946, align 8, !tbaa !58
  %18948 = zext i8 %18947 to i32
  %18949 = load ptr, ptr %400, align 8, !tbaa !9
  %18950 = getelementptr inbounds %struct.s2n_security_policy, ptr %18949, i32 0, i32 0
  %18951 = load i8, ptr %18950, align 8, !tbaa !58
  %18952 = zext i8 %18951 to i32
  %18953 = icmp eq i32 %18948, %18952
  br i1 %18953, label %19007, label %18954

18954:                                            ; preds = %18942
  br label %18955

18955:                                            ; preds = %18954
  br label %18956

18956:                                            ; preds = %18955
  call void @llvm.lifetime.start.p0(i64 4, ptr %403) #10
  %18957 = call ptr @__errno_location() #11
  %18958 = load i32, ptr %18957, align 4, !tbaa !5
  store i32 %18958, ptr %403, align 4, !tbaa !5
  %18959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18960 = call i32 @s2n_print_stacktrace(ptr noundef %18959)
  %18961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18962 = trunc i8 %18961 to i1
  br i1 %18962, label %18963, label %18985

18963:                                            ; preds = %18956
  %18964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18965 = call i32 @fileno(ptr noundef %18964) #10
  %18966 = call i32 @isatty(i32 noundef %18965) #10
  %18967 = icmp ne i32 %18966, 0
  br i1 %18967, label %18968, label %18985

18968:                                            ; preds = %18963
  %18969 = load i32, ptr %403, align 4, !tbaa !5
  %18970 = call ptr @__errno_location() #11
  store i32 %18969, ptr %18970, align 4, !tbaa !5
  %18971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18972 = load i32, ptr @test_count, align 4, !tbaa !5
  %18973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18974 = load i32, ptr %18973, align 4, !tbaa !5
  %18975 = call ptr @s2n_strerror(i32 noundef %18974, ptr noundef @.str.4)
  %18976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18977 = load i32, ptr %18976, align 4, !tbaa !5
  %18978 = call ptr @s2n_strerror_debug(i32 noundef %18977, ptr noundef @.str.4)
  %18979 = call ptr @__errno_location() #11
  %18980 = load i32, ptr %18979, align 4, !tbaa !5
  %18981 = call ptr @strerror(i32 noundef %18980) #10
  %18982 = call ptr @__errno_location() #11
  %18983 = load i32, ptr %18982, align 4, !tbaa !5
  %18984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18971, ptr noundef @.str.2, i32 noundef %18972, ptr noundef @.str.237, ptr noundef @.str.1, i32 noundef 935, ptr noundef %18975, ptr noundef %18978, ptr noundef %18981, i32 noundef %18983) #10
  br label %19002

18985:                                            ; preds = %18963, %18956
  %18986 = load i32, ptr %403, align 4, !tbaa !5
  %18987 = call ptr @__errno_location() #11
  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() #11
  %18997 = load i32, ptr %18996, align 4, !tbaa !5
  %18998 = call ptr @strerror(i32 noundef %18997) #10
  %18999 = call ptr @__errno_location() #11
  %19000 = load i32, ptr %18999, align 4, !tbaa !5
  %19001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18988, ptr noundef @.str.5, i32 noundef %18989, ptr noundef @.str.237, ptr noundef @.str.1, i32 noundef 935, ptr noundef %18992, ptr noundef %18995, ptr noundef %18998, i32 noundef %19000) #10
  br label %19002

19002:                                            ; preds = %18985, %18968
  call void @llvm.lifetime.end.p0(i64 4, ptr %403) #10
  br label %19003

19003:                                            ; preds = %19002
  br label %19004

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

19005:                                            ; No predecessors!
  br label %19006

19006:                                            ; preds = %19005
  br label %19007

19007:                                            ; preds = %19006, %18942
  br label %19008

19008:                                            ; preds = %19007
  br label %19009

19009:                                            ; preds = %19008
  br label %19010

19010:                                            ; preds = %19009
  %19011 = load i32, ptr @test_count, align 4, !tbaa !5
  %19012 = add nsw i32 %19011, 1
  store i32 %19012, ptr @test_count, align 4, !tbaa !5
  %19013 = load ptr, ptr %397, align 8, !tbaa !9
  %19014 = getelementptr inbounds %struct.s2n_security_policy, ptr %19013, i32 0, i32 1
  %19015 = load ptr, ptr %19014, align 8, !tbaa !31
  %19016 = load ptr, ptr %400, align 8, !tbaa !9
  %19017 = getelementptr inbounds %struct.s2n_security_policy, ptr %19016, i32 0, i32 1
  %19018 = load ptr, ptr %19017, align 8, !tbaa !31
  %19019 = icmp eq ptr %19015, %19018
  br i1 %19019, label %19073, label %19020

19020:                                            ; preds = %19010
  br label %19021

19021:                                            ; preds = %19020
  br label %19022

19022:                                            ; preds = %19021
  call void @llvm.lifetime.start.p0(i64 4, ptr %404) #10
  %19023 = call ptr @__errno_location() #11
  %19024 = load i32, ptr %19023, align 4, !tbaa !5
  store i32 %19024, ptr %404, align 4, !tbaa !5
  %19025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19026 = call i32 @s2n_print_stacktrace(ptr noundef %19025)
  %19027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19028 = trunc i8 %19027 to i1
  br i1 %19028, label %19029, label %19051

19029:                                            ; preds = %19022
  %19030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19031 = call i32 @fileno(ptr noundef %19030) #10
  %19032 = call i32 @isatty(i32 noundef %19031) #10
  %19033 = icmp ne i32 %19032, 0
  br i1 %19033, label %19034, label %19051

19034:                                            ; preds = %19029
  %19035 = load i32, ptr %404, align 4, !tbaa !5
  %19036 = call ptr @__errno_location() #11
  store i32 %19035, ptr %19036, align 4, !tbaa !5
  %19037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19038 = load i32, ptr @test_count, align 4, !tbaa !5
  %19039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19040 = load i32, ptr %19039, align 4, !tbaa !5
  %19041 = call ptr @s2n_strerror(i32 noundef %19040, ptr noundef @.str.4)
  %19042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19043 = load i32, ptr %19042, align 4, !tbaa !5
  %19044 = call ptr @s2n_strerror_debug(i32 noundef %19043, ptr noundef @.str.4)
  %19045 = call ptr @__errno_location() #11
  %19046 = load i32, ptr %19045, align 4, !tbaa !5
  %19047 = call ptr @strerror(i32 noundef %19046) #10
  %19048 = call ptr @__errno_location() #11
  %19049 = load i32, ptr %19048, align 4, !tbaa !5
  %19050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19037, ptr noundef @.str.2, i32 noundef %19038, ptr noundef @.str.238, ptr noundef @.str.1, i32 noundef 936, ptr noundef %19041, ptr noundef %19044, ptr noundef %19047, i32 noundef %19049) #10
  br label %19068

19051:                                            ; preds = %19029, %19022
  %19052 = load i32, ptr %404, align 4, !tbaa !5
  %19053 = call ptr @__errno_location() #11
  store i32 %19052, ptr %19053, align 4, !tbaa !5
  %19054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19055 = load i32, ptr @test_count, align 4, !tbaa !5
  %19056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19057 = load i32, ptr %19056, align 4, !tbaa !5
  %19058 = call ptr @s2n_strerror(i32 noundef %19057, ptr noundef @.str.4)
  %19059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19060 = load i32, ptr %19059, align 4, !tbaa !5
  %19061 = call ptr @s2n_strerror_debug(i32 noundef %19060, ptr noundef @.str.4)
  %19062 = call ptr @__errno_location() #11
  %19063 = load i32, ptr %19062, align 4, !tbaa !5
  %19064 = call ptr @strerror(i32 noundef %19063) #10
  %19065 = call ptr @__errno_location() #11
  %19066 = load i32, ptr %19065, align 4, !tbaa !5
  %19067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19054, ptr noundef @.str.5, i32 noundef %19055, ptr noundef @.str.238, ptr noundef @.str.1, i32 noundef 936, ptr noundef %19058, ptr noundef %19061, ptr noundef %19064, i32 noundef %19066) #10
  br label %19068

19068:                                            ; preds = %19051, %19034
  call void @llvm.lifetime.end.p0(i64 4, ptr %404) #10
  br label %19069

19069:                                            ; preds = %19068
  br label %19070

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

19071:                                            ; No predecessors!
  br label %19072

19072:                                            ; preds = %19071
  br label %19073

19073:                                            ; preds = %19072, %19010
  br label %19074

19074:                                            ; preds = %19073
  br label %19075

19075:                                            ; preds = %19074
  br label %19076

19076:                                            ; preds = %19075
  %19077 = load i32, ptr @test_count, align 4, !tbaa !5
  %19078 = add nsw i32 %19077, 1
  store i32 %19078, ptr @test_count, align 4, !tbaa !5
  %19079 = load ptr, ptr %397, align 8, !tbaa !9
  %19080 = getelementptr inbounds %struct.s2n_security_policy, ptr %19079, i32 0, i32 3
  %19081 = load ptr, ptr %19080, align 8, !tbaa !38
  %19082 = load ptr, ptr %400, align 8, !tbaa !9
  %19083 = getelementptr inbounds %struct.s2n_security_policy, ptr %19082, i32 0, i32 3
  %19084 = load ptr, ptr %19083, align 8, !tbaa !38
  %19085 = icmp eq ptr %19081, %19084
  br i1 %19085, label %19139, label %19086

19086:                                            ; preds = %19076
  br label %19087

19087:                                            ; preds = %19086
  br label %19088

19088:                                            ; preds = %19087
  call void @llvm.lifetime.start.p0(i64 4, ptr %405) #10
  %19089 = call ptr @__errno_location() #11
  %19090 = load i32, ptr %19089, align 4, !tbaa !5
  store i32 %19090, ptr %405, align 4, !tbaa !5
  %19091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19092 = call i32 @s2n_print_stacktrace(ptr noundef %19091)
  %19093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19094 = trunc i8 %19093 to i1
  br i1 %19094, label %19095, label %19117

19095:                                            ; preds = %19088
  %19096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19097 = call i32 @fileno(ptr noundef %19096) #10
  %19098 = call i32 @isatty(i32 noundef %19097) #10
  %19099 = icmp ne i32 %19098, 0
  br i1 %19099, label %19100, label %19117

19100:                                            ; preds = %19095
  %19101 = load i32, ptr %405, align 4, !tbaa !5
  %19102 = call ptr @__errno_location() #11
  store i32 %19101, ptr %19102, align 4, !tbaa !5
  %19103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19104 = load i32, ptr @test_count, align 4, !tbaa !5
  %19105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19106 = load i32, ptr %19105, align 4, !tbaa !5
  %19107 = call ptr @s2n_strerror(i32 noundef %19106, ptr noundef @.str.4)
  %19108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19109 = load i32, ptr %19108, align 4, !tbaa !5
  %19110 = call ptr @s2n_strerror_debug(i32 noundef %19109, ptr noundef @.str.4)
  %19111 = call ptr @__errno_location() #11
  %19112 = load i32, ptr %19111, align 4, !tbaa !5
  %19113 = call ptr @strerror(i32 noundef %19112) #10
  %19114 = call ptr @__errno_location() #11
  %19115 = load i32, ptr %19114, align 4, !tbaa !5
  %19116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19103, ptr noundef @.str.2, i32 noundef %19104, ptr noundef @.str.239, ptr noundef @.str.1, i32 noundef 937, ptr noundef %19107, ptr noundef %19110, ptr noundef %19113, i32 noundef %19115) #10
  br label %19134

19117:                                            ; preds = %19095, %19088
  %19118 = load i32, ptr %405, align 4, !tbaa !5
  %19119 = call ptr @__errno_location() #11
  store i32 %19118, ptr %19119, align 4, !tbaa !5
  %19120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19121 = load i32, ptr @test_count, align 4, !tbaa !5
  %19122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19123 = load i32, ptr %19122, align 4, !tbaa !5
  %19124 = call ptr @s2n_strerror(i32 noundef %19123, ptr noundef @.str.4)
  %19125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19126 = load i32, ptr %19125, align 4, !tbaa !5
  %19127 = call ptr @s2n_strerror_debug(i32 noundef %19126, ptr noundef @.str.4)
  %19128 = call ptr @__errno_location() #11
  %19129 = load i32, ptr %19128, align 4, !tbaa !5
  %19130 = call ptr @strerror(i32 noundef %19129) #10
  %19131 = call ptr @__errno_location() #11
  %19132 = load i32, ptr %19131, align 4, !tbaa !5
  %19133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19120, ptr noundef @.str.5, i32 noundef %19121, ptr noundef @.str.239, ptr noundef @.str.1, i32 noundef 937, ptr noundef %19124, ptr noundef %19127, ptr noundef %19130, i32 noundef %19132) #10
  br label %19134

19134:                                            ; preds = %19117, %19100
  call void @llvm.lifetime.end.p0(i64 4, ptr %405) #10
  br label %19135

19135:                                            ; preds = %19134
  br label %19136

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

19137:                                            ; No predecessors!
  br label %19138

19138:                                            ; preds = %19137
  br label %19139

19139:                                            ; preds = %19138, %19076
  br label %19140

19140:                                            ; preds = %19139
  br label %19141

19141:                                            ; preds = %19140
  br label %19142

19142:                                            ; preds = %19141
  %19143 = load i32, ptr @test_count, align 4, !tbaa !5
  %19144 = add nsw i32 %19143, 1
  store i32 %19144, ptr @test_count, align 4, !tbaa !5
  %19145 = load ptr, ptr %397, align 8, !tbaa !9
  %19146 = getelementptr inbounds %struct.s2n_security_policy, ptr %19145, i32 0, i32 4
  %19147 = load ptr, ptr %19146, align 8, !tbaa !59
  %19148 = load ptr, ptr %400, align 8, !tbaa !9
  %19149 = getelementptr inbounds %struct.s2n_security_policy, ptr %19148, i32 0, i32 4
  %19150 = load ptr, ptr %19149, align 8, !tbaa !59
  %19151 = icmp eq ptr %19147, %19150
  br i1 %19151, label %19205, label %19152

19152:                                            ; preds = %19142
  br label %19153

19153:                                            ; preds = %19152
  br label %19154

19154:                                            ; preds = %19153
  call void @llvm.lifetime.start.p0(i64 4, ptr %406) #10
  %19155 = call ptr @__errno_location() #11
  %19156 = load i32, ptr %19155, align 4, !tbaa !5
  store i32 %19156, ptr %406, align 4, !tbaa !5
  %19157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19158 = call i32 @s2n_print_stacktrace(ptr noundef %19157)
  %19159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19160 = trunc i8 %19159 to i1
  br i1 %19160, label %19161, label %19183

19161:                                            ; preds = %19154
  %19162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19163 = call i32 @fileno(ptr noundef %19162) #10
  %19164 = call i32 @isatty(i32 noundef %19163) #10
  %19165 = icmp ne i32 %19164, 0
  br i1 %19165, label %19166, label %19183

19166:                                            ; preds = %19161
  %19167 = load i32, ptr %406, align 4, !tbaa !5
  %19168 = call ptr @__errno_location() #11
  store i32 %19167, ptr %19168, align 4, !tbaa !5
  %19169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19170 = load i32, ptr @test_count, align 4, !tbaa !5
  %19171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19172 = load i32, ptr %19171, align 4, !tbaa !5
  %19173 = call ptr @s2n_strerror(i32 noundef %19172, ptr noundef @.str.4)
  %19174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19175 = load i32, ptr %19174, align 4, !tbaa !5
  %19176 = call ptr @s2n_strerror_debug(i32 noundef %19175, ptr noundef @.str.4)
  %19177 = call ptr @__errno_location() #11
  %19178 = load i32, ptr %19177, align 4, !tbaa !5
  %19179 = call ptr @strerror(i32 noundef %19178) #10
  %19180 = call ptr @__errno_location() #11
  %19181 = load i32, ptr %19180, align 4, !tbaa !5
  %19182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19169, ptr noundef @.str.2, i32 noundef %19170, ptr noundef @.str.240, ptr noundef @.str.1, i32 noundef 939, ptr noundef %19173, ptr noundef %19176, ptr noundef %19179, i32 noundef %19181) #10
  br label %19200

19183:                                            ; preds = %19161, %19154
  %19184 = load i32, ptr %406, align 4, !tbaa !5
  %19185 = call ptr @__errno_location() #11
  store i32 %19184, ptr %19185, align 4, !tbaa !5
  %19186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19187 = load i32, ptr @test_count, align 4, !tbaa !5
  %19188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19189 = load i32, ptr %19188, align 4, !tbaa !5
  %19190 = call ptr @s2n_strerror(i32 noundef %19189, ptr noundef @.str.4)
  %19191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19192 = load i32, ptr %19191, align 4, !tbaa !5
  %19193 = call ptr @s2n_strerror_debug(i32 noundef %19192, ptr noundef @.str.4)
  %19194 = call ptr @__errno_location() #11
  %19195 = load i32, ptr %19194, align 4, !tbaa !5
  %19196 = call ptr @strerror(i32 noundef %19195) #10
  %19197 = call ptr @__errno_location() #11
  %19198 = load i32, ptr %19197, align 4, !tbaa !5
  %19199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19186, ptr noundef @.str.5, i32 noundef %19187, ptr noundef @.str.240, ptr noundef @.str.1, i32 noundef 939, ptr noundef %19190, ptr noundef %19193, ptr noundef %19196, i32 noundef %19198) #10
  br label %19200

19200:                                            ; preds = %19183, %19166
  call void @llvm.lifetime.end.p0(i64 4, ptr %406) #10
  br label %19201

19201:                                            ; preds = %19200
  br label %19202

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

19203:                                            ; No predecessors!
  br label %19204

19204:                                            ; preds = %19203
  br label %19205

19205:                                            ; preds = %19204, %19142
  br label %19206

19206:                                            ; preds = %19205
  br label %19207

19207:                                            ; preds = %19206
  br label %19208

19208:                                            ; preds = %19207
  %19209 = load i32, ptr @test_count, align 4, !tbaa !5
  %19210 = add nsw i32 %19209, 1
  store i32 %19210, ptr @test_count, align 4, !tbaa !5
  %19211 = load ptr, ptr %397, align 8, !tbaa !9
  %19212 = getelementptr inbounds %struct.s2n_security_policy, ptr %19211, i32 0, i32 5
  %19213 = load ptr, ptr %19212, align 8, !tbaa !60
  %19214 = load ptr, ptr %400, align 8, !tbaa !9
  %19215 = getelementptr inbounds %struct.s2n_security_policy, ptr %19214, i32 0, i32 5
  %19216 = load ptr, ptr %19215, align 8, !tbaa !60
  %19217 = icmp eq ptr %19213, %19216
  br i1 %19217, label %19271, label %19218

19218:                                            ; preds = %19208
  br label %19219

19219:                                            ; preds = %19218
  br label %19220

19220:                                            ; preds = %19219
  call void @llvm.lifetime.start.p0(i64 4, ptr %407) #10
  %19221 = call ptr @__errno_location() #11
  %19222 = load i32, ptr %19221, align 4, !tbaa !5
  store i32 %19222, ptr %407, align 4, !tbaa !5
  %19223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19224 = call i32 @s2n_print_stacktrace(ptr noundef %19223)
  %19225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19226 = trunc i8 %19225 to i1
  br i1 %19226, label %19227, label %19249

19227:                                            ; preds = %19220
  %19228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19229 = call i32 @fileno(ptr noundef %19228) #10
  %19230 = call i32 @isatty(i32 noundef %19229) #10
  %19231 = icmp ne i32 %19230, 0
  br i1 %19231, label %19232, label %19249

19232:                                            ; preds = %19227
  %19233 = load i32, ptr %407, align 4, !tbaa !5
  %19234 = call ptr @__errno_location() #11
  store i32 %19233, ptr %19234, align 4, !tbaa !5
  %19235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19236 = load i32, ptr @test_count, align 4, !tbaa !5
  %19237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19238 = load i32, ptr %19237, align 4, !tbaa !5
  %19239 = call ptr @s2n_strerror(i32 noundef %19238, ptr noundef @.str.4)
  %19240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19241 = load i32, ptr %19240, align 4, !tbaa !5
  %19242 = call ptr @s2n_strerror_debug(i32 noundef %19241, ptr noundef @.str.4)
  %19243 = call ptr @__errno_location() #11
  %19244 = load i32, ptr %19243, align 4, !tbaa !5
  %19245 = call ptr @strerror(i32 noundef %19244) #10
  %19246 = call ptr @__errno_location() #11
  %19247 = load i32, ptr %19246, align 4, !tbaa !5
  %19248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19235, ptr noundef @.str.2, i32 noundef %19236, ptr noundef @.str.241, ptr noundef @.str.1, i32 noundef 940, ptr noundef %19239, ptr noundef %19242, ptr noundef %19245, i32 noundef %19247) #10
  br label %19266

19249:                                            ; preds = %19227, %19220
  %19250 = load i32, ptr %407, align 4, !tbaa !5
  %19251 = call ptr @__errno_location() #11
  store i32 %19250, ptr %19251, align 4, !tbaa !5
  %19252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19253 = load i32, ptr @test_count, align 4, !tbaa !5
  %19254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19255 = load i32, ptr %19254, align 4, !tbaa !5
  %19256 = call ptr @s2n_strerror(i32 noundef %19255, ptr noundef @.str.4)
  %19257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19258 = load i32, ptr %19257, align 4, !tbaa !5
  %19259 = call ptr @s2n_strerror_debug(i32 noundef %19258, ptr noundef @.str.4)
  %19260 = call ptr @__errno_location() #11
  %19261 = load i32, ptr %19260, align 4, !tbaa !5
  %19262 = call ptr @strerror(i32 noundef %19261) #10
  %19263 = call ptr @__errno_location() #11
  %19264 = load i32, ptr %19263, align 4, !tbaa !5
  %19265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19252, ptr noundef @.str.5, i32 noundef %19253, ptr noundef @.str.241, ptr noundef @.str.1, i32 noundef 940, ptr noundef %19256, ptr noundef %19259, ptr noundef %19262, i32 noundef %19264) #10
  br label %19266

19266:                                            ; preds = %19249, %19232
  call void @llvm.lifetime.end.p0(i64 4, ptr %407) #10
  br label %19267

19267:                                            ; preds = %19266
  br label %19268

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

19269:                                            ; No predecessors!
  br label %19270

19270:                                            ; preds = %19269
  br label %19271

19271:                                            ; preds = %19270, %19208
  br label %19272

19272:                                            ; preds = %19271
  br label %19273

19273:                                            ; preds = %19272
  br label %19274

19274:                                            ; preds = %19273
  %19275 = load i32, ptr @test_count, align 4, !tbaa !5
  %19276 = add nsw i32 %19275, 1
  store i32 %19276, ptr @test_count, align 4, !tbaa !5
  %19277 = load ptr, ptr %397, align 8, !tbaa !9
  %19278 = getelementptr inbounds %struct.s2n_security_policy, ptr %19277, i32 0, i32 6
  %19279 = load ptr, ptr %19278, align 8, !tbaa !61
  %19280 = load ptr, ptr %400, align 8, !tbaa !9
  %19281 = getelementptr inbounds %struct.s2n_security_policy, ptr %19280, i32 0, i32 6
  %19282 = load ptr, ptr %19281, align 8, !tbaa !61
  %19283 = icmp eq ptr %19279, %19282
  br i1 %19283, label %19337, label %19284

19284:                                            ; preds = %19274
  br label %19285

19285:                                            ; preds = %19284
  br label %19286

19286:                                            ; preds = %19285
  call void @llvm.lifetime.start.p0(i64 4, ptr %408) #10
  %19287 = call ptr @__errno_location() #11
  %19288 = load i32, ptr %19287, align 4, !tbaa !5
  store i32 %19288, ptr %408, align 4, !tbaa !5
  %19289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19290 = call i32 @s2n_print_stacktrace(ptr noundef %19289)
  %19291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19292 = trunc i8 %19291 to i1
  br i1 %19292, label %19293, label %19315

19293:                                            ; preds = %19286
  %19294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19295 = call i32 @fileno(ptr noundef %19294) #10
  %19296 = call i32 @isatty(i32 noundef %19295) #10
  %19297 = icmp ne i32 %19296, 0
  br i1 %19297, label %19298, label %19315

19298:                                            ; preds = %19293
  %19299 = load i32, ptr %408, align 4, !tbaa !5
  %19300 = call ptr @__errno_location() #11
  store i32 %19299, ptr %19300, align 4, !tbaa !5
  %19301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19302 = load i32, ptr @test_count, align 4, !tbaa !5
  %19303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19304 = load i32, ptr %19303, align 4, !tbaa !5
  %19305 = call ptr @s2n_strerror(i32 noundef %19304, ptr noundef @.str.4)
  %19306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19307 = load i32, ptr %19306, align 4, !tbaa !5
  %19308 = call ptr @s2n_strerror_debug(i32 noundef %19307, ptr noundef @.str.4)
  %19309 = call ptr @__errno_location() #11
  %19310 = load i32, ptr %19309, align 4, !tbaa !5
  %19311 = call ptr @strerror(i32 noundef %19310) #10
  %19312 = call ptr @__errno_location() #11
  %19313 = load i32, ptr %19312, align 4, !tbaa !5
  %19314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19301, ptr noundef @.str.2, i32 noundef %19302, ptr noundef @.str.242, ptr noundef @.str.1, i32 noundef 941, ptr noundef %19305, ptr noundef %19308, ptr noundef %19311, i32 noundef %19313) #10
  br label %19332

19315:                                            ; preds = %19293, %19286
  %19316 = load i32, ptr %408, align 4, !tbaa !5
  %19317 = call ptr @__errno_location() #11
  store i32 %19316, ptr %19317, align 4, !tbaa !5
  %19318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19319 = load i32, ptr @test_count, align 4, !tbaa !5
  %19320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19321 = load i32, ptr %19320, align 4, !tbaa !5
  %19322 = call ptr @s2n_strerror(i32 noundef %19321, ptr noundef @.str.4)
  %19323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19324 = load i32, ptr %19323, align 4, !tbaa !5
  %19325 = call ptr @s2n_strerror_debug(i32 noundef %19324, ptr noundef @.str.4)
  %19326 = call ptr @__errno_location() #11
  %19327 = load i32, ptr %19326, align 4, !tbaa !5
  %19328 = call ptr @strerror(i32 noundef %19327) #10
  %19329 = call ptr @__errno_location() #11
  %19330 = load i32, ptr %19329, align 4, !tbaa !5
  %19331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19318, ptr noundef @.str.5, i32 noundef %19319, ptr noundef @.str.242, ptr noundef @.str.1, i32 noundef 941, ptr noundef %19322, ptr noundef %19325, ptr noundef %19328, i32 noundef %19330) #10
  br label %19332

19332:                                            ; preds = %19315, %19298
  call void @llvm.lifetime.end.p0(i64 4, ptr %408) #10
  br label %19333

19333:                                            ; preds = %19332
  br label %19334

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

19335:                                            ; No predecessors!
  br label %19336

19336:                                            ; preds = %19335
  br label %19337

19337:                                            ; preds = %19336, %19274
  br label %19338

19338:                                            ; preds = %19337
  br label %19339

19339:                                            ; preds = %19338
  br label %19340

19340:                                            ; preds = %19339
  %19341 = load i32, ptr @test_count, align 4, !tbaa !5
  %19342 = add nsw i32 %19341, 1
  store i32 %19342, ptr @test_count, align 4, !tbaa !5
  %19343 = load ptr, ptr %397, align 8, !tbaa !9
  %19344 = getelementptr inbounds %struct.s2n_security_policy, ptr %19343, i32 0, i32 7
  %19345 = load i8, ptr %19344, align 8, !tbaa !62, !range !13, !noundef !14
  %19346 = trunc i8 %19345 to i1
  %19347 = zext i1 %19346 to i32
  %19348 = load ptr, ptr %400, align 8, !tbaa !9
  %19349 = getelementptr inbounds %struct.s2n_security_policy, ptr %19348, i32 0, i32 7
  %19350 = load i8, ptr %19349, align 8, !tbaa !62, !range !13, !noundef !14
  %19351 = trunc i8 %19350 to i1
  %19352 = zext i1 %19351 to i32
  %19353 = icmp eq i32 %19347, %19352
  br i1 %19353, label %19407, label %19354

19354:                                            ; preds = %19340
  br label %19355

19355:                                            ; preds = %19354
  br label %19356

19356:                                            ; preds = %19355
  call void @llvm.lifetime.start.p0(i64 4, ptr %409) #10
  %19357 = call ptr @__errno_location() #11
  %19358 = load i32, ptr %19357, align 4, !tbaa !5
  store i32 %19358, ptr %409, align 4, !tbaa !5
  %19359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19360 = call i32 @s2n_print_stacktrace(ptr noundef %19359)
  %19361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19362 = trunc i8 %19361 to i1
  br i1 %19362, label %19363, label %19385

19363:                                            ; preds = %19356
  %19364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19365 = call i32 @fileno(ptr noundef %19364) #10
  %19366 = call i32 @isatty(i32 noundef %19365) #10
  %19367 = icmp ne i32 %19366, 0
  br i1 %19367, label %19368, label %19385

19368:                                            ; preds = %19363
  %19369 = load i32, ptr %409, align 4, !tbaa !5
  %19370 = call ptr @__errno_location() #11
  store i32 %19369, ptr %19370, align 4, !tbaa !5
  %19371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19372 = load i32, ptr @test_count, align 4, !tbaa !5
  %19373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19374 = load i32, ptr %19373, align 4, !tbaa !5
  %19375 = call ptr @s2n_strerror(i32 noundef %19374, ptr noundef @.str.4)
  %19376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19377 = load i32, ptr %19376, align 4, !tbaa !5
  %19378 = call ptr @s2n_strerror_debug(i32 noundef %19377, ptr noundef @.str.4)
  %19379 = call ptr @__errno_location() #11
  %19380 = load i32, ptr %19379, align 4, !tbaa !5
  %19381 = call ptr @strerror(i32 noundef %19380) #10
  %19382 = call ptr @__errno_location() #11
  %19383 = load i32, ptr %19382, align 4, !tbaa !5
  %19384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19371, ptr noundef @.str.2, i32 noundef %19372, ptr noundef @.str.243, ptr noundef @.str.1, i32 noundef 943, ptr noundef %19375, ptr noundef %19378, ptr noundef %19381, i32 noundef %19383) #10
  br label %19402

19385:                                            ; preds = %19363, %19356
  %19386 = load i32, ptr %409, align 4, !tbaa !5
  %19387 = call ptr @__errno_location() #11
  store i32 %19386, ptr %19387, align 4, !tbaa !5
  %19388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19389 = load i32, ptr @test_count, align 4, !tbaa !5
  %19390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19391 = load i32, ptr %19390, align 4, !tbaa !5
  %19392 = call ptr @s2n_strerror(i32 noundef %19391, ptr noundef @.str.4)
  %19393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19394 = load i32, ptr %19393, align 4, !tbaa !5
  %19395 = call ptr @s2n_strerror_debug(i32 noundef %19394, ptr noundef @.str.4)
  %19396 = call ptr @__errno_location() #11
  %19397 = load i32, ptr %19396, align 4, !tbaa !5
  %19398 = call ptr @strerror(i32 noundef %19397) #10
  %19399 = call ptr @__errno_location() #11
  %19400 = load i32, ptr %19399, align 4, !tbaa !5
  %19401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19388, ptr noundef @.str.5, i32 noundef %19389, ptr noundef @.str.243, ptr noundef @.str.1, i32 noundef 943, ptr noundef %19392, ptr noundef %19395, ptr noundef %19398, i32 noundef %19400) #10
  br label %19402

19402:                                            ; preds = %19385, %19368
  call void @llvm.lifetime.end.p0(i64 4, ptr %409) #10
  br label %19403

19403:                                            ; preds = %19402
  br label %19404

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

19405:                                            ; No predecessors!
  br label %19406

19406:                                            ; preds = %19405
  br label %19407

19407:                                            ; preds = %19406, %19340
  br label %19408

19408:                                            ; preds = %19407
  br label %19409

19409:                                            ; preds = %19408
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %397) #10
  br label %19410

19410:                                            ; preds = %19409
  br label %19411

19411:                                            ; preds = %19410
  %19412 = call i32 @s2n_cleanup()
  %19413 = icmp eq i32 %19412, -1
  br i1 %19413, label %19414, label %19467

19414:                                            ; preds = %19411
  br label %19415

19415:                                            ; preds = %19414
  br label %19416

19416:                                            ; preds = %19415
  call void @llvm.lifetime.start.p0(i64 4, ptr %410) #10
  %19417 = call ptr @__errno_location() #11
  %19418 = load i32, ptr %19417, align 4, !tbaa !5
  store i32 %19418, ptr %410, align 4, !tbaa !5
  %19419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19420 = call i32 @s2n_print_stacktrace(ptr noundef %19419)
  %19421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19422 = trunc i8 %19421 to i1
  br i1 %19422, label %19423, label %19445

19423:                                            ; preds = %19416
  %19424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19425 = call i32 @fileno(ptr noundef %19424) #10
  %19426 = call i32 @isatty(i32 noundef %19425) #10
  %19427 = icmp ne i32 %19426, 0
  br i1 %19427, label %19428, label %19445

19428:                                            ; preds = %19423
  %19429 = load i32, ptr %410, align 4, !tbaa !5
  %19430 = call ptr @__errno_location() #11
  store i32 %19429, ptr %19430, align 4, !tbaa !5
  %19431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19432 = load i32, ptr @test_count, align 4, !tbaa !5
  %19433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19434 = load i32, ptr %19433, align 4, !tbaa !5
  %19435 = call ptr @s2n_strerror(i32 noundef %19434, ptr noundef @.str.4)
  %19436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19437 = load i32, ptr %19436, align 4, !tbaa !5
  %19438 = call ptr @s2n_strerror_debug(i32 noundef %19437, ptr noundef @.str.4)
  %19439 = call ptr @__errno_location() #11
  %19440 = load i32, ptr %19439, align 4, !tbaa !5
  %19441 = call ptr @strerror(i32 noundef %19440) #10
  %19442 = call ptr @__errno_location() #11
  %19443 = load i32, ptr %19442, align 4, !tbaa !5
  %19444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19431, ptr noundef @.str.2, i32 noundef %19432, ptr noundef @.str.244, ptr noundef @.str.1, i32 noundef 946, ptr noundef %19435, ptr noundef %19438, ptr noundef %19441, i32 noundef %19443) #10
  br label %19462

19445:                                            ; preds = %19423, %19416
  %19446 = load i32, ptr %410, align 4, !tbaa !5
  %19447 = call ptr @__errno_location() #11
  store i32 %19446, ptr %19447, align 4, !tbaa !5
  %19448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19449 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %19451, ptr noundef @.str.4)
  %19453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19454 = load i32, ptr %19453, align 4, !tbaa !5
  %19455 = call ptr @s2n_strerror_debug(i32 noundef %19454, ptr noundef @.str.4)
  %19456 = call ptr @__errno_location() #11
  %19457 = load i32, ptr %19456, align 4, !tbaa !5
  %19458 = call ptr @strerror(i32 noundef %19457) #10
  %19459 = call ptr @__errno_location() #11
  %19460 = load i32, ptr %19459, align 4, !tbaa !5
  %19461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19448, ptr noundef @.str.5, i32 noundef %19449, ptr noundef @.str.244, ptr noundef @.str.1, i32 noundef 946, ptr noundef %19452, ptr noundef %19455, ptr noundef %19458, i32 noundef %19460) #10
  br label %19462

19462:                                            ; preds = %19445, %19428
  call void @llvm.lifetime.end.p0(i64 4, ptr %410) #10
  br label %19463

19463:                                            ; preds = %19462
  br label %19464

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

19465:                                            ; No predecessors!
  br label %19466

19466:                                            ; preds = %19465
  br label %19467

19467:                                            ; preds = %19466, %19411
  br label %19468

19468:                                            ; preds = %19467
  br label %19469

19469:                                            ; preds = %19468
  br label %19470

19470:                                            ; preds = %19469
  br label %19471

19471:                                            ; preds = %19470
  %19472 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %19473 = icmp eq i32 %19472, -1
  br i1 %19473, label %19474, label %19527

19474:                                            ; preds = %19471
  br label %19475

19475:                                            ; preds = %19474
  br label %19476

19476:                                            ; preds = %19475
  call void @llvm.lifetime.start.p0(i64 4, ptr %411) #10
  %19477 = call ptr @__errno_location() #11
  %19478 = load i32, ptr %19477, align 4, !tbaa !5
  store i32 %19478, ptr %411, align 4, !tbaa !5
  %19479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19480 = call i32 @s2n_print_stacktrace(ptr noundef %19479)
  %19481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19482 = trunc i8 %19481 to i1
  br i1 %19482, label %19483, label %19505

19483:                                            ; preds = %19476
  %19484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19485 = call i32 @fileno(ptr noundef %19484) #10
  %19486 = call i32 @isatty(i32 noundef %19485) #10
  %19487 = icmp ne i32 %19486, 0
  br i1 %19487, label %19488, label %19505

19488:                                            ; preds = %19483
  %19489 = load i32, ptr %411, align 4, !tbaa !5
  %19490 = call ptr @__errno_location() #11
  store i32 %19489, ptr %19490, align 4, !tbaa !5
  %19491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19492 = load i32, ptr @test_count, align 4, !tbaa !5
  %19493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19494 = load i32, ptr %19493, align 4, !tbaa !5
  %19495 = call ptr @s2n_strerror(i32 noundef %19494, ptr noundef @.str.4)
  %19496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19497 = load i32, ptr %19496, align 4, !tbaa !5
  %19498 = call ptr @s2n_strerror_debug(i32 noundef %19497, ptr noundef @.str.4)
  %19499 = call ptr @__errno_location() #11
  %19500 = load i32, ptr %19499, align 4, !tbaa !5
  %19501 = call ptr @strerror(i32 noundef %19500) #10
  %19502 = call ptr @__errno_location() #11
  %19503 = load i32, ptr %19502, align 4, !tbaa !5
  %19504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19491, ptr noundef @.str.2, i32 noundef %19492, ptr noundef @.str.245, ptr noundef @.str.1, i32 noundef 946, ptr noundef %19495, ptr noundef %19498, ptr noundef %19501, i32 noundef %19503) #10
  br label %19522

19505:                                            ; preds = %19483, %19476
  %19506 = load i32, ptr %411, align 4, !tbaa !5
  %19507 = call ptr @__errno_location() #11
  store i32 %19506, ptr %19507, align 4, !tbaa !5
  %19508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19509 = load i32, ptr @test_count, align 4, !tbaa !5
  %19510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19511 = load i32, ptr %19510, align 4, !tbaa !5
  %19512 = call ptr @s2n_strerror(i32 noundef %19511, ptr noundef @.str.4)
  %19513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19514 = load i32, ptr %19513, align 4, !tbaa !5
  %19515 = call ptr @s2n_strerror_debug(i32 noundef %19514, ptr noundef @.str.4)
  %19516 = call ptr @__errno_location() #11
  %19517 = load i32, ptr %19516, align 4, !tbaa !5
  %19518 = call ptr @strerror(i32 noundef %19517) #10
  %19519 = call ptr @__errno_location() #11
  %19520 = load i32, ptr %19519, align 4, !tbaa !5
  %19521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19508, ptr noundef @.str.5, i32 noundef %19509, ptr noundef @.str.245, ptr noundef @.str.1, i32 noundef 946, ptr noundef %19512, ptr noundef %19515, ptr noundef %19518, i32 noundef %19520) #10
  br label %19522

19522:                                            ; preds = %19505, %19488
  call void @llvm.lifetime.end.p0(i64 4, ptr %411) #10
  br label %19523

19523:                                            ; preds = %19522
  br label %19524

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

19525:                                            ; No predecessors!
  br label %19526

19526:                                            ; preds = %19525
  br label %19527

19527:                                            ; preds = %19526, %19471
  br label %19528

19528:                                            ; preds = %19527
  br label %19529

19529:                                            ; preds = %19528
  %19530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19531 = trunc i8 %19530 to i1
  br i1 %19531, label %19532, label %19548

19532:                                            ; preds = %19529
  %19533 = load ptr, ptr @stdout, align 8, !tbaa !9
  %19534 = call i32 @fileno(ptr noundef %19533) #10
  %19535 = call i32 @isatty(i32 noundef %19534) #10
  %19536 = icmp ne i32 %19535, 0
  br i1 %19536, label %19537, label %19548

19537:                                            ; preds = %19532
  %19538 = load i32, ptr @test_count, align 4, !tbaa !5
  %19539 = icmp ne i32 %19538, 0
  br i1 %19539, label %19540, label %19544

19540:                                            ; preds = %19537
  %19541 = load ptr, ptr @stdout, align 8, !tbaa !9
  %19542 = load i32, ptr @test_count, align 4, !tbaa !5
  %19543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19541, ptr noundef @.str.246, i32 noundef %19542) #10
  br label %19547

19544:                                            ; preds = %19537
  %19545 = load ptr, ptr @stdout, align 8, !tbaa !9
  %19546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19545, ptr noundef @.str.247) #10
  br label %19547

19547:                                            ; preds = %19544, %19540
  br label %19559

19548:                                            ; preds = %19532, %19529
  %19549 = load i32, ptr @test_count, align 4, !tbaa !5
  %19550 = icmp ne i32 %19549, 0
  br i1 %19550, label %19551, label %19555

19551:                                            ; preds = %19548
  %19552 = load ptr, ptr @stdout, align 8, !tbaa !9
  %19553 = load i32, ptr @test_count, align 4, !tbaa !5
  %19554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19552, ptr noundef @.str.248, i32 noundef %19553) #10
  br label %19558

19555:                                            ; preds = %19548
  %19556 = load ptr, ptr @stdout, align 8, !tbaa !9
  %19557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19556, ptr noundef @.str.249) #10
  br label %19558

19558:                                            ; preds = %19555, %19551
  br label %19559

19559:                                            ; preds = %19558, %19547
  store i32 0, ptr %3, align 4
  store i32 1, ptr %21, align 4
  br label %19564

19560:                                            ; No predecessors!
  br label %19561

19561:                                            ; preds = %19560
  br label %19562

19562:                                            ; preds = %19561
  br label %19563

19563:                                            ; preds = %19562
  store i32 0, ptr %21, align 4
  br label %19564

19564:                                            ; preds = %19563, %19559
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  %19565 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %18)
  %19566 = getelementptr inbounds %struct.s2n_result, ptr %412, i32 0, i32 0
  store i32 %19565, ptr %19566, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  %19567 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %16)
  %19568 = getelementptr inbounds %struct.s2n_result, ptr %413, i32 0, i32 0
  store i32 %19567, ptr %19568, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  %19569 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %14)
  %19570 = getelementptr inbounds %struct.s2n_result, ptr %414, i32 0, i32 0
  store i32 %19569, ptr %19570, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  %19571 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %12)
  %19572 = getelementptr inbounds %struct.s2n_result, ptr %415, i32 0, i32 0
  store i32 %19571, ptr %19572, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  %19573 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %10)
  %19574 = getelementptr inbounds %struct.s2n_result, ptr %416, i32 0, i32 0
  store i32 %19573, ptr %19574, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  %19575 = load i32, ptr %21, align 4
  switch i32 %19575, label %19578 [
    i32 0, label %19576
    i32 1, label %19576
  ]

19576:                                            ; preds = %19564, %19564
  %19577 = load i32, ptr %3, align 4
  ret i32 %19577

19578:                                            ; preds = %19564, %6755
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

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

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

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

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

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

declare zeroext i1 @s2n_is_rsa_pss_certs_supported(...) #2

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

declare void @s2n_debug_info_reset() #2

declare zeroext i1 @s2n_ecc_is_extension_required(ptr noundef) #2

declare zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef) #2

declare zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef) #2

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

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

declare zeroext i1 @s2n_libcrypto_supports_evp_kem() #2

declare i32 @s2n_is_evp_apis_supported(...) #2

declare zeroext i1 @s2n_libcrypto_supports_mlkem() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

declare zeroext i1 @s2n_cipher_suite_uses_chacha20_alg(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 ptr @s2n_config_new() #2

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

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_config_free(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_check_ecc_preferences_curves_list(ptr noundef) #2

declare i32 @s2n_validate_kem_preferences(ptr noundef, i1 noundef zeroext) #2

declare i32 @s2n_validate_certificate_signature_preferences(ptr noundef) #2

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

declare i32 @s2n_reset_tls13_in_test(...) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_security_policies_compatible(ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_default_backwards_compatible(ptr noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef) #0

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 = { 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 #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !10, i64 0}
!18 = !{!"s2n_security_policy_selection", !10, i64 0, !10, i64 8, !6, i64 16, !6, i64 16, !6, i64 16}
!19 = !{!18, !10, i64 8}
!20 = !{!21, !10, i64 16}
!21 = !{!"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}
!22 = !{!23, !7, i64 16}
!23 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!24 = !{!23, !10, i64 24}
!25 = !{!26, !27, i64 8}
!26 = !{!"s2n_kem_group", !10, i64 0, !27, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!27 = !{!"short", !7, i64 0}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = !{!21, !10, i64 8}
!32 = !{!33, !27, i64 0}
!33 = !{!"s2n_cipher_preferences", !27, i64 0, !10, i64 8, !12, i64 16}
!34 = !{!33, !10, i64 8}
!35 = !{!36, !7, i64 100}
!36 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!37 = distinct !{!37, !29}
!38 = !{!21, !10, i64 24}
!39 = !{!40, !7, i64 0}
!40 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!41 = !{!40, !10, i64 8}
!42 = !{!43, !7, i64 24}
!43 = !{!"s2n_signature_scheme", !27, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !27, i64 26, !10, i64 32}
!44 = !{!43, !7, i64 25}
!45 = !{!43, !6, i64 20}
!46 = distinct !{!46, !29}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}
!49 = !{!23, !10, i64 8}
!50 = !{!23, !7, i64 0}
!51 = distinct !{!51, !29}
!52 = distinct !{!52, !29}
!53 = !{!54, !10, i64 56}
!54 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!55 = !{!33, !12, i64 16}
!56 = distinct !{!56, !29}
!57 = distinct !{!57, !29}
!58 = !{!21, !7, i64 0}
!59 = !{!21, !10, i64 32}
!60 = !{!21, !10, i64 40}
!61 = !{!21, !10, i64 48}
!62 = !{!21, !12, i64 56}
!63 = !{!64, !10, i64 96}
!64 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !65, i64 24, !66, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !16, i64 144, !10, i64 152, !16, i64 160, !16, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !67, i64 304, !27, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !66, i64 448}
!65 = !{!"certs_by_type", !7, i64 0}
!66 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!67 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!68 = !{!7, !7, i64 0}
!69 = !{!43, !6, i64 16}
!70 = !{!43, !10, i64 32}
!71 = distinct !{!71, !29}
!72 = distinct !{!72, !29}
!73 = !{!74, !7, i64 0}
!74 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!75 = !{!74, !10, i64 8}
!76 = distinct !{!76, !29}
!77 = !{!43, !27, i64 26}
!78 = distinct !{!78, !29}
!79 = distinct !{!79, !29}
!80 = !{!81, !10, i64 0}
!81 = !{!"s2n_supported_cert", !10, i64 0, !16, i64 8}
!82 = !{!81, !16, i64 8}


; 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_security_policy_selection = type { ptr, ptr, i8 }
%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_cipher = type { i32, %union.anon, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_supported_cert = type { ptr, i64 }

@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 [85 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [204 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [173 x i8], align 1
@security_policy_selection = external local_unnamed_addr global [0 x %struct.s2n_security_policy_selection], align 8
@.str.26 = external hidden unnamed_addr constant [93 x i8], align 1
@kem_preferences_all = external constant %struct.s2n_kem_preferences, align 8
@.str.27 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [25 x i8], align 1
@deprecated_security_policies_len = external local_unnamed_addr constant i64, align 8
@deprecated_security_policies = external local_unnamed_addr global [0 x ptr], align 8
@.str.30 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [96 x i8], align 1
@ALL_SUPPORTED_KEM_GROUPS = external global [8 x ptr], align 16
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [109 x i8], align 1
@kem_preferences_pq_tls_1_3_2023_06 = external constant %struct.s2n_kem_preferences, align 8
@.str.64 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [85 x i8], align 1
@pq_kem_groups_r3_2023_06 = external global [0 x ptr], align 8
@.str.66 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [96 x i8], align 1
@__const.main.tls12_only_security_policy_strings = external hidden unnamed_addr constant [45 x [255 x i8]], align 16
@.str.73 = external hidden unnamed_addr constant [123 x i8], align 1
@__const.main.tls13_security_policy_strings = external hidden unnamed_addr constant [35 x [255 x i8]], align 16
@.str.74 = external hidden unnamed_addr constant [118 x i8], align 1
@s2n_chacha20_poly1305 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@.str.75 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [58 x i8], align 1
@__const.main.fake_suites = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.79 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_20170210 = external constant %struct.s2n_security_policy, align 8
@.str.81 = external hidden unnamed_addr constant [70 x i8], align 1
@cipher_preferences_20170210 = external constant %struct.s2n_cipher_preferences, align 8
@.str.82 = external hidden unnamed_addr constant [93 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.83 = external hidden unnamed_addr constant [83 x i8], align 1
@s2n_signature_preferences_20140601 = external constant %struct.s2n_signature_preferences, align 8
@.str.84 = external hidden unnamed_addr constant [103 x i8], align 1
@s2n_ecc_preferences_20140601 = external constant %struct.s2n_ecc_preferences, align 8
@.str.85 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_20190801 = external constant %struct.s2n_security_policy, align 8
@.str.88 = external hidden unnamed_addr constant [70 x i8], align 1
@cipher_preferences_20190801 = external constant %struct.s2n_cipher_preferences, align 8
@.str.89 = external hidden unnamed_addr constant [93 x i8], align 1
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@.str.90 = external hidden unnamed_addr constant [103 x i8], align 1
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@.str.91 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [78 x i8], align 1
@security_policy_null = external constant %struct.s2n_security_policy, align 8
@.str.94 = external hidden unnamed_addr constant [66 x i8], align 1
@cipher_preferences_null = external constant %struct.s2n_cipher_preferences, align 8
@.str.95 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_signature_preferences_null = external constant %struct.s2n_signature_preferences, align 8
@.str.96 = external hidden unnamed_addr constant [99 x i8], align 1
@s2n_ecc_preferences_null = external constant %struct.s2n_ecc_preferences, align 8
@.str.97 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_test_all = external constant %struct.s2n_security_policy, align 8
@.str.99 = external hidden unnamed_addr constant [70 x i8], align 1
@cipher_preferences_test_all = external constant %struct.s2n_cipher_preferences, align 8
@.str.100 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_signature_preferences_all = external constant %struct.s2n_signature_preferences, align 8
@.str.102 = external hidden unnamed_addr constant [98 x i8], align 1
@s2n_ecc_preferences_test_all = external constant %struct.s2n_ecc_preferences, align 8
@.str.103 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [88 x i8], align 1
@security_policy_test_all_tls12 = external constant %struct.s2n_security_policy, align 8
@.str.106 = external hidden unnamed_addr constant [76 x i8], align 1
@cipher_preferences_test_all_tls12 = external constant %struct.s2n_cipher_preferences, align 8
@.str.107 = external hidden unnamed_addr constant [99 x i8], align 1
@kem_preferences_pq_tls_1_0_2021_05 = external constant %struct.s2n_kem_preferences, align 8
@.str.108 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_signature_preferences_20201021 = external constant %struct.s2n_signature_preferences, align 8
@.str.109 = external hidden unnamed_addr constant [103 x i8], align 1
@s2n_ecc_preferences_20201021 = external constant %struct.s2n_ecc_preferences, align 8
@.str.110 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_ssl_v3 = external constant %struct.s2n_security_policy, align 8
@.str.113 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_aws_crt_sdk_ssl_v3 = external constant %struct.s2n_cipher_preferences, align 8
@.str.114 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_10 = external constant %struct.s2n_security_policy, align 8
@.str.117 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_aws_crt_sdk_default = external constant %struct.s2n_cipher_preferences, align 8
@.str.118 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_11 = external constant %struct.s2n_security_policy, align 8
@.str.121 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_12 = external constant %struct.s2n_security_policy, align 8
@.str.124 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [93 x i8], align 1
@security_policy_aws_crt_sdk_tls_13 = external constant %struct.s2n_security_policy, align 8
@.str.127 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_aws_crt_sdk_tls_13 = external constant %struct.s2n_cipher_preferences, align 8
@.str.128 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [65 x i8], align 1
@__const.main.test_curve = external hidden unnamed_addr constant %struct.s2n_ecc_named_curve, align 8
@.str.169 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [83 x i8], align 1
@pq_kems_r3_2021_05 = external global [0 x ptr], align 8
@.str.174 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [48 x i8], align 1
@__const.main.test_sig_scheme_pref_list = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.177 = external hidden unnamed_addr constant [119 x i8], align 1
@__const.main.test_sig_scheme_pref_list.178 = external hidden unnamed_addr constant [6 x ptr], align 16
@__const.main.test_sig_scheme_pref_list.179 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.180 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [54 x i8], align 1
@security_policy_20230317 = external constant %struct.s2n_security_policy, align 8
@.str.182 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20240331 = external constant %struct.s2n_security_policy, align 8
@.str.197 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [138 x i8], align 1
@security_policy_rfc9151 = external constant %struct.s2n_security_policy, align 8
@.str.210 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20240503 = external constant %struct.s2n_security_policy, align 8
@.str.214 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20240502 = external constant %struct.s2n_security_policy, align 8
@.str.216 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20250211 = external constant %struct.s2n_security_policy, align 8
@.str.217 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [135 x i8], align 1
@security_policy_20250414 = external constant %struct.s2n_security_policy, align 8
@.str.223 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [136 x i8], align 1
@__const.main.versioned_policies = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.227 = external hidden unnamed_addr constant [235 x i8], align 1
@__const.main.versioned_policies.228 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.229 = external hidden unnamed_addr constant [241 x i8], align 1
@__const.main.versioned_policies.230 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.231 = external hidden unnamed_addr constant [240 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca [45 x [255 x i8]], align 16
  %11 = alloca [35 x [255 x i8]], align 16
  %12 = alloca [1 x ptr], align 8
  %13 = alloca %struct.s2n_cipher_preferences, align 8
  %14 = alloca %struct.s2n_kem_preferences, align 8
  %15 = alloca %struct.s2n_security_policy, align 8
  %16 = alloca %struct.s2n_ecc_named_curve, align 8
  %17 = alloca [1 x ptr], align 8
  %18 = alloca %struct.s2n_ecc_preferences, align 8
  %19 = alloca [4 x %struct.s2n_kem_preferences], align 16
  %20 = alloca [1 x ptr], align 8
  %21 = alloca %struct.s2n_signature_preferences, align 8
  %22 = alloca [6 x ptr], align 16
  %23 = alloca %struct.s2n_signature_preferences, align 8
  %24 = alloca [2 x ptr], align 16
  %25 = alloca %struct.s2n_signature_preferences, align 8
  %26 = alloca [2 x ptr], align 16
  %27 = alloca [2 x %struct.s2n_supported_cert], align 16
  %28 = alloca [2 x ptr], align 16
  %29 = alloca [3 x %struct.s2n_supported_cert], align 16
  %30 = alloca [2 x ptr], align 16
  %31 = alloca [2 x %struct.s2n_supported_cert], align 16
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %34 = load ptr, ptr @stdout, align 8, !tbaa !9
  %35 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %36 = load ptr, ptr @stdout, align 8, !tbaa !9
  %37 = tail call i32 @fflush(ptr noundef %36)
  %38 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %39 = icmp eq i32 %38, -1
  br i1 %39, label %40, label %64

40:                                               ; preds = %2
  %41 = tail call ptr @__errno_location() #12
  %42 = load i32, ptr %41, align 4, !tbaa !5
  %43 = load ptr, ptr @stderr, align 8, !tbaa !9
  %44 = tail call i32 @s2n_print_stacktrace(ptr noundef %43) #11
  %45 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %46 = trunc nuw i8 %45 to i1
  br i1 %46, label %47, label %51

47:                                               ; preds = %40
  %48 = load ptr, ptr @stderr, align 8, !tbaa !9
  %49 = tail call i32 @fileno(ptr noundef %48) #11
  %50 = tail call i32 @isatty(i32 noundef %49) #11
  %.not1146 = icmp eq i32 %50, 0
  br i1 %.not1146, label %51, label %52

51:                                               ; preds = %47, %40
  br label %52

52:                                               ; preds = %47, %51
  %.str.5.sink = phi ptr [ @.str.5, %51 ], [ @.str.2, %47 ]
  store i32 %42, ptr %41, align 4, !tbaa !5
  %53 = load ptr, ptr @stderr, align 8, !tbaa !9
  %54 = load i32, ptr @test_count, align 4, !tbaa !5
  %55 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %56 = load i32, ptr %55, align 4, !tbaa !5
  %57 = tail call ptr @s2n_strerror(i32 noundef %56, ptr noundef nonnull @.str.4) #11
  %58 = load i32, ptr %55, align 4, !tbaa !5
  %59 = tail call ptr @s2n_strerror_debug(i32 noundef %58, ptr noundef nonnull @.str.4) #11
  %60 = load i32, ptr %41, align 4, !tbaa !5
  %61 = tail call ptr @strerror(i32 noundef %60) #11
  %62 = load i32, ptr %41, align 4, !tbaa !5
  %63 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %53, ptr noundef nonnull %.str.5.sink, i32 noundef %54, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %57, ptr noundef %59, ptr noundef %61, i32 noundef %62) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

64:                                               ; preds = %2
  %65 = load i32, ptr @test_count, align 4, !tbaa !5
  %66 = add nsw i32 %65, 1
  store i32 %66, ptr @test_count, align 4, !tbaa !5
  %67 = tail call i32 @s2n_enable_atexit() #11
  %68 = icmp eq i32 %67, -1
  br i1 %68, label %69, label %93

69:                                               ; preds = %64
  %70 = tail call ptr @__errno_location() #12
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = tail call i32 @s2n_print_stacktrace(ptr noundef %72) #11
  %74 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %75 = trunc nuw i8 %74 to i1
  br i1 %75, label %76, label %80

76:                                               ; preds = %69
  %77 = load ptr, ptr @stderr, align 8, !tbaa !9
  %78 = tail call i32 @fileno(ptr noundef %77) #11
  %79 = tail call i32 @isatty(i32 noundef %78) #11
  %.not1145 = icmp eq i32 %79, 0
  br i1 %.not1145, label %80, label %81

80:                                               ; preds = %76, %69
  br label %81

81:                                               ; preds = %76, %80
  %.str.5.sink1370 = phi ptr [ @.str.5, %80 ], [ @.str.2, %76 ]
  store i32 %71, ptr %70, align 4, !tbaa !5
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = load i32, ptr @test_count, align 4, !tbaa !5
  %84 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = tail call ptr @s2n_strerror(i32 noundef %85, ptr noundef nonnull @.str.4) #11
  %87 = load i32, ptr %84, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror_debug(i32 noundef %87, ptr noundef nonnull @.str.4) #11
  %89 = load i32, ptr %70, align 4, !tbaa !5
  %90 = tail call ptr @strerror(i32 noundef %89) #11
  %91 = load i32, ptr %70, align 4, !tbaa !5
  %92 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull %.str.5.sink1370, i32 noundef %83, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %86, ptr noundef %88, ptr noundef %90, i32 noundef %91) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

93:                                               ; preds = %64
  %94 = tail call i32 @s2n_init() #11
  %95 = icmp eq i32 %94, -1
  br i1 %95, label %96, label %120

96:                                               ; preds = %93
  %97 = tail call ptr @__errno_location() #12
  %98 = load i32, ptr %97, align 4, !tbaa !5
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = tail call i32 @s2n_print_stacktrace(ptr noundef %99) #11
  %101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %102 = trunc nuw i8 %101 to i1
  br i1 %102, label %103, label %107

103:                                              ; preds = %96
  %104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %105 = tail call i32 @fileno(ptr noundef %104) #11
  %106 = tail call i32 @isatty(i32 noundef %105) #11
  %.not1144 = icmp eq i32 %106, 0
  br i1 %.not1144, label %107, label %108

107:                                              ; preds = %103, %96
  br label %108

108:                                              ; preds = %103, %107
  %.str.5.sink1381 = phi ptr [ @.str.5, %107 ], [ @.str.2, %103 ]
  store i32 %98, ptr %97, align 4, !tbaa !5
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = load i32, ptr @test_count, align 4, !tbaa !5
  %111 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %112 = load i32, ptr %111, align 4, !tbaa !5
  %113 = tail call ptr @s2n_strerror(i32 noundef %112, ptr noundef nonnull @.str.4) #11
  %114 = load i32, ptr %111, align 4, !tbaa !5
  %115 = tail call ptr @s2n_strerror_debug(i32 noundef %114, ptr noundef nonnull @.str.4) #11
  %116 = load i32, ptr %97, align 4, !tbaa !5
  %117 = tail call ptr @strerror(i32 noundef %116) #11
  %118 = load i32, ptr %97, align 4, !tbaa !5
  %119 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %109, ptr noundef nonnull %.str.5.sink1381, i32 noundef %110, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %113, ptr noundef %115, ptr noundef %117, i32 noundef %118) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

120:                                              ; preds = %93
  %121 = load i32, ptr @test_count, align 4, !tbaa !5
  %122 = add nsw i32 %121, 1
  store i32 %122, ptr @test_count, align 4, !tbaa !5
  %123 = tail call i32 (...) @s2n_disable_tls13_in_test() #11
  %124 = icmp eq i32 %123, -1
  br i1 %124, label %125, label %149

125:                                              ; preds = %120
  %126 = tail call ptr @__errno_location() #12
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %129 = tail call i32 @s2n_print_stacktrace(ptr noundef %128) #11
  %130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %131 = trunc nuw i8 %130 to i1
  br i1 %131, label %132, label %136

132:                                              ; preds = %125
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = tail call i32 @fileno(ptr noundef %133) #11
  %135 = tail call i32 @isatty(i32 noundef %134) #11
  %.not1143 = icmp eq i32 %135, 0
  br i1 %.not1143, label %136, label %137

136:                                              ; preds = %132, %125
  br label %137

137:                                              ; preds = %132, %136
  %.str.5.sink1392 = phi ptr [ @.str.5, %136 ], [ @.str.2, %132 ]
  store i32 %127, ptr %126, align 4, !tbaa !5
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = load i32, ptr @test_count, align 4, !tbaa !5
  %140 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror(i32 noundef %141, ptr noundef nonnull @.str.4) #11
  %143 = load i32, ptr %140, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror_debug(i32 noundef %143, ptr noundef nonnull @.str.4) #11
  %145 = load i32, ptr %126, align 4, !tbaa !5
  %146 = tail call ptr @strerror(i32 noundef %145) #11
  %147 = load i32, ptr %126, align 4, !tbaa !5
  %148 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %138, ptr noundef nonnull %.str.5.sink1392, i32 noundef %139, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %142, ptr noundef %144, ptr noundef %146, i32 noundef %147) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

149:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr @test_count, align 4, !tbaa !5
  %152 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.10) #11
  %153 = icmp eq i32 %152, -1
  br i1 %153, label %154, label %178

154:                                              ; preds = %149
  %155 = tail call ptr @__errno_location() #12
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = call i32 @s2n_print_stacktrace(ptr noundef %157) #11
  %159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %160 = trunc nuw i8 %159 to i1
  br i1 %160, label %161, label %165

161:                                              ; preds = %154
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = call i32 @fileno(ptr noundef %162) #11
  %164 = call i32 @isatty(i32 noundef %163) #11
  %.not1142 = icmp eq i32 %164, 0
  br i1 %.not1142, label %165, label %166

165:                                              ; preds = %161, %154
  br label %166

166:                                              ; preds = %161, %165
  %.str.5.sink1403 = phi ptr [ @.str.5, %165 ], [ @.str.2, %161 ]
  store i32 %156, ptr %155, align 4, !tbaa !5
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = load i32, ptr @test_count, align 4, !tbaa !5
  %169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call ptr @s2n_strerror(i32 noundef %170, ptr noundef nonnull @.str.4) #11
  %172 = load i32, ptr %169, align 4, !tbaa !5
  %173 = call ptr @s2n_strerror_debug(i32 noundef %172, ptr noundef nonnull @.str.4) #11
  %174 = load i32, ptr %155, align 4, !tbaa !5
  %175 = call ptr @strerror(i32 noundef %174) #11
  %176 = load i32, ptr %155, align 4, !tbaa !5
  %177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %167, ptr noundef nonnull %.str.5.sink1403, i32 noundef %168, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %171, ptr noundef %173, ptr noundef %175, i32 noundef %176) #13
  call void @exit(i32 noundef 1) #14
  unreachable

178:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #11
  store ptr null, ptr %4, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr @test_count, align 4, !tbaa !5
  %181 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %4, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13) #11
  %182 = icmp eq i32 %181, -1
  br i1 %182, label %183, label %207

183:                                              ; preds = %178
  %184 = tail call ptr @__errno_location() #12
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = call i32 @s2n_print_stacktrace(ptr noundef %186) #11
  %188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %189 = trunc nuw i8 %188 to i1
  br i1 %189, label %190, label %194

190:                                              ; preds = %183
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = call i32 @fileno(ptr noundef %191) #11
  %193 = call i32 @isatty(i32 noundef %192) #11
  %.not1141 = icmp eq i32 %193, 0
  br i1 %.not1141, label %194, label %195

194:                                              ; preds = %190, %183
  br label %195

195:                                              ; preds = %190, %194
  %.str.5.sink1414 = phi ptr [ @.str.5, %194 ], [ @.str.2, %190 ]
  store i32 %185, ptr %184, align 4, !tbaa !5
  %196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %197 = load i32, ptr @test_count, align 4, !tbaa !5
  %198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call ptr @s2n_strerror(i32 noundef %199, ptr noundef nonnull @.str.4) #11
  %201 = load i32, ptr %198, align 4, !tbaa !5
  %202 = call ptr @s2n_strerror_debug(i32 noundef %201, ptr noundef nonnull @.str.4) #11
  %203 = load i32, ptr %184, align 4, !tbaa !5
  %204 = call ptr @strerror(i32 noundef %203) #11
  %205 = load i32, ptr %184, align 4, !tbaa !5
  %206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %196, ptr noundef nonnull %.str.5.sink1414, i32 noundef %197, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %200, ptr noundef %202, ptr noundef %204, i32 noundef %205) #13
  call void @exit(i32 noundef 1) #14
  unreachable

207:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  store ptr null, ptr %5, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = add nsw i32 %208, 1
  store i32 %209, ptr @test_count, align 4, !tbaa !5
  %210 = call i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef nonnull %5, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.18) #11
  %211 = icmp eq i32 %210, -1
  br i1 %211, label %212, label %236

212:                                              ; preds = %207
  %213 = tail call ptr @__errno_location() #12
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = call i32 @s2n_print_stacktrace(ptr noundef %215) #11
  %217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %218 = trunc nuw i8 %217 to i1
  br i1 %218, label %219, label %223

219:                                              ; preds = %212
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = call i32 @fileno(ptr noundef %220) #11
  %222 = call i32 @isatty(i32 noundef %221) #11
  %.not1140 = icmp eq i32 %222, 0
  br i1 %.not1140, label %223, label %224

223:                                              ; preds = %219, %212
  br label %224

224:                                              ; preds = %219, %223
  %.str.5.sink1425 = phi ptr [ @.str.5, %223 ], [ @.str.2, %219 ]
  store i32 %214, ptr %213, align 4, !tbaa !5
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = load i32, ptr @test_count, align 4, !tbaa !5
  %227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call ptr @s2n_strerror(i32 noundef %228, ptr noundef nonnull @.str.4) #11
  %230 = load i32, ptr %227, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror_debug(i32 noundef %230, ptr noundef nonnull @.str.4) #11
  %232 = load i32, ptr %213, align 4, !tbaa !5
  %233 = call ptr @strerror(i32 noundef %232) #11
  %234 = load i32, ptr %213, align 4, !tbaa !5
  %235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %225, ptr noundef nonnull %.str.5.sink1425, i32 noundef %226, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %229, ptr noundef %231, ptr noundef %233, i32 noundef %234) #13
  call void @exit(i32 noundef 1) #14
  unreachable

236:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  store ptr null, ptr %6, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = add nsw i32 %237, 1
  store i32 %238, ptr @test_count, align 4, !tbaa !5
  %239 = call i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef nonnull %6, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21) #11
  %240 = icmp eq i32 %239, -1
  br i1 %240, label %241, label %265

241:                                              ; preds = %236
  %242 = tail call ptr @__errno_location() #12
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = call i32 @s2n_print_stacktrace(ptr noundef %244) #11
  %246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %247 = trunc nuw i8 %246 to i1
  br i1 %247, label %248, label %252

248:                                              ; preds = %241
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = call i32 @fileno(ptr noundef %249) #11
  %251 = call i32 @isatty(i32 noundef %250) #11
  %.not1139 = icmp eq i32 %251, 0
  br i1 %.not1139, label %252, label %253

252:                                              ; preds = %248, %241
  br label %253

253:                                              ; preds = %248, %252
  %.str.5.sink1436 = phi ptr [ @.str.5, %252 ], [ @.str.2, %248 ]
  store i32 %243, ptr %242, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror(i32 noundef %257, ptr noundef nonnull @.str.4) #11
  %259 = load i32, ptr %256, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef nonnull @.str.4) #11
  %261 = load i32, ptr %242, align 4, !tbaa !5
  %262 = call ptr @strerror(i32 noundef %261) #11
  %263 = load i32, ptr %242, align 4, !tbaa !5
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.5.sink1436, i32 noundef %255, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %258, ptr noundef %260, ptr noundef %262, i32 noundef %263) #13
  call void @exit(i32 noundef 1) #14
  unreachable

265:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  store ptr null, ptr %7, align 8, !tbaa !9
  %266 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #11
  br i1 %266, label %267, label %296

267:                                              ; preds = %265
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %7, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.24) #11
  %271 = icmp eq i32 %270, -1
  br i1 %271, label %272, label %296

272:                                              ; preds = %267
  %273 = tail call ptr @__errno_location() #12
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = call i32 @s2n_print_stacktrace(ptr noundef %275) #11
  %277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %278 = trunc nuw i8 %277 to i1
  br i1 %278, label %279, label %283

279:                                              ; preds = %272
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @fileno(ptr noundef %280) #11
  %282 = call i32 @isatty(i32 noundef %281) #11
  %.not1138 = icmp eq i32 %282, 0
  br i1 %.not1138, label %283, label %284

283:                                              ; preds = %279, %272
  br label %284

284:                                              ; preds = %279, %283
  %.str.5.sink1447 = phi ptr [ @.str.5, %283 ], [ @.str.2, %279 ]
  store i32 %274, ptr %273, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call ptr @s2n_strerror(i32 noundef %288, ptr noundef nonnull @.str.4) #11
  %290 = load i32, ptr %287, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef nonnull @.str.4) #11
  %292 = load i32, ptr %273, align 4, !tbaa !5
  %293 = call ptr @strerror(i32 noundef %292) #11
  %294 = load i32, ptr %273, align 4, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull %.str.5.sink1447, i32 noundef %286, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %289, ptr noundef %291, ptr noundef %293, i32 noundef %294) #13
  call void @exit(i32 noundef 1) #14
  unreachable

296:                                              ; preds = %267, %265
  %297 = load ptr, ptr @security_policy_selection, align 8, !tbaa !15
  %.not1178 = icmp eq ptr %297, null
  br i1 %.not1178, label %._crit_edge1183, label %.lr.ph1182

.lr.ph1182:                                       ; preds = %296
  %test_count.promoted1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = load i8, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 16), align 8
  %299 = zext i8 %298 to i64
  %.not1236 = icmp eq i8 %298, 0
  %300 = load ptr, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 24), align 8
  br label %303

._crit_edge1183:                                  ; preds = %.critedge1148, %296
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  store ptr null, ptr %8, align 8, !tbaa !9
  %301 = load i64, ptr @deprecated_security_policies_len, align 8, !tbaa !17
  %.not1240 = icmp eq i64 %301, 0
  br i1 %.not1240, label %._crit_edge1187, label %.lr.ph1186

.lr.ph1186:                                       ; preds = %._crit_edge1183
  %302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %596

303:                                              ; preds = %.lr.ph1182, %.critedge1148
  %304 = phi ptr [ @security_policy_selection, %.lr.ph1182 ], [ %590, %.critedge1148 ]
  %.01180 = phi i64 [ 0, %.lr.ph1182 ], [ %589, %.critedge1148 ]
  %test_count.promoted11751179 = phi i32 [ %test_count.promoted1172, %.lr.ph1182 ], [ %test_count.promoted1173, %.critedge1148 ]
  %305 = getelementptr inbounds i8, ptr %304, i64 8
  %306 = load ptr, ptr %305, align 8, !tbaa !19
  %307 = getelementptr inbounds i8, ptr %306, i64 16
  %308 = load ptr, ptr %307, align 8, !tbaa !20
  %309 = getelementptr inbounds i8, ptr %308, i64 16
  %310 = load i8, ptr %309, align 8, !tbaa !22
  %.not1133 = icmp eq i8 %310, 0
  br i1 %.not1133, label %.loopexit1157, label %311

311:                                              ; preds = %303
  %312 = add nsw i32 %test_count.promoted11751179, 1
  store i32 %312, ptr @test_count, align 4, !tbaa !5
  %313 = icmp ult i8 %310, 9
  br i1 %313, label %.lr.ph1162, label %316

.lr.ph1162:                                       ; preds = %311
  %314 = getelementptr inbounds i8, ptr %308, i64 24
  %315 = load ptr, ptr %314, align 8, !tbaa !24
  br i1 %.not1236, label %._crit_edge, label %.lr.ph

316:                                              ; preds = %311
  %317 = tail call ptr @__errno_location() #12
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = call i32 @s2n_print_stacktrace(ptr noundef %319) #11
  %321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %322 = trunc nuw i8 %321 to i1
  br i1 %322, label %323, label %327

323:                                              ; preds = %316
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @fileno(ptr noundef %324) #11
  %326 = call i32 @isatty(i32 noundef %325) #11
  %.not1134 = icmp eq i32 %326, 0
  br i1 %.not1134, label %327, label %328

327:                                              ; preds = %323, %316
  br label %328

328:                                              ; preds = %323, %327
  %.str.5.sink1458 = phi ptr [ @.str.5, %327 ], [ @.str.2, %323 ]
  store i32 %318, ptr %317, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror(i32 noundef %332, ptr noundef nonnull @.str.4) #11
  %334 = load i32, ptr %331, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef nonnull @.str.4) #11
  %336 = load i32, ptr %317, align 4, !tbaa !5
  %337 = call ptr @strerror(i32 noundef %336) #11
  %338 = load i32, ptr %317, align 4, !tbaa !5
  %339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef nonnull %.str.5.sink1458, i32 noundef %330, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %333, ptr noundef %335, ptr noundef %337, i32 noundef %338) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.lr.ph:                                           ; preds = %.lr.ph1162
  %340 = load ptr, ptr %315, align 8, !tbaa !9
  %341 = getelementptr inbounds i8, ptr %340, i64 8
  %342 = load i16, ptr %341, align 8, !tbaa !25
  br label %345

343:                                              ; preds = %345
  %344 = add nuw nsw i64 %.08131159, 1
  %exitcond.not = icmp eq i64 %344, %299
  br i1 %exitcond.not, label %._crit_edge, label %345, !llvm.loop !28

345:                                              ; preds = %.lr.ph, %343
  %.08131159 = phi i64 [ 0, %.lr.ph ], [ %344, %343 ]
  %346 = getelementptr inbounds ptr, ptr %300, i64 %.08131159
  %347 = load ptr, ptr %346, align 8, !tbaa !9
  %348 = getelementptr inbounds i8, ptr %347, i64 8
  %349 = load i16, ptr %348, align 8, !tbaa !25
  %350 = icmp eq i16 %342, %349
  br i1 %350, label %376, label %343

._crit_edge:                                      ; preds = %.lr.ph1162, %343, %388, %402, %416, %430, %444, %458, %472
  %351 = phi i32 [ %312, %343 ], [ %377, %388 ], [ %391, %402 ], [ %405, %416 ], [ %419, %430 ], [ %433, %444 ], [ %447, %458 ], [ %461, %472 ], [ %312, %.lr.ph1162 ]
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr @test_count, align 4, !tbaa !5
  %353 = tail call ptr @__errno_location() #12
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = call i32 @s2n_print_stacktrace(ptr noundef %355) #11
  %357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %358 = trunc nuw i8 %357 to i1
  br i1 %358, label %359, label %363

359:                                              ; preds = %._crit_edge
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = call i32 @fileno(ptr noundef %360) #11
  %362 = call i32 @isatty(i32 noundef %361) #11
  %.not1137 = icmp eq i32 %362, 0
  br i1 %.not1137, label %363, label %364

363:                                              ; preds = %359, %._crit_edge
  br label %364

364:                                              ; preds = %359, %363
  %.str.5.sink1469 = phi ptr [ @.str.5, %363 ], [ @.str.2, %359 ]
  store i32 %354, ptr %353, align 4, !tbaa !5
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror(i32 noundef %368, ptr noundef nonnull @.str.4) #11
  %370 = load i32, ptr %367, align 4, !tbaa !5
  %371 = call ptr @s2n_strerror_debug(i32 noundef %370, ptr noundef nonnull @.str.4) #11
  %372 = load i32, ptr %353, align 4, !tbaa !5
  %373 = call ptr @strerror(i32 noundef %372) #11
  %374 = load i32, ptr %353, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %365, ptr noundef nonnull %.str.5.sink1469, i32 noundef %366, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %369, ptr noundef %371, ptr noundef %373, i32 noundef %374) #13
  call void @exit(i32 noundef 1) #14
  unreachable

376:                                              ; preds = %345
  %377 = add nsw i32 %test_count.promoted11751179, 2
  store i32 %377, ptr @test_count, align 4, !tbaa !5
  %exitcond1285.not = icmp eq i8 %310, 1
  br i1 %exitcond1285.not, label %.loopexit1157, label %.lr.ph.1, !llvm.loop !30

.lr.ph.1:                                         ; preds = %376
  %378 = getelementptr inbounds i8, ptr %315, i64 8
  %379 = load ptr, ptr %378, align 8, !tbaa !9
  %380 = getelementptr inbounds i8, ptr %379, i64 8
  %381 = load i16, ptr %380, align 8, !tbaa !25
  br label %382

382:                                              ; preds = %388, %.lr.ph.1
  %.08131159.1 = phi i64 [ 0, %.lr.ph.1 ], [ %389, %388 ]
  %383 = getelementptr inbounds ptr, ptr %300, i64 %.08131159.1
  %384 = load ptr, ptr %383, align 8, !tbaa !9
  %385 = getelementptr inbounds i8, ptr %384, i64 8
  %386 = load i16, ptr %385, align 8, !tbaa !25
  %387 = icmp eq i16 %381, %386
  br i1 %387, label %390, label %388

388:                                              ; preds = %382
  %389 = add nuw nsw i64 %.08131159.1, 1
  %exitcond.not.1 = icmp eq i64 %389, %299
  br i1 %exitcond.not.1, label %._crit_edge, label %382, !llvm.loop !28

390:                                              ; preds = %382
  %391 = add nsw i32 %test_count.promoted11751179, 3
  store i32 %391, ptr @test_count, align 4, !tbaa !5
  %exitcond1285.not.1 = icmp eq i8 %310, 2
  br i1 %exitcond1285.not.1, label %.loopexit1157, label %.lr.ph.2, !llvm.loop !30

.lr.ph.2:                                         ; preds = %390
  %392 = getelementptr inbounds i8, ptr %315, i64 16
  %393 = load ptr, ptr %392, align 8, !tbaa !9
  %394 = getelementptr inbounds i8, ptr %393, i64 8
  %395 = load i16, ptr %394, align 8, !tbaa !25
  br label %396

396:                                              ; preds = %402, %.lr.ph.2
  %.08131159.2 = phi i64 [ 0, %.lr.ph.2 ], [ %403, %402 ]
  %397 = getelementptr inbounds ptr, ptr %300, i64 %.08131159.2
  %398 = load ptr, ptr %397, align 8, !tbaa !9
  %399 = getelementptr inbounds i8, ptr %398, i64 8
  %400 = load i16, ptr %399, align 8, !tbaa !25
  %401 = icmp eq i16 %395, %400
  br i1 %401, label %404, label %402

402:                                              ; preds = %396
  %403 = add nuw nsw i64 %.08131159.2, 1
  %exitcond.not.2 = icmp eq i64 %403, %299
  br i1 %exitcond.not.2, label %._crit_edge, label %396, !llvm.loop !28

404:                                              ; preds = %396
  %405 = add nsw i32 %test_count.promoted11751179, 4
  store i32 %405, ptr @test_count, align 4, !tbaa !5
  %exitcond1285.not.2 = icmp eq i8 %310, 3
  br i1 %exitcond1285.not.2, label %.loopexit1157, label %.lr.ph.3, !llvm.loop !30

.lr.ph.3:                                         ; preds = %404
  %406 = getelementptr inbounds i8, ptr %315, i64 24
  %407 = load ptr, ptr %406, align 8, !tbaa !9
  %408 = getelementptr inbounds i8, ptr %407, i64 8
  %409 = load i16, ptr %408, align 8, !tbaa !25
  br label %410

410:                                              ; preds = %416, %.lr.ph.3
  %.08131159.3 = phi i64 [ 0, %.lr.ph.3 ], [ %417, %416 ]
  %411 = getelementptr inbounds ptr, ptr %300, i64 %.08131159.3
  %412 = load ptr, ptr %411, align 8, !tbaa !9
  %413 = getelementptr inbounds i8, ptr %412, i64 8
  %414 = load i16, ptr %413, align 8, !tbaa !25
  %415 = icmp eq i16 %409, %414
  br i1 %415, label %418, label %416

416:                                              ; preds = %410
  %417 = add nuw nsw i64 %.08131159.3, 1
  %exitcond.not.3 = icmp eq i64 %417, %299
  br i1 %exitcond.not.3, label %._crit_edge, label %410, !llvm.loop !28

418:                                              ; preds = %410
  %419 = add nsw i32 %test_count.promoted11751179, 5
  store i32 %419, ptr @test_count, align 4, !tbaa !5
  %exitcond1285.not.3 = icmp eq i8 %310, 4
  br i1 %exitcond1285.not.3, label %.loopexit1157, label %.lr.ph.4, !llvm.loop !30

.lr.ph.4:                                         ; preds = %418
  %420 = getelementptr inbounds i8, ptr %315, i64 32
  %421 = load ptr, ptr %420, align 8, !tbaa !9
  %422 = getelementptr inbounds i8, ptr %421, i64 8
  %423 = load i16, ptr %422, align 8, !tbaa !25
  br label %424

424:                                              ; preds = %430, %.lr.ph.4
  %.08131159.4 = phi i64 [ 0, %.lr.ph.4 ], [ %431, %430 ]
  %425 = getelementptr inbounds ptr, ptr %300, i64 %.08131159.4
  %426 = load ptr, ptr %425, align 8, !tbaa !9
  %427 = getelementptr inbounds i8, ptr %426, i64 8
  %428 = load i16, ptr %427, align 8, !tbaa !25
  %429 = icmp eq i16 %423, %428
  br i1 %429, label %432, label %430

430:                                              ; preds = %424
  %431 = add nuw nsw i64 %.08131159.4, 1
  %exitcond.not.4 = icmp eq i64 %431, %299
  br i1 %exitcond.not.4, label %._crit_edge, label %424, !llvm.loop !28

432:                                              ; preds = %424
  %433 = add nsw i32 %test_count.promoted11751179, 6
  store i32 %433, ptr @test_count, align 4, !tbaa !5
  %exitcond1285.not.4 = icmp eq i8 %310, 5
  br i1 %exitcond1285.not.4, label %.loopexit1157, label %.lr.ph.5, !llvm.loop !30

.lr.ph.5:                                         ; preds = %432
  %434 = getelementptr inbounds i8, ptr %315, i64 40
  %435 = load ptr, ptr %434, align 8, !tbaa !9
  %436 = getelementptr inbounds i8, ptr %435, i64 8
  %437 = load i16, ptr %436, align 8, !tbaa !25
  br label %438

438:                                              ; preds = %444, %.lr.ph.5
  %.08131159.5 = phi i64 [ 0, %.lr.ph.5 ], [ %445, %444 ]
  %439 = getelementptr inbounds ptr, ptr %300, i64 %.08131159.5
  %440 = load ptr, ptr %439, align 8, !tbaa !9
  %441 = getelementptr inbounds i8, ptr %440, i64 8
  %442 = load i16, ptr %441, align 8, !tbaa !25
  %443 = icmp eq i16 %437, %442
  br i1 %443, label %446, label %444

444:                                              ; preds = %438
  %445 = add nuw nsw i64 %.08131159.5, 1
  %exitcond.not.5 = icmp eq i64 %445, %299
  br i1 %exitcond.not.5, label %._crit_edge, label %438, !llvm.loop !28

446:                                              ; preds = %438
  %447 = add nsw i32 %test_count.promoted11751179, 7
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %exitcond1285.not.5 = icmp eq i8 %310, 6
  br i1 %exitcond1285.not.5, label %.loopexit1157, label %.lr.ph.6, !llvm.loop !30

.lr.ph.6:                                         ; preds = %446
  %448 = getelementptr inbounds i8, ptr %315, i64 48
  %449 = load ptr, ptr %448, align 8, !tbaa !9
  %450 = getelementptr inbounds i8, ptr %449, i64 8
  %451 = load i16, ptr %450, align 8, !tbaa !25
  br label %452

452:                                              ; preds = %458, %.lr.ph.6
  %.08131159.6 = phi i64 [ 0, %.lr.ph.6 ], [ %459, %458 ]
  %453 = getelementptr inbounds ptr, ptr %300, i64 %.08131159.6
  %454 = load ptr, ptr %453, align 8, !tbaa !9
  %455 = getelementptr inbounds i8, ptr %454, i64 8
  %456 = load i16, ptr %455, align 8, !tbaa !25
  %457 = icmp eq i16 %451, %456
  br i1 %457, label %460, label %458

458:                                              ; preds = %452
  %459 = add nuw nsw i64 %.08131159.6, 1
  %exitcond.not.6 = icmp eq i64 %459, %299
  br i1 %exitcond.not.6, label %._crit_edge, label %452, !llvm.loop !28

460:                                              ; preds = %452
  %461 = add nsw i32 %test_count.promoted11751179, 8
  store i32 %461, ptr @test_count, align 4, !tbaa !5
  %exitcond1285.not.6 = icmp eq i8 %310, 7
  br i1 %exitcond1285.not.6, label %.loopexit1157, label %.lr.ph.7, !llvm.loop !30

.lr.ph.7:                                         ; preds = %460
  %462 = getelementptr inbounds i8, ptr %315, i64 56
  %463 = load ptr, ptr %462, align 8, !tbaa !9
  %464 = getelementptr inbounds i8, ptr %463, i64 8
  %465 = load i16, ptr %464, align 8, !tbaa !25
  br label %466

466:                                              ; preds = %472, %.lr.ph.7
  %.08131159.7 = phi i64 [ 0, %.lr.ph.7 ], [ %473, %472 ]
  %467 = getelementptr inbounds ptr, ptr %300, i64 %.08131159.7
  %468 = load ptr, ptr %467, align 8, !tbaa !9
  %469 = getelementptr inbounds i8, ptr %468, i64 8
  %470 = load i16, ptr %469, align 8, !tbaa !25
  %471 = icmp eq i16 %465, %470
  br i1 %471, label %474, label %472

472:                                              ; preds = %466
  %473 = add nuw nsw i64 %.08131159.7, 1
  %exitcond.not.7 = icmp eq i64 %473, %299
  br i1 %exitcond.not.7, label %._crit_edge, label %466, !llvm.loop !28

474:                                              ; preds = %466
  %475 = add nsw i32 %test_count.promoted11751179, 9
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  br label %.loopexit1157

.loopexit1157:                                    ; preds = %376, %390, %404, %418, %432, %446, %460, %474, %303
  %test_count.promoted1174 = phi i32 [ %test_count.promoted11751179, %303 ], [ %377, %376 ], [ %391, %390 ], [ %405, %404 ], [ %419, %418 ], [ %433, %432 ], [ %447, %446 ], [ %461, %460 ], [ %475, %474 ]
  %476 = getelementptr inbounds i8, ptr %306, i64 8
  %477 = load ptr, ptr %476, align 8, !tbaa !31
  %478 = load i16, ptr %477, align 8, !tbaa !32
  %479 = zext i16 %478 to i64
  %.not1238 = icmp eq i16 %478, 0
  br i1 %.not1238, label %.critedge1148, label %.lr.ph1165

.lr.ph1165:                                       ; preds = %.loopexit1157
  %480 = getelementptr inbounds i8, ptr %477, i64 8
  %481 = load ptr, ptr %480, align 8, !tbaa !34
  br label %484

482:                                              ; preds = %484
  %483 = add nuw nsw i64 %.08151163, 1
  %exitcond1286.not = icmp eq i64 %483, %479
  br i1 %exitcond1286.not, label %.critedge1148, label %484, !llvm.loop !35

484:                                              ; preds = %.lr.ph1165, %482
  %.08151163 = phi i64 [ 0, %.lr.ph1165 ], [ %483, %482 ]
  %485 = getelementptr inbounds ptr, ptr %481, i64 %.08151163
  %486 = load ptr, ptr %485, align 8, !tbaa !9
  %487 = getelementptr inbounds i8, ptr %486, i64 100
  %488 = load i8, ptr %487, align 4, !tbaa !36
  %489 = icmp eq i8 %488, 34
  br i1 %489, label %.preheader1155, label %482

.preheader1155:                                   ; preds = %484
  %490 = getelementptr inbounds i8, ptr %306, i64 24
  %491 = load ptr, ptr %490, align 8, !tbaa !38
  %492 = load i8, ptr %491, align 8, !tbaa !39
  %493 = zext i8 %492 to i64
  %.not1239 = icmp eq i8 %492, 0
  br i1 %.not1239, label %._crit_edge1170.thread, label %.lr.ph1169

._crit_edge1170.thread:                           ; preds = %.preheader1155
  %494 = add nsw i32 %test_count.promoted1174, 1
  store i32 %494, ptr @test_count, align 4, !tbaa !5
  br label %.loopexit1306

.lr.ph1169:                                       ; preds = %.preheader1155
  %495 = getelementptr inbounds i8, ptr %491, i64 8
  %496 = load ptr, ptr %495, align 8, !tbaa !41
  %xtraiter = and i64 %493, 1
  %497 = icmp eq i8 %492, 1
  br i1 %497, label %._crit_edge1170.unr-lcssa, label %.lr.ph1169.new

.lr.ph1169.new:                                   ; preds = %.lr.ph1169
  %unroll_iter = and i64 %493, 254
  br label %511

._crit_edge1170.unr-lcssa:                        ; preds = %511, %.lr.ph1169
  %spec.select.lcssa.ph = phi i1 [ poison, %.lr.ph1169 ], [ %spec.select.1, %511 ]
  %.1818.lcssa.ph = phi i1 [ poison, %.lr.ph1169 ], [ %.1818.1, %511 ]
  %.08161168.unr = phi i1 [ false, %.lr.ph1169 ], [ %spec.select.1, %511 ]
  %.08171167.unr = phi i1 [ false, %.lr.ph1169 ], [ %.1818.1, %511 ]
  %.08191166.unr = phi i64 [ 0, %.lr.ph1169 ], [ %539, %511 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1170, label %._crit_edge1170.epilog-lcssa

._crit_edge1170.epilog-lcssa:                     ; preds = %._crit_edge1170.unr-lcssa
  %498 = getelementptr inbounds ptr, ptr %496, i64 %.08191166.unr
  %499 = load ptr, ptr %498, align 8, !tbaa !9
  %500 = getelementptr inbounds i8, ptr %499, i64 24
  %501 = load i8, ptr %500, align 8, !tbaa !42
  %502 = getelementptr inbounds i8, ptr %499, i64 25
  %503 = load i8, ptr %502, align 1, !tbaa !44
  %504 = getelementptr inbounds i8, ptr %499, i64 20
  %505 = load i32, ptr %504, align 4, !tbaa !45
  %506 = icmp ult i8 %501, 35
  %507 = add i8 %503, -34
  %508 = icmp ult i8 %507, -33
  %or.cond.epil = select i1 %506, i1 %508, i1 false
  %spec.select.epil = select i1 %or.cond.epil, i1 true, i1 %.08161168.unr
  %509 = and i32 %505, -2
  %or.cond3.epil = icmp eq i32 %509, 224
  %.1818.epil = select i1 %or.cond3.epil, i1 true, i1 %.08171167.unr
  br label %._crit_edge1170

._crit_edge1170:                                  ; preds = %._crit_edge1170.unr-lcssa, %._crit_edge1170.epilog-lcssa
  %spec.select.lcssa = phi i1 [ %spec.select.lcssa.ph, %._crit_edge1170.unr-lcssa ], [ %spec.select.epil, %._crit_edge1170.epilog-lcssa ]
  %.1818.lcssa = phi i1 [ %.1818.lcssa.ph, %._crit_edge1170.unr-lcssa ], [ %.1818.epil, %._crit_edge1170.epilog-lcssa ]
  %510 = add nsw i32 %test_count.promoted1174, 1
  store i32 %510, ptr @test_count, align 4, !tbaa !5
  br i1 %spec.select.lcssa, label %563, label %.loopexit1306

511:                                              ; preds = %511, %.lr.ph1169.new
  %.08161168 = phi i1 [ false, %.lr.ph1169.new ], [ %spec.select.1, %511 ]
  %.08171167 = phi i1 [ false, %.lr.ph1169.new ], [ %.1818.1, %511 ]
  %.08191166 = phi i64 [ 0, %.lr.ph1169.new ], [ %539, %511 ]
  %niter = phi i64 [ 0, %.lr.ph1169.new ], [ %niter.next.1, %511 ]
  %512 = getelementptr inbounds ptr, ptr %496, i64 %.08191166
  %513 = load ptr, ptr %512, align 8, !tbaa !9
  %514 = getelementptr inbounds i8, ptr %513, i64 24
  %515 = load i8, ptr %514, align 8, !tbaa !42
  %516 = getelementptr inbounds i8, ptr %513, i64 25
  %517 = load i8, ptr %516, align 1, !tbaa !44
  %518 = getelementptr inbounds i8, ptr %513, i64 20
  %519 = load i32, ptr %518, align 4, !tbaa !45
  %520 = icmp ult i8 %515, 35
  %521 = add i8 %517, -34
  %522 = icmp ult i8 %521, -33
  %or.cond = select i1 %520, i1 %522, i1 false
  %523 = and i32 %519, -2
  %or.cond3 = icmp eq i32 %523, 224
  %524 = or disjoint i64 %.08191166, 1
  %525 = getelementptr inbounds ptr, ptr %496, i64 %524
  %526 = load ptr, ptr %525, align 8, !tbaa !9
  %527 = getelementptr inbounds i8, ptr %526, i64 24
  %528 = load i8, ptr %527, align 8, !tbaa !42
  %529 = getelementptr inbounds i8, ptr %526, i64 25
  %530 = load i8, ptr %529, align 1, !tbaa !44
  %531 = getelementptr inbounds i8, ptr %526, i64 20
  %532 = load i32, ptr %531, align 4, !tbaa !45
  %533 = icmp ult i8 %528, 35
  %534 = add i8 %530, -34
  %535 = icmp ult i8 %534, -33
  %or.cond.1 = select i1 %533, i1 %535, i1 false
  %536 = select i1 %or.cond.1, i1 true, i1 %or.cond
  %spec.select.1 = select i1 %536, i1 true, i1 %.08161168
  %537 = and i32 %532, -2
  %or.cond3.1 = icmp eq i32 %537, 224
  %538 = select i1 %or.cond3.1, i1 true, i1 %or.cond3
  %.1818.1 = select i1 %538, i1 true, i1 %.08171167
  %539 = add nuw nsw i64 %.08191166, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge1170.unr-lcssa, label %511, !llvm.loop !46

.loopexit1306:                                    ; preds = %._crit_edge1170, %._crit_edge1170.thread
  %540 = tail call ptr @__errno_location() #12
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = call i32 @s2n_print_stacktrace(ptr noundef %542) #11
  %544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %545 = trunc nuw i8 %544 to i1
  br i1 %545, label %546, label %550

546:                                              ; preds = %.loopexit1306
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @fileno(ptr noundef %547) #11
  %549 = call i32 @isatty(i32 noundef %548) #11
  %.not1135 = icmp eq i32 %549, 0
  br i1 %.not1135, label %550, label %551

550:                                              ; preds = %546, %.loopexit1306
  br label %551

551:                                              ; preds = %546, %550
  %.str.5.sink1480 = phi ptr [ @.str.5, %550 ], [ @.str.2, %546 ]
  store i32 %541, ptr %540, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror(i32 noundef %555, ptr noundef nonnull @.str.4) #11
  %557 = load i32, ptr %554, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror_debug(i32 noundef %557, ptr noundef nonnull @.str.4) #11
  %559 = load i32, ptr %540, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #11
  %561 = load i32, ptr %540, align 4, !tbaa !5
  %562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %552, ptr noundef nonnull %.str.5.sink1480, i32 noundef %553, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %556, ptr noundef %558, ptr noundef %560, i32 noundef %561) #13
  call void @exit(i32 noundef 1) #14
  unreachable

563:                                              ; preds = %._crit_edge1170
  %564 = add nsw i32 %test_count.promoted1174, 2
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  br i1 %.1818.lcssa, label %.critedge1148, label %565

565:                                              ; preds = %563
  %566 = tail call ptr @__errno_location() #12
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = call i32 @s2n_print_stacktrace(ptr noundef %568) #11
  %570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %571 = trunc nuw i8 %570 to i1
  br i1 %571, label %572, label %576

572:                                              ; preds = %565
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @fileno(ptr noundef %573) #11
  %575 = call i32 @isatty(i32 noundef %574) #11
  %.not1136 = icmp eq i32 %575, 0
  br i1 %.not1136, label %576, label %577

576:                                              ; preds = %572, %565
  br label %577

577:                                              ; preds = %572, %576
  %.str.5.sink1491 = phi ptr [ @.str.5, %576 ], [ @.str.2, %572 ]
  store i32 %567, ptr %566, align 4, !tbaa !5
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror(i32 noundef %581, ptr noundef nonnull @.str.4) #11
  %583 = load i32, ptr %580, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef nonnull @.str.4) #11
  %585 = load i32, ptr %566, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #11
  %587 = load i32, ptr %566, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %578, ptr noundef nonnull %.str.5.sink1491, i32 noundef %579, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %582, ptr noundef %584, ptr noundef %586, i32 noundef %587) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.critedge1148:                                    ; preds = %482, %.loopexit1157, %563
  %test_count.promoted1173 = phi i32 [ %564, %563 ], [ %test_count.promoted1174, %.loopexit1157 ], [ %test_count.promoted1174, %482 ]
  %589 = add i64 %.01180, 1
  %590 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %589
  %591 = load ptr, ptr %590, align 8, !tbaa !15
  %.not = icmp eq ptr %591, null
  br i1 %.not, label %._crit_edge1183, label %303, !llvm.loop !47

._crit_edge1187:                                  ; preds = %681, %._crit_edge1183
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = add nsw i32 %592, 1
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.33, ptr noundef nonnull %8) #11
  %595 = icmp eq i32 %594, -1
  br i1 %595, label %708, label %684

596:                                              ; preds = %.lr.ph1186, %681
  %.08201184 = phi i64 [ 0, %.lr.ph1186 ], [ %683, %681 ]
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr @test_count, align 4, !tbaa !5
  %599 = getelementptr inbounds [0 x ptr], ptr @deprecated_security_policies, i64 0, i64 %.08201184
  %600 = load ptr, ptr %599, align 8, !tbaa !9
  %601 = call i32 @s2n_find_security_policy_from_version(ptr noundef %600, ptr noundef nonnull %8) #11
  %602 = icmp eq i32 %601, -1
  br i1 %602, label %626, label %603

603:                                              ; preds = %596
  %604 = tail call ptr @__errno_location() #12
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = call i32 @s2n_print_stacktrace(ptr noundef %606) #11
  %608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %609 = trunc nuw i8 %608 to i1
  br i1 %609, label %610, label %614

610:                                              ; preds = %603
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = call i32 @fileno(ptr noundef %611) #11
  %613 = call i32 @isatty(i32 noundef %612) #11
  %.not1130 = icmp eq i32 %613, 0
  br i1 %.not1130, label %614, label %615

614:                                              ; preds = %610, %603
  br label %615

615:                                              ; preds = %610, %614
  %.str.5.sink1502 = phi ptr [ @.str.5, %614 ], [ @.str.2, %610 ]
  store i32 %605, ptr %604, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = load i32, ptr %302, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror(i32 noundef %618, ptr noundef nonnull @.str.4) #11
  %620 = load i32, ptr %302, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror_debug(i32 noundef %620, ptr noundef nonnull @.str.4) #11
  %622 = load i32, ptr %604, align 4, !tbaa !5
  %623 = call ptr @strerror(i32 noundef %622) #11
  %624 = load i32, ptr %604, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %616, ptr noundef nonnull %.str.5.sink1502, i32 noundef %617, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %619, ptr noundef %621, ptr noundef %623, i32 noundef %624) #13
  call void @exit(i32 noundef 1) #14
  unreachable

626:                                              ; preds = %596
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr @test_count, align 4, !tbaa !5
  %629 = load i32, ptr %302, align 4, !tbaa !5
  %630 = icmp eq i32 %629, 469762100
  br i1 %630, label %654, label %631

631:                                              ; preds = %626
  %632 = tail call ptr @__errno_location() #12
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = call i32 @s2n_print_stacktrace(ptr noundef %634) #11
  %636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %637 = trunc nuw i8 %636 to i1
  br i1 %637, label %638, label %642

638:                                              ; preds = %631
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @fileno(ptr noundef %639) #11
  %641 = call i32 @isatty(i32 noundef %640) #11
  %.not1131 = icmp eq i32 %641, 0
  br i1 %.not1131, label %642, label %643

642:                                              ; preds = %638, %631
  br label %643

643:                                              ; preds = %638, %642
  %.str.5.sink1511 = phi ptr [ @.str.5, %642 ], [ @.str.2, %638 ]
  store i32 %633, ptr %632, align 4, !tbaa !5
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = load i32, ptr %302, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror(i32 noundef %646, ptr noundef nonnull @.str.4) #11
  %648 = load i32, ptr %302, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror_debug(i32 noundef %648, ptr noundef nonnull @.str.4) #11
  %650 = load i32, ptr %632, align 4, !tbaa !5
  %651 = call ptr @strerror(i32 noundef %650) #11
  %652 = load i32, ptr %632, align 4, !tbaa !5
  %653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef nonnull %.str.5.sink1511, i32 noundef %645, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %647, ptr noundef %649, ptr noundef %651, i32 noundef %652) #13
  call void @exit(i32 noundef 1) #14
  unreachable

654:                                              ; preds = %626
  %655 = add nsw i32 %627, 2
  store i32 %655, ptr @test_count, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror_debug(i32 noundef 469762100, ptr noundef nonnull @.str.4) #11
  %657 = icmp eq ptr %656, null
  br i1 %657, label %658, label %681

658:                                              ; preds = %654
  %659 = tail call ptr @__errno_location() #12
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @s2n_print_stacktrace(ptr noundef %661) #11
  %663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %664 = trunc nuw i8 %663 to i1
  br i1 %664, label %665, label %669

665:                                              ; preds = %658
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = call i32 @fileno(ptr noundef %666) #11
  %668 = call i32 @isatty(i32 noundef %667) #11
  %.not1132 = icmp eq i32 %668, 0
  br i1 %.not1132, label %669, label %670

669:                                              ; preds = %665, %658
  br label %670

670:                                              ; preds = %665, %669
  %.str.5.sink1520 = phi ptr [ @.str.5, %669 ], [ @.str.2, %665 ]
  store i32 %660, ptr %659, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = load i32, ptr %302, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror(i32 noundef %673, ptr noundef nonnull @.str.4) #11
  %675 = load i32, ptr %302, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror_debug(i32 noundef %675, ptr noundef nonnull @.str.4) #11
  %677 = load i32, ptr %659, align 4, !tbaa !5
  %678 = call ptr @strerror(i32 noundef %677) #11
  %679 = load i32, ptr %659, align 4, !tbaa !5
  %680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef nonnull %.str.5.sink1520, i32 noundef %672, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %674, ptr noundef %676, ptr noundef %678, i32 noundef %679) #13
  call void @exit(i32 noundef 1) #14
  unreachable

681:                                              ; preds = %654
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %682 = tail call ptr @__errno_location() #12
  store i32 0, ptr %682, align 4, !tbaa !5
  %683 = add nuw i64 %.08201184, 1
  %exitcond1288.not = icmp eq i64 %683, %301
  br i1 %exitcond1288.not, label %._crit_edge1187, label %596, !llvm.loop !48

684:                                              ; preds = %._crit_edge1187
  %685 = tail call ptr @__errno_location() #12
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @s2n_print_stacktrace(ptr noundef %687) #11
  %689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %690 = trunc nuw i8 %689 to i1
  br i1 %690, label %691, label %695

691:                                              ; preds = %684
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #11
  %694 = call i32 @isatty(i32 noundef %693) #11
  %.not843 = icmp eq i32 %694, 0
  br i1 %.not843, label %695, label %696

695:                                              ; preds = %691, %684
  br label %696

696:                                              ; preds = %691, %695
  %.str.5.sink1529 = phi ptr [ @.str.5, %695 ], [ @.str.2, %691 ]
  store i32 %686, ptr %685, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror(i32 noundef %700, ptr noundef nonnull @.str.4) #11
  %702 = load i32, ptr %699, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror_debug(i32 noundef %702, ptr noundef nonnull @.str.4) #11
  %704 = load i32, ptr %685, align 4, !tbaa !5
  %705 = call ptr @strerror(i32 noundef %704) #11
  %706 = load i32, ptr %685, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.5.sink1529, i32 noundef %698, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %701, ptr noundef %703, ptr noundef %705, i32 noundef %706) #13
  call void @exit(i32 noundef 1) #14
  unreachable

708:                                              ; preds = %._crit_edge1187
  %709 = load i32, ptr @test_count, align 4, !tbaa !5
  %710 = add nsw i32 %709, 1
  store i32 %710, ptr @test_count, align 4, !tbaa !5
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = icmp eq i32 %712, 469762100
  br i1 %713, label %737, label %714

714:                                              ; preds = %708
  %715 = tail call ptr @__errno_location() #12
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %718 = call i32 @s2n_print_stacktrace(ptr noundef %717) #11
  %719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %720 = trunc nuw i8 %719 to i1
  br i1 %720, label %721, label %725

721:                                              ; preds = %714
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @fileno(ptr noundef %722) #11
  %724 = call i32 @isatty(i32 noundef %723) #11
  %.not844 = icmp eq i32 %724, 0
  br i1 %.not844, label %725, label %726

725:                                              ; preds = %721, %714
  br label %726

726:                                              ; preds = %721, %725
  %.str.5.sink1540 = phi ptr [ @.str.5, %725 ], [ @.str.2, %721 ]
  store i32 %716, ptr %715, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = load i32, ptr %711, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef nonnull @.str.4) #11
  %731 = load i32, ptr %711, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef nonnull @.str.4) #11
  %733 = load i32, ptr %715, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #11
  %735 = load i32, ptr %715, align 4, !tbaa !5
  %736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef nonnull %.str.5.sink1540, i32 noundef %728, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %730, ptr noundef %732, ptr noundef %734, i32 noundef %735) #13
  call void @exit(i32 noundef 1) #14
  unreachable

737:                                              ; preds = %708
  %738 = add nsw i32 %709, 2
  store i32 %738, ptr @test_count, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef 469762100, ptr noundef nonnull @.str.4) #11
  %740 = icmp eq ptr %739, null
  br i1 %740, label %741, label %764

741:                                              ; preds = %737
  %742 = tail call ptr @__errno_location() #12
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = call i32 @s2n_print_stacktrace(ptr noundef %744) #11
  %746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %747 = trunc nuw i8 %746 to i1
  br i1 %747, label %748, label %752

748:                                              ; preds = %741
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @fileno(ptr noundef %749) #11
  %751 = call i32 @isatty(i32 noundef %750) #11
  %.not1129 = icmp eq i32 %751, 0
  br i1 %.not1129, label %752, label %753

752:                                              ; preds = %748, %741
  br label %753

753:                                              ; preds = %748, %752
  %.str.5.sink1549 = phi ptr [ @.str.5, %752 ], [ @.str.2, %748 ]
  store i32 %743, ptr %742, align 4, !tbaa !5
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = load i32, ptr @test_count, align 4, !tbaa !5
  %756 = load i32, ptr %711, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror(i32 noundef %756, ptr noundef nonnull @.str.4) #11
  %758 = load i32, ptr %711, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror_debug(i32 noundef %758, ptr noundef nonnull @.str.4) #11
  %760 = load i32, ptr %742, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #11
  %762 = load i32, ptr %742, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %754, ptr noundef nonnull %.str.5.sink1549, i32 noundef %755, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %757, ptr noundef %759, ptr noundef %761, i32 noundef %762) #13
  call void @exit(i32 noundef 1) #14
  unreachable

764:                                              ; preds = %737
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %765 = tail call ptr @__errno_location() #12
  store i32 0, ptr %765, align 4, !tbaa !5
  %766 = load i32, ptr @test_count, align 4, !tbaa !5
  %767 = add nsw i32 %766, 1
  store i32 %767, ptr @test_count, align 4, !tbaa !5
  %768 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.35, ptr noundef nonnull %8) #11
  %769 = icmp eq i32 %768, -1
  br i1 %769, label %792, label %770

770:                                              ; preds = %764
  %771 = load i32, ptr %765, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 @s2n_print_stacktrace(ptr noundef %772) #11
  %774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %775 = trunc nuw i8 %774 to i1
  br i1 %775, label %776, label %780

776:                                              ; preds = %770
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @fileno(ptr noundef %777) #11
  %779 = call i32 @isatty(i32 noundef %778) #11
  %.not845 = icmp eq i32 %779, 0
  br i1 %.not845, label %780, label %781

780:                                              ; preds = %776, %770
  br label %781

781:                                              ; preds = %776, %780
  %.str.5.sink1558 = phi ptr [ @.str.5, %780 ], [ @.str.2, %776 ]
  store i32 %771, ptr %765, align 4, !tbaa !5
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = load i32, ptr @test_count, align 4, !tbaa !5
  %784 = load i32, ptr %711, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror(i32 noundef %784, ptr noundef nonnull @.str.4) #11
  %786 = load i32, ptr %711, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror_debug(i32 noundef %786, ptr noundef nonnull @.str.4) #11
  %788 = load i32, ptr %765, align 4, !tbaa !5
  %789 = call ptr @strerror(i32 noundef %788) #11
  %790 = load i32, ptr %765, align 4, !tbaa !5
  %791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %782, ptr noundef nonnull %.str.5.sink1558, i32 noundef %783, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %785, ptr noundef %787, ptr noundef %789, i32 noundef %790) #13
  call void @exit(i32 noundef 1) #14
  unreachable

792:                                              ; preds = %764
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = add nsw i32 %793, 1
  store i32 %794, ptr @test_count, align 4, !tbaa !5
  %795 = load i32, ptr %711, align 4, !tbaa !5
  %796 = icmp eq i32 %795, 469762100
  br i1 %796, label %819, label %797

797:                                              ; preds = %792
  %798 = load i32, ptr %765, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = call i32 @s2n_print_stacktrace(ptr noundef %799) #11
  %801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %802 = trunc nuw i8 %801 to i1
  br i1 %802, label %803, label %807

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

807:                                              ; preds = %803, %797
  br label %808

808:                                              ; preds = %803, %807
  %.str.5.sink1567 = phi ptr [ @.str.5, %807 ], [ @.str.2, %803 ]
  store i32 %798, ptr %765, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = load i32, ptr %711, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror(i32 noundef %811, ptr noundef nonnull @.str.4) #11
  %813 = load i32, ptr %711, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef nonnull @.str.4) #11
  %815 = load i32, ptr %765, align 4, !tbaa !5
  %816 = call ptr @strerror(i32 noundef %815) #11
  %817 = load i32, ptr %765, align 4, !tbaa !5
  %818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef nonnull %.str.5.sink1567, i32 noundef %810, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %812, ptr noundef %814, ptr noundef %816, i32 noundef %817) #13
  call void @exit(i32 noundef 1) #14
  unreachable

819:                                              ; preds = %792
  %820 = add nsw i32 %793, 2
  store i32 %820, ptr @test_count, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef 469762100, ptr noundef nonnull @.str.4) #11
  %822 = icmp eq ptr %821, null
  br i1 %822, label %823, label %845

823:                                              ; preds = %819
  %824 = load i32, ptr %765, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @s2n_print_stacktrace(ptr noundef %825) #11
  %827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %828 = trunc nuw i8 %827 to i1
  br i1 %828, label %829, label %833

829:                                              ; preds = %823
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @fileno(ptr noundef %830) #11
  %832 = call i32 @isatty(i32 noundef %831) #11
  %.not1128 = icmp eq i32 %832, 0
  br i1 %.not1128, label %833, label %834

833:                                              ; preds = %829, %823
  br label %834

834:                                              ; preds = %829, %833
  %.str.5.sink1576 = phi ptr [ @.str.5, %833 ], [ @.str.2, %829 ]
  store i32 %824, ptr %765, align 4, !tbaa !5
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = load i32, ptr %711, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror(i32 noundef %837, ptr noundef nonnull @.str.4) #11
  %839 = load i32, ptr %711, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror_debug(i32 noundef %839, ptr noundef nonnull @.str.4) #11
  %841 = load i32, ptr %765, align 4, !tbaa !5
  %842 = call ptr @strerror(i32 noundef %841) #11
  %843 = load i32, ptr %765, align 4, !tbaa !5
  %844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %835, ptr noundef nonnull %.str.5.sink1576, i32 noundef %836, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %838, ptr noundef %840, ptr noundef %842, i32 noundef %843) #13
  call void @exit(i32 noundef 1) #14
  unreachable

845:                                              ; preds = %819
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = add nsw i32 %846, 1
  store i32 %847, ptr @test_count, align 4, !tbaa !5
  %848 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.37, ptr noundef nonnull %8) #11
  %849 = icmp eq i32 %848, -1
  br i1 %849, label %850, label %872

850:                                              ; preds = %845
  %851 = load i32, ptr %765, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 @s2n_print_stacktrace(ptr noundef %852) #11
  %854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %855 = trunc nuw i8 %854 to i1
  br i1 %855, label %856, label %860

856:                                              ; preds = %850
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @fileno(ptr noundef %857) #11
  %859 = call i32 @isatty(i32 noundef %858) #11
  %.not1127 = icmp eq i32 %859, 0
  br i1 %.not1127, label %860, label %861

860:                                              ; preds = %856, %850
  br label %861

861:                                              ; preds = %856, %860
  %.str.5.sink1585 = phi ptr [ @.str.5, %860 ], [ @.str.2, %856 ]
  store i32 %851, ptr %765, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = load i32, ptr %711, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef nonnull @.str.4) #11
  %866 = load i32, ptr %711, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror_debug(i32 noundef %866, ptr noundef nonnull @.str.4) #11
  %868 = load i32, ptr %765, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #11
  %870 = load i32, ptr %765, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %862, ptr noundef nonnull %.str.5.sink1585, i32 noundef %863, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %865, ptr noundef %867, ptr noundef %869, i32 noundef %870) #13
  call void @exit(i32 noundef 1) #14
  unreachable

872:                                              ; preds = %845
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = load ptr, ptr %8, align 8, !tbaa !9
  %876 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %875) #11
  br i1 %876, label %899, label %877

877:                                              ; preds = %872
  %878 = load i32, ptr %765, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = call i32 @s2n_print_stacktrace(ptr noundef %879) #11
  %881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %882 = trunc nuw i8 %881 to i1
  br i1 %882, label %883, label %887

883:                                              ; preds = %877
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @fileno(ptr noundef %884) #11
  %886 = call i32 @isatty(i32 noundef %885) #11
  %.not847 = icmp eq i32 %886, 0
  br i1 %.not847, label %887, label %888

887:                                              ; preds = %883, %877
  br label %888

888:                                              ; preds = %883, %887
  %.str.5.sink1594 = phi ptr [ @.str.5, %887 ], [ @.str.2, %883 ]
  store i32 %878, ptr %765, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = load i32, ptr %711, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror(i32 noundef %891, ptr noundef nonnull @.str.4) #11
  %893 = load i32, ptr %711, align 4, !tbaa !5
  %894 = call ptr @s2n_strerror_debug(i32 noundef %893, ptr noundef nonnull @.str.4) #11
  %895 = load i32, ptr %765, align 4, !tbaa !5
  %896 = call ptr @strerror(i32 noundef %895) #11
  %897 = load i32, ptr %765, align 4, !tbaa !5
  %898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %889, ptr noundef nonnull %.str.5.sink1594, i32 noundef %890, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %892, ptr noundef %894, ptr noundef %896, i32 noundef %897) #13
  call void @exit(i32 noundef 1) #14
  unreachable

899:                                              ; preds = %872
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = load ptr, ptr %8, align 8, !tbaa !9
  %903 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %902) #11
  br i1 %903, label %904, label %926

904:                                              ; preds = %899
  %905 = load i32, ptr %765, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @s2n_print_stacktrace(ptr noundef %906) #11
  %908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %909 = trunc nuw i8 %908 to i1
  br i1 %909, label %910, label %914

910:                                              ; preds = %904
  %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
  %.not1126 = icmp eq i32 %913, 0
  br i1 %.not1126, label %914, label %915

914:                                              ; preds = %910, %904
  br label %915

915:                                              ; preds = %910, %914
  %.str.5.sink1603 = phi ptr [ @.str.5, %914 ], [ @.str.2, %910 ]
  store i32 %905, ptr %765, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = load i32, ptr %711, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror(i32 noundef %918, ptr noundef nonnull @.str.4) #11
  %920 = load i32, ptr %711, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror_debug(i32 noundef %920, ptr noundef nonnull @.str.4) #11
  %922 = load i32, ptr %765, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #11
  %924 = load i32, ptr %765, align 4, !tbaa !5
  %925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %916, ptr noundef nonnull %.str.5.sink1603, i32 noundef %917, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %919, ptr noundef %921, ptr noundef %923, i32 noundef %924) #13
  call void @exit(i32 noundef 1) #14
  unreachable

926:                                              ; preds = %899
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr @test_count, align 4, !tbaa !5
  %929 = load ptr, ptr %8, align 8, !tbaa !9
  %930 = getelementptr inbounds i8, ptr %929, i64 16
  %931 = load ptr, ptr %930, align 8, !tbaa !20
  %932 = getelementptr inbounds i8, ptr %931, i64 8
  %933 = load ptr, ptr %932, align 8, !tbaa !49
  %934 = icmp eq ptr %933, null
  br i1 %934, label %957, label %935

935:                                              ; preds = %926
  %936 = load i32, ptr %765, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = call i32 @s2n_print_stacktrace(ptr noundef %937) #11
  %939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %940 = trunc nuw i8 %939 to i1
  br i1 %940, label %941, label %945

941:                                              ; preds = %935
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = call i32 @fileno(ptr noundef %942) #11
  %944 = call i32 @isatty(i32 noundef %943) #11
  %.not848 = icmp eq i32 %944, 0
  br i1 %.not848, label %945, label %946

945:                                              ; preds = %941, %935
  br label %946

946:                                              ; preds = %941, %945
  %.str.5.sink1612 = phi ptr [ @.str.5, %945 ], [ @.str.2, %941 ]
  store i32 %936, ptr %765, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = load i32, ptr %711, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror(i32 noundef %949, ptr noundef nonnull @.str.4) #11
  %951 = load i32, ptr %711, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror_debug(i32 noundef %951, ptr noundef nonnull @.str.4) #11
  %953 = load i32, ptr %765, align 4, !tbaa !5
  %954 = call ptr @strerror(i32 noundef %953) #11
  %955 = load i32, ptr %765, align 4, !tbaa !5
  %956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull %.str.5.sink1612, i32 noundef %948, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %950, ptr noundef %952, ptr noundef %954, i32 noundef %955) #13
  call void @exit(i32 noundef 1) #14
  unreachable

957:                                              ; preds = %926
  %958 = add nsw i32 %927, 2
  store i32 %958, ptr @test_count, align 4, !tbaa !5
  %959 = load i8, ptr %931, align 8, !tbaa !50
  %960 = icmp eq i8 %959, 0
  br i1 %960, label %983, label %961

961:                                              ; preds = %957
  %962 = load i32, ptr %765, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @s2n_print_stacktrace(ptr noundef %963) #11
  %965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %966 = trunc nuw i8 %965 to i1
  br i1 %966, label %967, label %971

967:                                              ; preds = %961
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @fileno(ptr noundef %968) #11
  %970 = call i32 @isatty(i32 noundef %969) #11
  %.not849 = icmp eq i32 %970, 0
  br i1 %.not849, label %971, label %972

971:                                              ; preds = %967, %961
  br label %972

972:                                              ; preds = %967, %971
  %.str.5.sink1621 = phi ptr [ @.str.5, %971 ], [ @.str.2, %967 ]
  store i32 %962, ptr %765, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = load i32, ptr %711, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror(i32 noundef %975, ptr noundef nonnull @.str.4) #11
  %977 = load i32, ptr %711, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror_debug(i32 noundef %977, ptr noundef nonnull @.str.4) #11
  %979 = load i32, ptr %765, align 4, !tbaa !5
  %980 = call ptr @strerror(i32 noundef %979) #11
  %981 = load i32, ptr %765, align 4, !tbaa !5
  %982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef nonnull %.str.5.sink1621, i32 noundef %974, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %976, ptr noundef %978, ptr noundef %980, i32 noundef %981) #13
  call void @exit(i32 noundef 1) #14
  unreachable

983:                                              ; preds = %957
  %984 = add nsw i32 %927, 3
  store i32 %984, ptr @test_count, align 4, !tbaa !5
  %985 = getelementptr inbounds i8, ptr %931, i64 24
  %986 = load ptr, ptr %985, align 8, !tbaa !24
  %987 = icmp eq ptr %986, null
  br i1 %987, label %1010, label %988

988:                                              ; preds = %983
  %989 = load i32, ptr %765, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @s2n_print_stacktrace(ptr noundef %990) #11
  %992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %993 = trunc nuw i8 %992 to i1
  br i1 %993, label %994, label %998

994:                                              ; preds = %988
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @fileno(ptr noundef %995) #11
  %997 = call i32 @isatty(i32 noundef %996) #11
  %.not850 = icmp eq i32 %997, 0
  br i1 %.not850, label %998, label %999

998:                                              ; preds = %994, %988
  br label %999

999:                                              ; preds = %994, %998
  %.str.5.sink1630 = phi ptr [ @.str.5, %998 ], [ @.str.2, %994 ]
  store i32 %989, ptr %765, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = load i32, ptr %711, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef nonnull @.str.4) #11
  %1004 = load i32, ptr %711, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef nonnull @.str.4) #11
  %1006 = load i32, ptr %765, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #11
  %1008 = load i32, ptr %765, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull %.str.5.sink1630, i32 noundef %1001, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1003, ptr noundef %1005, ptr noundef %1007, i32 noundef %1008) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1010:                                             ; preds = %983
  %1011 = add nsw i32 %927, 4
  store i32 %1011, ptr @test_count, align 4, !tbaa !5
  %1012 = getelementptr inbounds i8, ptr %931, i64 16
  %1013 = load i8, ptr %1012, align 8, !tbaa !22
  %1014 = icmp eq i8 %1013, 0
  br i1 %1014, label %1037, label %1015

1015:                                             ; preds = %1010
  %1016 = load i32, ptr %765, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #11
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc nuw i8 %1019 to i1
  br i1 %1020, label %1021, label %1025

1021:                                             ; preds = %1015
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = call i32 @fileno(ptr noundef %1022) #11
  %1024 = call i32 @isatty(i32 noundef %1023) #11
  %.not851 = icmp eq i32 %1024, 0
  br i1 %.not851, label %1025, label %1026

1025:                                             ; preds = %1021, %1015
  br label %1026

1026:                                             ; preds = %1021, %1025
  %.str.5.sink1639 = phi ptr [ @.str.5, %1025 ], [ @.str.2, %1021 ]
  store i32 %1016, ptr %765, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = load i32, ptr %711, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef nonnull @.str.4) #11
  %1031 = load i32, ptr %711, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef nonnull @.str.4) #11
  %1033 = load i32, ptr %765, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #11
  %1035 = load i32, ptr %765, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.5.sink1639, i32 noundef %1028, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, i32 noundef %1035) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1037:                                             ; preds = %1010
  %1038 = add nsw i32 %927, 5
  store i32 %1038, ptr @test_count, align 4, !tbaa !5
  %1039 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef nonnull %929) #11
  br i1 %1039, label %1040, label %1062

1040:                                             ; preds = %1037
  %1041 = load i32, ptr %765, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @s2n_print_stacktrace(ptr noundef %1042) #11
  %1044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1045 = trunc nuw i8 %1044 to i1
  br i1 %1045, label %1046, label %1050

1046:                                             ; preds = %1040
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = call i32 @fileno(ptr noundef %1047) #11
  %1049 = call i32 @isatty(i32 noundef %1048) #11
  %.not1125 = icmp eq i32 %1049, 0
  br i1 %.not1125, label %1050, label %1051

1050:                                             ; preds = %1046, %1040
  br label %1051

1051:                                             ; preds = %1046, %1050
  %.str.5.sink1648 = phi ptr [ @.str.5, %1050 ], [ @.str.2, %1046 ]
  store i32 %1041, ptr %765, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = load i32, ptr %711, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror(i32 noundef %1054, ptr noundef nonnull @.str.4) #11
  %1056 = load i32, ptr %711, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror_debug(i32 noundef %1056, ptr noundef nonnull @.str.4) #11
  %1058 = load i32, ptr %765, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #11
  %1060 = load i32, ptr %765, align 4, !tbaa !5
  %1061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1052, ptr noundef nonnull %.str.5.sink1648, i32 noundef %1053, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1055, ptr noundef %1057, ptr noundef %1059, i32 noundef %1060) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1062:                                             ; preds = %1037
  store ptr null, ptr %8, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = add nsw i32 %1063, 1
  store i32 %1064, ptr @test_count, align 4, !tbaa !5
  %1065 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.46, ptr noundef nonnull %8) #11
  %1066 = icmp eq i32 %1065, -1
  br i1 %1066, label %1067, label %1089

1067:                                             ; preds = %1062
  %1068 = load i32, ptr %765, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069) #11
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1067
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #11
  %1076 = call i32 @isatty(i32 noundef %1075) #11
  %.not1124 = icmp eq i32 %1076, 0
  br i1 %.not1124, label %1077, label %1078

1077:                                             ; preds = %1073, %1067
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.5.sink1657 = phi ptr [ @.str.5, %1077 ], [ @.str.2, %1073 ]
  store i32 %1068, ptr %765, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = load i32, ptr %711, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef nonnull @.str.4) #11
  %1083 = load i32, ptr %711, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef nonnull @.str.4) #11
  %1085 = load i32, ptr %765, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #11
  %1087 = load i32, ptr %765, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.5.sink1657, i32 noundef %1080, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1082, ptr noundef %1084, ptr noundef %1086, i32 noundef %1087) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1089:                                             ; preds = %1062
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = add nsw i32 %1090, 1
  store i32 %1091, ptr @test_count, align 4, !tbaa !5
  %1092 = load ptr, ptr %8, align 8, !tbaa !9
  %1093 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %1092) #11
  br i1 %1093, label %1116, label %1094

1094:                                             ; preds = %1089
  %1095 = load i32, ptr %765, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @s2n_print_stacktrace(ptr noundef %1096) #11
  %1098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1099 = trunc nuw i8 %1098 to i1
  br i1 %1099, label %1100, label %1104

1100:                                             ; preds = %1094
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #11
  %1103 = call i32 @isatty(i32 noundef %1102) #11
  %.not852 = icmp eq i32 %1103, 0
  br i1 %.not852, label %1104, label %1105

1104:                                             ; preds = %1100, %1094
  br label %1105

1105:                                             ; preds = %1100, %1104
  %.str.5.sink1666 = phi ptr [ @.str.5, %1104 ], [ @.str.2, %1100 ]
  store i32 %1095, ptr %765, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = load i32, ptr %711, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef nonnull @.str.4) #11
  %1110 = load i32, ptr %711, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror_debug(i32 noundef %1110, ptr noundef nonnull @.str.4) #11
  %1112 = load i32, ptr %765, align 4, !tbaa !5
  %1113 = call ptr @strerror(i32 noundef %1112) #11
  %1114 = load i32, ptr %765, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef nonnull %.str.5.sink1666, i32 noundef %1107, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1109, ptr noundef %1111, ptr noundef %1113, i32 noundef %1114) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1116:                                             ; preds = %1089
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = load ptr, ptr %8, align 8, !tbaa !9
  %1120 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %1119) #11
  br i1 %1120, label %1121, label %1143

1121:                                             ; preds = %1116
  %1122 = load i32, ptr %765, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = call i32 @s2n_print_stacktrace(ptr noundef %1123) #11
  %1125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1126 = trunc nuw i8 %1125 to i1
  br i1 %1126, label %1127, label %1131

1127:                                             ; preds = %1121
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = call i32 @fileno(ptr noundef %1128) #11
  %1130 = call i32 @isatty(i32 noundef %1129) #11
  %.not1123 = icmp eq i32 %1130, 0
  br i1 %.not1123, label %1131, label %1132

1131:                                             ; preds = %1127, %1121
  br label %1132

1132:                                             ; preds = %1127, %1131
  %.str.5.sink1675 = phi ptr [ @.str.5, %1131 ], [ @.str.2, %1127 ]
  store i32 %1122, ptr %765, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = load i32, ptr %711, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror(i32 noundef %1135, ptr noundef nonnull @.str.4) #11
  %1137 = load i32, ptr %711, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror_debug(i32 noundef %1137, ptr noundef nonnull @.str.4) #11
  %1139 = load i32, ptr %765, align 4, !tbaa !5
  %1140 = call ptr @strerror(i32 noundef %1139) #11
  %1141 = load i32, ptr %765, align 4, !tbaa !5
  %1142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef nonnull %.str.5.sink1675, i32 noundef %1134, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1136, ptr noundef %1138, ptr noundef %1140, i32 noundef %1141) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1143:                                             ; preds = %1116
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr @test_count, align 4, !tbaa !5
  %1146 = load ptr, ptr %8, align 8, !tbaa !9
  %1147 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %1146) #11
  br i1 %1147, label %1170, label %1148

1148:                                             ; preds = %1143
  %1149 = load i32, ptr %765, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @s2n_print_stacktrace(ptr noundef %1150) #11
  %1152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1153 = trunc nuw i8 %1152 to i1
  br i1 %1153, label %1154, label %1158

1154:                                             ; preds = %1148
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = call i32 @fileno(ptr noundef %1155) #11
  %1157 = call i32 @isatty(i32 noundef %1156) #11
  %.not853 = icmp eq i32 %1157, 0
  br i1 %.not853, label %1158, label %1159

1158:                                             ; preds = %1154, %1148
  br label %1159

1159:                                             ; preds = %1154, %1158
  %.str.5.sink1684 = phi ptr [ @.str.5, %1158 ], [ @.str.2, %1154 ]
  store i32 %1149, ptr %765, align 4, !tbaa !5
  %1160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1161 = load i32, ptr @test_count, align 4, !tbaa !5
  %1162 = load i32, ptr %711, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror(i32 noundef %1162, ptr noundef nonnull @.str.4) #11
  %1164 = load i32, ptr %711, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror_debug(i32 noundef %1164, ptr noundef nonnull @.str.4) #11
  %1166 = load i32, ptr %765, align 4, !tbaa !5
  %1167 = call ptr @strerror(i32 noundef %1166) #11
  %1168 = load i32, ptr %765, align 4, !tbaa !5
  %1169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1160, ptr noundef nonnull %.str.5.sink1684, i32 noundef %1161, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1163, ptr noundef %1165, ptr noundef %1167, i32 noundef %1168) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1170:                                             ; preds = %1143
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = add nsw i32 %1171, 1
  store i32 %1172, ptr @test_count, align 4, !tbaa !5
  %1173 = load ptr, ptr %8, align 8, !tbaa !9
  %1174 = getelementptr inbounds i8, ptr %1173, i64 16
  %1175 = load ptr, ptr %1174, align 8, !tbaa !20
  %1176 = getelementptr inbounds i8, ptr %1175, i64 8
  %1177 = load ptr, ptr %1176, align 8, !tbaa !49
  %1178 = icmp eq ptr %1177, null
  br i1 %1178, label %1201, label %1179

1179:                                             ; preds = %1170
  %1180 = load i32, ptr %765, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @s2n_print_stacktrace(ptr noundef %1181) #11
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc nuw i8 %1183 to i1
  br i1 %1184, label %1185, label %1189

1185:                                             ; preds = %1179
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #11
  %1188 = call i32 @isatty(i32 noundef %1187) #11
  %.not854 = icmp eq i32 %1188, 0
  br i1 %.not854, label %1189, label %1190

1189:                                             ; preds = %1185, %1179
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink1693 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %765, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = load i32, ptr %711, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror(i32 noundef %1193, ptr noundef nonnull @.str.4) #11
  %1195 = load i32, ptr %711, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror_debug(i32 noundef %1195, ptr noundef nonnull @.str.4) #11
  %1197 = load i32, ptr %765, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #11
  %1199 = load i32, ptr %765, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink1693, i32 noundef %1192, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1194, ptr noundef %1196, ptr noundef %1198, i32 noundef %1199) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1201:                                             ; preds = %1170
  %1202 = add nsw i32 %1171, 2
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = getelementptr inbounds i8, ptr %1175, i64 24
  %1204 = load ptr, ptr %1203, align 8, !tbaa !24
  %1205 = icmp eq ptr %1204, null
  br i1 %1205, label %1228, label %1206

1206:                                             ; preds = %1201
  %1207 = load i32, ptr %765, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #11
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1206
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #11
  %1215 = call i32 @isatty(i32 noundef %1214) #11
  %.not855 = icmp eq i32 %1215, 0
  br i1 %.not855, label %1216, label %1217

1216:                                             ; preds = %1212, %1206
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.5.sink1702 = phi ptr [ @.str.5, %1216 ], [ @.str.2, %1212 ]
  store i32 %1207, ptr %765, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %711, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.4) #11
  %1222 = load i32, ptr %711, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.4) #11
  %1224 = load i32, ptr %765, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #11
  %1226 = load i32, ptr %765, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.5.sink1702, i32 noundef %1219, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1228:                                             ; preds = %1201
  %1229 = add nsw i32 %1171, 3
  store i32 %1229, ptr @test_count, align 4, !tbaa !5
  %1230 = getelementptr inbounds i8, ptr %1175, i64 16
  %1231 = load i8, ptr %1230, align 8, !tbaa !22
  %1232 = icmp eq i8 %1231, 0
  br i1 %1232, label %1255, label %1233

1233:                                             ; preds = %1228
  %1234 = load i32, ptr %765, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235) #11
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc nuw i8 %1237 to i1
  br i1 %1238, label %1239, label %1243

1239:                                             ; preds = %1233
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #11
  %1242 = call i32 @isatty(i32 noundef %1241) #11
  %.not856 = icmp eq i32 %1242, 0
  br i1 %.not856, label %1243, label %1244

1243:                                             ; preds = %1239, %1233
  br label %1244

1244:                                             ; preds = %1239, %1243
  %.str.5.sink1711 = phi ptr [ @.str.5, %1243 ], [ @.str.2, %1239 ]
  store i32 %1234, ptr %765, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = load i32, ptr %711, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror(i32 noundef %1247, ptr noundef nonnull @.str.4) #11
  %1249 = load i32, ptr %711, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef %1249, ptr noundef nonnull @.str.4) #11
  %1251 = load i32, ptr %765, align 4, !tbaa !5
  %1252 = call ptr @strerror(i32 noundef %1251) #11
  %1253 = load i32, ptr %765, align 4, !tbaa !5
  %1254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull %.str.5.sink1711, i32 noundef %1246, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1248, ptr noundef %1250, ptr noundef %1252, i32 noundef %1253) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1255:                                             ; preds = %1228
  store ptr null, ptr %8, align 8, !tbaa !9
  %1256 = add nsw i32 %1171, 5
  store i32 %1256, ptr @test_count, align 4, !tbaa !5
  %1257 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.50, ptr noundef nonnull %8) #11
  %1258 = icmp eq i32 %1257, -1
  br i1 %1258, label %1259, label %1281

1259:                                             ; preds = %1255
  %1260 = load i32, ptr %765, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @s2n_print_stacktrace(ptr noundef %1261) #11
  %1263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1264 = trunc nuw i8 %1263 to i1
  br i1 %1264, label %1265, label %1269

1265:                                             ; preds = %1259
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 @fileno(ptr noundef %1266) #11
  %1268 = call i32 @isatty(i32 noundef %1267) #11
  %.not1122 = icmp eq i32 %1268, 0
  br i1 %.not1122, label %1269, label %1270

1269:                                             ; preds = %1265, %1259
  br label %1270

1270:                                             ; preds = %1265, %1269
  %.str.5.sink1720 = phi ptr [ @.str.5, %1269 ], [ @.str.2, %1265 ]
  store i32 %1260, ptr %765, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = load i32, ptr %711, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror(i32 noundef %1273, ptr noundef nonnull @.str.4) #11
  %1275 = load i32, ptr %711, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror_debug(i32 noundef %1275, ptr noundef nonnull @.str.4) #11
  %1277 = load i32, ptr %765, align 4, !tbaa !5
  %1278 = call ptr @strerror(i32 noundef %1277) #11
  %1279 = load i32, ptr %765, align 4, !tbaa !5
  %1280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef nonnull %.str.5.sink1720, i32 noundef %1272, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1274, ptr noundef %1276, ptr noundef %1278, i32 noundef %1279) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1281:                                             ; preds = %1255
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = add nsw i32 %1282, 1
  store i32 %1283, ptr @test_count, align 4, !tbaa !5
  %1284 = load ptr, ptr %8, align 8, !tbaa !9
  %1285 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %1284) #11
  br i1 %1285, label %1308, label %1286

1286:                                             ; preds = %1281
  %1287 = load i32, ptr %765, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @s2n_print_stacktrace(ptr noundef %1288) #11
  %1290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1291 = trunc nuw i8 %1290 to i1
  br i1 %1291, label %1292, label %1296

1292:                                             ; preds = %1286
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = call i32 @fileno(ptr noundef %1293) #11
  %1295 = call i32 @isatty(i32 noundef %1294) #11
  %.not858 = icmp eq i32 %1295, 0
  br i1 %.not858, label %1296, label %1297

1296:                                             ; preds = %1292, %1286
  br label %1297

1297:                                             ; preds = %1292, %1296
  %.str.5.sink1729 = phi ptr [ @.str.5, %1296 ], [ @.str.2, %1292 ]
  store i32 %1287, ptr %765, align 4, !tbaa !5
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1299 = load i32, ptr @test_count, align 4, !tbaa !5
  %1300 = load i32, ptr %711, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror(i32 noundef %1300, ptr noundef nonnull @.str.4) #11
  %1302 = load i32, ptr %711, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef %1302, ptr noundef nonnull @.str.4) #11
  %1304 = load i32, ptr %765, align 4, !tbaa !5
  %1305 = call ptr @strerror(i32 noundef %1304) #11
  %1306 = load i32, ptr %765, align 4, !tbaa !5
  %1307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1298, ptr noundef nonnull %.str.5.sink1729, i32 noundef %1299, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1301, ptr noundef %1303, ptr noundef %1305, i32 noundef %1306) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1308:                                             ; preds = %1281
  %1309 = load i32, ptr @test_count, align 4, !tbaa !5
  %1310 = add nsw i32 %1309, 1
  store i32 %1310, ptr @test_count, align 4, !tbaa !5
  %1311 = load ptr, ptr %8, align 8, !tbaa !9
  %1312 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %1311) #11
  br i1 %1312, label %1313, label %1335

1313:                                             ; preds = %1308
  %1314 = load i32, ptr %765, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = call i32 @s2n_print_stacktrace(ptr noundef %1315) #11
  %1317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1318 = trunc nuw i8 %1317 to i1
  br i1 %1318, label %1319, label %1323

1319:                                             ; preds = %1313
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = call i32 @fileno(ptr noundef %1320) #11
  %1322 = call i32 @isatty(i32 noundef %1321) #11
  %.not1121 = icmp eq i32 %1322, 0
  br i1 %.not1121, label %1323, label %1324

1323:                                             ; preds = %1319, %1313
  br label %1324

1324:                                             ; preds = %1319, %1323
  %.str.5.sink1738 = phi ptr [ @.str.5, %1323 ], [ @.str.2, %1319 ]
  store i32 %1314, ptr %765, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = load i32, ptr %711, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror(i32 noundef %1327, ptr noundef nonnull @.str.4) #11
  %1329 = load i32, ptr %711, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror_debug(i32 noundef %1329, ptr noundef nonnull @.str.4) #11
  %1331 = load i32, ptr %765, align 4, !tbaa !5
  %1332 = call ptr @strerror(i32 noundef %1331) #11
  %1333 = load i32, ptr %765, align 4, !tbaa !5
  %1334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1325, ptr noundef nonnull %.str.5.sink1738, i32 noundef %1326, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1328, ptr noundef %1330, ptr noundef %1332, i32 noundef %1333) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1335:                                             ; preds = %1308
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = add nsw i32 %1336, 1
  store i32 %1337, ptr @test_count, align 4, !tbaa !5
  %1338 = load ptr, ptr %8, align 8, !tbaa !9
  %1339 = getelementptr inbounds i8, ptr %1338, i64 16
  %1340 = load ptr, ptr %1339, align 8, !tbaa !20
  %1341 = load i8, ptr %1340, align 8, !tbaa !50
  %1342 = icmp eq i8 %1341, 0
  br i1 %1342, label %1365, label %1343

1343:                                             ; preds = %1335
  %1344 = load i32, ptr %765, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = call i32 @s2n_print_stacktrace(ptr noundef %1345) #11
  %1347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1348 = trunc nuw i8 %1347 to i1
  br i1 %1348, label %1349, label %1353

1349:                                             ; preds = %1343
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @fileno(ptr noundef %1350) #11
  %1352 = call i32 @isatty(i32 noundef %1351) #11
  %.not859 = icmp eq i32 %1352, 0
  br i1 %.not859, label %1353, label %1354

1353:                                             ; preds = %1349, %1343
  br label %1354

1354:                                             ; preds = %1349, %1353
  %.str.5.sink1747 = phi ptr [ @.str.5, %1353 ], [ @.str.2, %1349 ]
  store i32 %1344, ptr %765, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = load i32, ptr @test_count, align 4, !tbaa !5
  %1357 = load i32, ptr %711, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror(i32 noundef %1357, ptr noundef nonnull @.str.4) #11
  %1359 = load i32, ptr %711, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef nonnull @.str.4) #11
  %1361 = load i32, ptr %765, align 4, !tbaa !5
  %1362 = call ptr @strerror(i32 noundef %1361) #11
  %1363 = load i32, ptr %765, align 4, !tbaa !5
  %1364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1355, ptr noundef nonnull %.str.5.sink1747, i32 noundef %1356, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %1358, ptr noundef %1360, ptr noundef %1362, i32 noundef %1363) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1365:                                             ; preds = %1335
  %1366 = add nsw i32 %1336, 2
  store i32 %1366, ptr @test_count, align 4, !tbaa !5
  %1367 = getelementptr inbounds i8, ptr %1340, i64 8
  %1368 = load ptr, ptr %1367, align 8, !tbaa !49
  %1369 = icmp eq ptr %1368, null
  br i1 %1369, label %1392, label %1370

1370:                                             ; preds = %1365
  %1371 = load i32, ptr %765, align 4, !tbaa !5
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = call i32 @s2n_print_stacktrace(ptr noundef %1372) #11
  %1374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1375 = trunc nuw i8 %1374 to i1
  br i1 %1375, label %1376, label %1380

1376:                                             ; preds = %1370
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = call i32 @fileno(ptr noundef %1377) #11
  %1379 = call i32 @isatty(i32 noundef %1378) #11
  %.not860 = icmp eq i32 %1379, 0
  br i1 %.not860, label %1380, label %1381

1380:                                             ; preds = %1376, %1370
  br label %1381

1381:                                             ; preds = %1376, %1380
  %.str.5.sink1756 = phi ptr [ @.str.5, %1380 ], [ @.str.2, %1376 ]
  store i32 %1371, ptr %765, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = load i32, ptr %711, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef nonnull @.str.4) #11
  %1386 = load i32, ptr %711, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef nonnull @.str.4) #11
  %1388 = load i32, ptr %765, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #11
  %1390 = load i32, ptr %765, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef nonnull %.str.5.sink1756, i32 noundef %1383, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1385, ptr noundef %1387, ptr noundef %1389, i32 noundef %1390) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1392:                                             ; preds = %1365
  %1393 = add nsw i32 %1336, 3
  store i32 %1393, ptr @test_count, align 4, !tbaa !5
  %1394 = getelementptr inbounds i8, ptr %1340, i64 24
  %1395 = load ptr, ptr %1394, align 8, !tbaa !24
  %1396 = icmp eq ptr %1395, @ALL_SUPPORTED_KEM_GROUPS
  br i1 %1396, label %1419, label %1397

1397:                                             ; preds = %1392
  %1398 = load i32, ptr %765, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @s2n_print_stacktrace(ptr noundef %1399) #11
  %1401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1402 = trunc nuw i8 %1401 to i1
  br i1 %1402, label %1403, label %1407

1403:                                             ; preds = %1397
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = call i32 @fileno(ptr noundef %1404) #11
  %1406 = call i32 @isatty(i32 noundef %1405) #11
  %.not861 = icmp eq i32 %1406, 0
  br i1 %.not861, label %1407, label %1408

1407:                                             ; preds = %1403, %1397
  br label %1408

1408:                                             ; preds = %1403, %1407
  %.str.5.sink1765 = phi ptr [ @.str.5, %1407 ], [ @.str.2, %1403 ]
  store i32 %1398, ptr %765, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = load i32, ptr %711, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef nonnull @.str.4) #11
  %1413 = load i32, ptr %711, align 4, !tbaa !5
  %1414 = call ptr @s2n_strerror_debug(i32 noundef %1413, ptr noundef nonnull @.str.4) #11
  %1415 = load i32, ptr %765, align 4, !tbaa !5
  %1416 = call ptr @strerror(i32 noundef %1415) #11
  %1417 = load i32, ptr %765, align 4, !tbaa !5
  %1418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1409, ptr noundef nonnull %.str.5.sink1765, i32 noundef %1410, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1412, ptr noundef %1414, ptr noundef %1416, i32 noundef %1417) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1419:                                             ; preds = %1392
  %1420 = add nsw i32 %1336, 4
  store i32 %1420, ptr @test_count, align 4, !tbaa !5
  %1421 = getelementptr inbounds i8, ptr %1340, i64 16
  %1422 = load i8, ptr %1421, align 8, !tbaa !22
  %1423 = icmp eq i8 %1422, 8
  br i1 %1423, label %1446, label %1424

1424:                                             ; preds = %1419
  %1425 = load i32, ptr %765, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @s2n_print_stacktrace(ptr noundef %1426) #11
  %1428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1429 = trunc nuw i8 %1428 to i1
  br i1 %1429, label %1430, label %1434

1430:                                             ; preds = %1424
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @fileno(ptr noundef %1431) #11
  %1433 = call i32 @isatty(i32 noundef %1432) #11
  %.not862 = icmp eq i32 %1433, 0
  br i1 %.not862, label %1434, label %1435

1434:                                             ; preds = %1430, %1424
  br label %1435

1435:                                             ; preds = %1430, %1434
  %.str.5.sink1774 = phi ptr [ @.str.5, %1434 ], [ @.str.2, %1430 ]
  store i32 %1425, ptr %765, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = load i32, ptr %711, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror(i32 noundef %1438, ptr noundef nonnull @.str.4) #11
  %1440 = load i32, ptr %711, align 4, !tbaa !5
  %1441 = call ptr @s2n_strerror_debug(i32 noundef %1440, ptr noundef nonnull @.str.4) #11
  %1442 = load i32, ptr %765, align 4, !tbaa !5
  %1443 = call ptr @strerror(i32 noundef %1442) #11
  %1444 = load i32, ptr %765, align 4, !tbaa !5
  %1445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef nonnull %.str.5.sink1774, i32 noundef %1437, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1439, ptr noundef %1441, ptr noundef %1443, i32 noundef %1444) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1446:                                             ; preds = %1419
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #11
  store i32 0, ptr %9, align 4, !tbaa !5
  %1447 = add nsw i32 %1336, 5
  store i32 %1447, ptr @test_count, align 4, !tbaa !5
  %1448 = call i32 @s2n_kem_preferences_groups_available(ptr noundef nonnull %1340, ptr noundef nonnull %9) #11
  %1449 = call zeroext i1 @s2n_result_is_ok(i32 %1448)
  br i1 %1449, label %1472, label %1450

1450:                                             ; preds = %1446
  %1451 = load i32, ptr %765, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452) #11
  %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) #11
  %1459 = call i32 @isatty(i32 noundef %1458) #11
  %.not863 = icmp eq i32 %1459, 0
  br i1 %.not863, label %1460, label %1461

1460:                                             ; preds = %1456, %1450
  br label %1461

1461:                                             ; preds = %1456, %1460
  %.str.5.sink1783 = phi ptr [ @.str.5, %1460 ], [ @.str.2, %1456 ]
  store i32 %1451, ptr %765, 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 %711, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.4) #11
  %1466 = load i32, ptr %711, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.4) #11
  %1468 = load i32, ptr %765, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #11
  %1470 = load i32, ptr %765, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef nonnull %.str.5.sink1783, i32 noundef %1463, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1472:                                             ; preds = %1446
  %1473 = call zeroext i1 @s2n_libcrypto_supports_evp_kem() #11
  br i1 %1473, label %1474, label %1529

1474:                                             ; preds = %1472
  %1475 = call i32 (...) @s2n_is_evp_apis_supported() #11
  %.not864 = icmp eq i32 %1475, 0
  br i1 %.not864, label %1529, label %1476

1476:                                             ; preds = %1474
  %1477 = call zeroext i1 @s2n_libcrypto_supports_mlkem() #11
  %1478 = load i32, ptr @test_count, align 4, !tbaa !5
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, ptr @test_count, align 4, !tbaa !5
  %1480 = load i32, ptr %9, align 4, !tbaa !5
  br i1 %1477, label %1481, label %1505

1481:                                             ; preds = %1476
  %1482 = icmp eq i32 %1480, 8
  br i1 %1482, label %1613, label %1483

1483:                                             ; preds = %1481
  %1484 = load i32, ptr %765, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = call i32 @s2n_print_stacktrace(ptr noundef %1485) #11
  %1487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1488 = trunc nuw i8 %1487 to i1
  br i1 %1488, label %1489, label %1493

1489:                                             ; preds = %1483
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = call i32 @fileno(ptr noundef %1490) #11
  %1492 = call i32 @isatty(i32 noundef %1491) #11
  %.not870 = icmp eq i32 %1492, 0
  br i1 %.not870, label %1493, label %1494

1493:                                             ; preds = %1489, %1483
  br label %1494

1494:                                             ; preds = %1489, %1493
  %.str.5.sink1792 = phi ptr [ @.str.5, %1493 ], [ @.str.2, %1489 ]
  store i32 %1484, ptr %765, align 4, !tbaa !5
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = load i32, ptr @test_count, align 4, !tbaa !5
  %1497 = load i32, ptr %711, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror(i32 noundef %1497, ptr noundef nonnull @.str.4) #11
  %1499 = load i32, ptr %711, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror_debug(i32 noundef %1499, ptr noundef nonnull @.str.4) #11
  %1501 = load i32, ptr %765, align 4, !tbaa !5
  %1502 = call ptr @strerror(i32 noundef %1501) #11
  %1503 = load i32, ptr %765, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1495, ptr noundef nonnull %.str.5.sink1792, i32 noundef %1496, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1498, ptr noundef %1500, ptr noundef %1502, i32 noundef %1503) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1505:                                             ; preds = %1476
  %1506 = icmp eq i32 %1480, 6
  br i1 %1506, label %1613, label %1507

1507:                                             ; preds = %1505
  %1508 = load i32, ptr %765, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @s2n_print_stacktrace(ptr noundef %1509) #11
  %1511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1512 = trunc nuw i8 %1511 to i1
  br i1 %1512, label %1513, label %1517

1513:                                             ; preds = %1507
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @fileno(ptr noundef %1514) #11
  %1516 = call i32 @isatty(i32 noundef %1515) #11
  %.not869 = icmp eq i32 %1516, 0
  br i1 %.not869, label %1517, label %1518

1517:                                             ; preds = %1513, %1507
  br label %1518

1518:                                             ; preds = %1513, %1517
  %.str.5.sink1801 = phi ptr [ @.str.5, %1517 ], [ @.str.2, %1513 ]
  store i32 %1508, ptr %765, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = load i32, ptr %711, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror(i32 noundef %1521, ptr noundef nonnull @.str.4) #11
  %1523 = load i32, ptr %711, align 4, !tbaa !5
  %1524 = call ptr @s2n_strerror_debug(i32 noundef %1523, ptr noundef nonnull @.str.4) #11
  %1525 = load i32, ptr %765, align 4, !tbaa !5
  %1526 = call ptr @strerror(i32 noundef %1525) #11
  %1527 = load i32, ptr %765, align 4, !tbaa !5
  %1528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1519, ptr noundef nonnull %.str.5.sink1801, i32 noundef %1520, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1522, ptr noundef %1524, ptr noundef %1526, i32 noundef %1527) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1529:                                             ; preds = %1474, %1472
  %1530 = call zeroext i1 @s2n_libcrypto_supports_evp_kem() #11
  br i1 %1530, label %1531, label %1586

1531:                                             ; preds = %1529
  %1532 = call i32 (...) @s2n_is_evp_apis_supported() #11
  %.not865 = icmp eq i32 %1532, 0
  br i1 %.not865, label %1533, label %1586

1533:                                             ; preds = %1531
  %1534 = call zeroext i1 @s2n_libcrypto_supports_mlkem() #11
  %1535 = load i32, ptr @test_count, align 4, !tbaa !5
  %1536 = add nsw i32 %1535, 1
  store i32 %1536, ptr @test_count, align 4, !tbaa !5
  %1537 = load i32, ptr %9, align 4, !tbaa !5
  br i1 %1534, label %1538, label %1562

1538:                                             ; preds = %1533
  %1539 = icmp eq i32 %1537, 5
  br i1 %1539, label %1613, label %1540

1540:                                             ; preds = %1538
  %1541 = load i32, ptr %765, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @s2n_print_stacktrace(ptr noundef %1542) #11
  %1544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1545 = trunc nuw i8 %1544 to i1
  br i1 %1545, label %1546, label %1550

1546:                                             ; preds = %1540
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @fileno(ptr noundef %1547) #11
  %1549 = call i32 @isatty(i32 noundef %1548) #11
  %.not867 = icmp eq i32 %1549, 0
  br i1 %.not867, label %1550, label %1551

1550:                                             ; preds = %1546, %1540
  br label %1551

1551:                                             ; preds = %1546, %1550
  %.str.5.sink1810 = phi ptr [ @.str.5, %1550 ], [ @.str.2, %1546 ]
  store i32 %1541, ptr %765, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = load i32, ptr %711, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror(i32 noundef %1554, ptr noundef nonnull @.str.4) #11
  %1556 = load i32, ptr %711, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror_debug(i32 noundef %1556, ptr noundef nonnull @.str.4) #11
  %1558 = load i32, ptr %765, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #11
  %1560 = load i32, ptr %765, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1552, ptr noundef nonnull %.str.5.sink1810, i32 noundef %1553, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1555, ptr noundef %1557, ptr noundef %1559, i32 noundef %1560) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1562:                                             ; preds = %1533
  %1563 = icmp eq i32 %1537, 4
  br i1 %1563, label %1613, label %1564

1564:                                             ; preds = %1562
  %1565 = load i32, ptr %765, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @s2n_print_stacktrace(ptr noundef %1566) #11
  %1568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1569 = trunc nuw i8 %1568 to i1
  br i1 %1569, label %1570, label %1574

1570:                                             ; preds = %1564
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = call i32 @fileno(ptr noundef %1571) #11
  %1573 = call i32 @isatty(i32 noundef %1572) #11
  %.not866 = icmp eq i32 %1573, 0
  br i1 %.not866, label %1574, label %1575

1574:                                             ; preds = %1570, %1564
  br label %1575

1575:                                             ; preds = %1570, %1574
  %.str.5.sink1819 = phi ptr [ @.str.5, %1574 ], [ @.str.2, %1570 ]
  store i32 %1565, ptr %765, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = load i32, ptr %711, align 4, !tbaa !5
  %1579 = call ptr @s2n_strerror(i32 noundef %1578, ptr noundef nonnull @.str.4) #11
  %1580 = load i32, ptr %711, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef nonnull @.str.4) #11
  %1582 = load i32, ptr %765, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #11
  %1584 = load i32, ptr %765, align 4, !tbaa !5
  %1585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef nonnull %.str.5.sink1819, i32 noundef %1577, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %1579, ptr noundef %1581, ptr noundef %1583, i32 noundef %1584) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1586:                                             ; preds = %1529, %1531
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = add nsw i32 %1587, 1
  store i32 %1588, ptr @test_count, align 4, !tbaa !5
  %1589 = load i32, ptr %9, align 4, !tbaa !5
  %1590 = icmp eq i32 %1589, 0
  br i1 %1590, label %1613, label %1591

1591:                                             ; preds = %1586
  %1592 = load i32, ptr %765, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @s2n_print_stacktrace(ptr noundef %1593) #11
  %1595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1596 = trunc nuw i8 %1595 to i1
  br i1 %1596, label %1597, label %1601

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

1601:                                             ; preds = %1597, %1591
  br label %1602

1602:                                             ; preds = %1597, %1601
  %.str.5.sink1828 = phi ptr [ @.str.5, %1601 ], [ @.str.2, %1597 ]
  store i32 %1592, ptr %765, align 4, !tbaa !5
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = load i32, ptr %711, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror(i32 noundef %1605, ptr noundef nonnull @.str.4) #11
  %1607 = load i32, ptr %711, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef nonnull @.str.4) #11
  %1609 = load i32, ptr %765, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #11
  %1611 = load i32, ptr %765, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1603, ptr noundef nonnull %.str.5.sink1828, i32 noundef %1604, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %1606, ptr noundef %1608, ptr noundef %1610, i32 noundef %1611) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1613:                                             ; preds = %1562, %1538, %1586, %1481, %1505
  %1614 = phi i32 [ %1536, %1562 ], [ %1536, %1538 ], [ %1588, %1586 ], [ %1479, %1481 ], [ %1479, %1505 ]
  store ptr null, ptr %8, align 8, !tbaa !9
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr @test_count, align 4, !tbaa !5
  %1616 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.60, ptr noundef nonnull %8) #11
  %1617 = icmp eq i32 %1616, -1
  br i1 %1617, label %1618, label %1640

1618:                                             ; preds = %1613
  %1619 = load i32, ptr %765, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @s2n_print_stacktrace(ptr noundef %1620) #11
  %1622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1623 = trunc nuw i8 %1622 to i1
  br i1 %1623, label %1624, label %1628

1624:                                             ; preds = %1618
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @fileno(ptr noundef %1625) #11
  %1627 = call i32 @isatty(i32 noundef %1626) #11
  %.not1120 = icmp eq i32 %1627, 0
  br i1 %.not1120, label %1628, label %1629

1628:                                             ; preds = %1624, %1618
  br label %1629

1629:                                             ; preds = %1624, %1628
  %.str.5.sink1837 = phi ptr [ @.str.5, %1628 ], [ @.str.2, %1624 ]
  store i32 %1619, ptr %765, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = load i32, ptr %711, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror(i32 noundef %1632, ptr noundef nonnull @.str.4) #11
  %1634 = load i32, ptr %711, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef nonnull @.str.4) #11
  %1636 = load i32, ptr %765, align 4, !tbaa !5
  %1637 = call ptr @strerror(i32 noundef %1636) #11
  %1638 = load i32, ptr %765, align 4, !tbaa !5
  %1639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1630, ptr noundef nonnull %.str.5.sink1837, i32 noundef %1631, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %1633, ptr noundef %1635, ptr noundef %1637, i32 noundef %1638) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1640:                                             ; preds = %1613
  %1641 = load i32, ptr @test_count, align 4, !tbaa !5
  %1642 = add nsw i32 %1641, 1
  store i32 %1642, ptr @test_count, align 4, !tbaa !5
  %1643 = load ptr, ptr %8, align 8, !tbaa !9
  %1644 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %1643) #11
  br i1 %1644, label %1667, label %1645

1645:                                             ; preds = %1640
  %1646 = load i32, ptr %765, align 4, !tbaa !5
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = call i32 @s2n_print_stacktrace(ptr noundef %1647) #11
  %1649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1650 = trunc nuw i8 %1649 to i1
  br i1 %1650, label %1651, label %1655

1651:                                             ; preds = %1645
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = call i32 @fileno(ptr noundef %1652) #11
  %1654 = call i32 @isatty(i32 noundef %1653) #11
  %.not871 = icmp eq i32 %1654, 0
  br i1 %.not871, label %1655, label %1656

1655:                                             ; preds = %1651, %1645
  br label %1656

1656:                                             ; preds = %1651, %1655
  %.str.5.sink1846 = phi ptr [ @.str.5, %1655 ], [ @.str.2, %1651 ]
  store i32 %1646, ptr %765, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = load i32, ptr @test_count, align 4, !tbaa !5
  %1659 = load i32, ptr %711, align 4, !tbaa !5
  %1660 = call ptr @s2n_strerror(i32 noundef %1659, ptr noundef nonnull @.str.4) #11
  %1661 = load i32, ptr %711, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror_debug(i32 noundef %1661, ptr noundef nonnull @.str.4) #11
  %1663 = load i32, ptr %765, align 4, !tbaa !5
  %1664 = call ptr @strerror(i32 noundef %1663) #11
  %1665 = load i32, ptr %765, align 4, !tbaa !5
  %1666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1657, ptr noundef nonnull %.str.5.sink1846, i32 noundef %1658, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %1660, ptr noundef %1662, ptr noundef %1664, i32 noundef %1665) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1667:                                             ; preds = %1640
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = add nsw i32 %1668, 1
  store i32 %1669, ptr @test_count, align 4, !tbaa !5
  %1670 = load ptr, ptr %8, align 8, !tbaa !9
  %1671 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %1670) #11
  br i1 %1671, label %1672, label %1694

1672:                                             ; preds = %1667
  %1673 = load i32, ptr %765, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @s2n_print_stacktrace(ptr noundef %1674) #11
  %1676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1677 = trunc nuw i8 %1676 to i1
  br i1 %1677, label %1678, label %1682

1678:                                             ; preds = %1672
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @fileno(ptr noundef %1679) #11
  %1681 = call i32 @isatty(i32 noundef %1680) #11
  %.not1119 = icmp eq i32 %1681, 0
  br i1 %.not1119, label %1682, label %1683

1682:                                             ; preds = %1678, %1672
  br label %1683

1683:                                             ; preds = %1678, %1682
  %.str.5.sink1855 = phi ptr [ @.str.5, %1682 ], [ @.str.2, %1678 ]
  store i32 %1673, ptr %765, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = load i32, ptr %711, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror(i32 noundef %1686, ptr noundef nonnull @.str.4) #11
  %1688 = load i32, ptr %711, align 4, !tbaa !5
  %1689 = call ptr @s2n_strerror_debug(i32 noundef %1688, ptr noundef nonnull @.str.4) #11
  %1690 = load i32, ptr %765, align 4, !tbaa !5
  %1691 = call ptr @strerror(i32 noundef %1690) #11
  %1692 = load i32, ptr %765, align 4, !tbaa !5
  %1693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef nonnull %.str.5.sink1855, i32 noundef %1685, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %1687, ptr noundef %1689, ptr noundef %1691, i32 noundef %1692) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1694:                                             ; preds = %1667
  %1695 = load i32, ptr @test_count, align 4, !tbaa !5
  %1696 = add nsw i32 %1695, 1
  store i32 %1696, ptr @test_count, align 4, !tbaa !5
  %1697 = load ptr, ptr %8, align 8, !tbaa !9
  %1698 = getelementptr inbounds i8, ptr %1697, i64 16
  %1699 = load ptr, ptr %1698, align 8, !tbaa !20
  %1700 = load i8, ptr %1699, align 8, !tbaa !50
  %1701 = icmp eq i8 %1700, 0
  br i1 %1701, label %1724, label %1702

1702:                                             ; preds = %1694
  %1703 = load i32, ptr %765, align 4, !tbaa !5
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @s2n_print_stacktrace(ptr noundef %1704) #11
  %1706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1707 = trunc nuw i8 %1706 to i1
  br i1 %1707, label %1708, label %1712

1708:                                             ; preds = %1702
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = call i32 @fileno(ptr noundef %1709) #11
  %1711 = call i32 @isatty(i32 noundef %1710) #11
  %.not872 = icmp eq i32 %1711, 0
  br i1 %.not872, label %1712, label %1713

1712:                                             ; preds = %1708, %1702
  br label %1713

1713:                                             ; preds = %1708, %1712
  %.str.5.sink1864 = phi ptr [ @.str.5, %1712 ], [ @.str.2, %1708 ]
  store i32 %1703, ptr %765, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = load i32, ptr @test_count, align 4, !tbaa !5
  %1716 = load i32, ptr %711, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror(i32 noundef %1716, ptr noundef nonnull @.str.4) #11
  %1718 = load i32, ptr %711, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror_debug(i32 noundef %1718, ptr noundef nonnull @.str.4) #11
  %1720 = load i32, ptr %765, align 4, !tbaa !5
  %1721 = call ptr @strerror(i32 noundef %1720) #11
  %1722 = load i32, ptr %765, align 4, !tbaa !5
  %1723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1714, ptr noundef nonnull %.str.5.sink1864, i32 noundef %1715, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %1717, ptr noundef %1719, ptr noundef %1721, i32 noundef %1722) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1724:                                             ; preds = %1694
  %1725 = add nsw i32 %1695, 2
  store i32 %1725, ptr @test_count, align 4, !tbaa !5
  %1726 = getelementptr inbounds i8, ptr %1699, i64 8
  %1727 = load ptr, ptr %1726, align 8, !tbaa !49
  %1728 = icmp eq ptr %1727, null
  br i1 %1728, label %1751, label %1729

1729:                                             ; preds = %1724
  %1730 = load i32, ptr %765, align 4, !tbaa !5
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @s2n_print_stacktrace(ptr noundef %1731) #11
  %1733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1734 = trunc nuw i8 %1733 to i1
  br i1 %1734, label %1735, label %1739

1735:                                             ; preds = %1729
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = call i32 @fileno(ptr noundef %1736) #11
  %1738 = call i32 @isatty(i32 noundef %1737) #11
  %.not873 = icmp eq i32 %1738, 0
  br i1 %.not873, label %1739, label %1740

1739:                                             ; preds = %1735, %1729
  br label %1740

1740:                                             ; preds = %1735, %1739
  %.str.5.sink1873 = phi ptr [ @.str.5, %1739 ], [ @.str.2, %1735 ]
  store i32 %1730, ptr %765, align 4, !tbaa !5
  %1741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = load i32, ptr %711, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror(i32 noundef %1743, ptr noundef nonnull @.str.4) #11
  %1745 = load i32, ptr %711, align 4, !tbaa !5
  %1746 = call ptr @s2n_strerror_debug(i32 noundef %1745, ptr noundef nonnull @.str.4) #11
  %1747 = load i32, ptr %765, align 4, !tbaa !5
  %1748 = call ptr @strerror(i32 noundef %1747) #11
  %1749 = load i32, ptr %765, align 4, !tbaa !5
  %1750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1741, ptr noundef nonnull %.str.5.sink1873, i32 noundef %1742, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %1744, ptr noundef %1746, ptr noundef %1748, i32 noundef %1749) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1751:                                             ; preds = %1724
  %1752 = add nsw i32 %1695, 3
  store i32 %1752, ptr @test_count, align 4, !tbaa !5
  %1753 = getelementptr inbounds i8, ptr %1699, i64 24
  %1754 = load ptr, ptr %1753, align 8, !tbaa !24
  %1755 = icmp eq ptr %1754, null
  br i1 %1755, label %1778, label %1756

1756:                                             ; preds = %1751
  %1757 = load i32, ptr %765, align 4, !tbaa !5
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @s2n_print_stacktrace(ptr noundef %1758) #11
  %1760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1761 = trunc nuw i8 %1760 to i1
  br i1 %1761, label %1762, label %1766

1762:                                             ; preds = %1756
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = call i32 @fileno(ptr noundef %1763) #11
  %1765 = call i32 @isatty(i32 noundef %1764) #11
  %.not874 = icmp eq i32 %1765, 0
  br i1 %.not874, label %1766, label %1767

1766:                                             ; preds = %1762, %1756
  br label %1767

1767:                                             ; preds = %1762, %1766
  %.str.5.sink1882 = phi ptr [ @.str.5, %1766 ], [ @.str.2, %1762 ]
  store i32 %1757, ptr %765, align 4, !tbaa !5
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = load i32, ptr @test_count, align 4, !tbaa !5
  %1770 = load i32, ptr %711, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror(i32 noundef %1770, ptr noundef nonnull @.str.4) #11
  %1772 = load i32, ptr %711, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror_debug(i32 noundef %1772, ptr noundef nonnull @.str.4) #11
  %1774 = load i32, ptr %765, align 4, !tbaa !5
  %1775 = call ptr @strerror(i32 noundef %1774) #11
  %1776 = load i32, ptr %765, align 4, !tbaa !5
  %1777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1768, ptr noundef nonnull %.str.5.sink1882, i32 noundef %1769, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %1771, ptr noundef %1773, ptr noundef %1775, i32 noundef %1776) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1778:                                             ; preds = %1751
  %1779 = add nsw i32 %1695, 4
  store i32 %1779, ptr @test_count, align 4, !tbaa !5
  %1780 = getelementptr inbounds i8, ptr %1699, i64 16
  %1781 = load i8, ptr %1780, align 8, !tbaa !22
  %1782 = icmp eq i8 %1781, 0
  br i1 %1782, label %1805, label %1783

1783:                                             ; preds = %1778
  %1784 = load i32, ptr %765, align 4, !tbaa !5
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @s2n_print_stacktrace(ptr noundef %1785) #11
  %1787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1788 = trunc nuw i8 %1787 to i1
  br i1 %1788, label %1789, label %1793

1789:                                             ; preds = %1783
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @fileno(ptr noundef %1790) #11
  %1792 = call i32 @isatty(i32 noundef %1791) #11
  %.not875 = icmp eq i32 %1792, 0
  br i1 %.not875, label %1793, label %1794

1793:                                             ; preds = %1789, %1783
  br label %1794

1794:                                             ; preds = %1789, %1793
  %.str.5.sink1891 = phi ptr [ @.str.5, %1793 ], [ @.str.2, %1789 ]
  store i32 %1784, ptr %765, align 4, !tbaa !5
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = load i32, ptr @test_count, align 4, !tbaa !5
  %1797 = load i32, ptr %711, align 4, !tbaa !5
  %1798 = call ptr @s2n_strerror(i32 noundef %1797, ptr noundef nonnull @.str.4) #11
  %1799 = load i32, ptr %711, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror_debug(i32 noundef %1799, ptr noundef nonnull @.str.4) #11
  %1801 = load i32, ptr %765, align 4, !tbaa !5
  %1802 = call ptr @strerror(i32 noundef %1801) #11
  %1803 = load i32, ptr %765, align 4, !tbaa !5
  %1804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1795, ptr noundef nonnull %.str.5.sink1891, i32 noundef %1796, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1798, ptr noundef %1800, ptr noundef %1802, i32 noundef %1803) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1805:                                             ; preds = %1778
  store ptr null, ptr %8, align 8, !tbaa !9
  %1806 = add nsw i32 %1695, 5
  store i32 %1806, ptr @test_count, align 4, !tbaa !5
  %1807 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.62, ptr noundef nonnull %8) #11
  %1808 = icmp eq i32 %1807, -1
  br i1 %1808, label %1809, label %1831

1809:                                             ; preds = %1805
  %1810 = load i32, ptr %765, align 4, !tbaa !5
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @s2n_print_stacktrace(ptr noundef %1811) #11
  %1813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1814 = trunc nuw i8 %1813 to i1
  br i1 %1814, label %1815, label %1819

1815:                                             ; preds = %1809
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = call i32 @fileno(ptr noundef %1816) #11
  %1818 = call i32 @isatty(i32 noundef %1817) #11
  %.not1118 = icmp eq i32 %1818, 0
  br i1 %.not1118, label %1819, label %1820

1819:                                             ; preds = %1815, %1809
  br label %1820

1820:                                             ; preds = %1815, %1819
  %.str.5.sink1900 = phi ptr [ @.str.5, %1819 ], [ @.str.2, %1815 ]
  store i32 %1810, ptr %765, align 4, !tbaa !5
  %1821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1822 = load i32, ptr @test_count, align 4, !tbaa !5
  %1823 = load i32, ptr %711, align 4, !tbaa !5
  %1824 = call ptr @s2n_strerror(i32 noundef %1823, ptr noundef nonnull @.str.4) #11
  %1825 = load i32, ptr %711, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef nonnull @.str.4) #11
  %1827 = load i32, ptr %765, align 4, !tbaa !5
  %1828 = call ptr @strerror(i32 noundef %1827) #11
  %1829 = load i32, ptr %765, align 4, !tbaa !5
  %1830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1821, ptr noundef nonnull %.str.5.sink1900, i32 noundef %1822, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %1824, ptr noundef %1826, ptr noundef %1828, i32 noundef %1829) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1831:                                             ; preds = %1805
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = add nsw i32 %1832, 1
  store i32 %1833, ptr @test_count, align 4, !tbaa !5
  %1834 = load ptr, ptr %8, align 8, !tbaa !9
  %1835 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %1834) #11
  br i1 %1835, label %1858, label %1836

1836:                                             ; preds = %1831
  %1837 = load i32, ptr %765, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @s2n_print_stacktrace(ptr noundef %1838) #11
  %1840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1841 = trunc nuw i8 %1840 to i1
  br i1 %1841, label %1842, label %1846

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

1846:                                             ; preds = %1842, %1836
  br label %1847

1847:                                             ; preds = %1842, %1846
  %.str.5.sink1909 = phi ptr [ @.str.5, %1846 ], [ @.str.2, %1842 ]
  store i32 %1837, ptr %765, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = load i32, ptr %711, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef nonnull @.str.4) #11
  %1852 = load i32, ptr %711, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror_debug(i32 noundef %1852, ptr noundef nonnull @.str.4) #11
  %1854 = load i32, ptr %765, align 4, !tbaa !5
  %1855 = call ptr @strerror(i32 noundef %1854) #11
  %1856 = load i32, ptr %765, align 4, !tbaa !5
  %1857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1848, ptr noundef nonnull %.str.5.sink1909, i32 noundef %1849, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %1851, ptr noundef %1853, ptr noundef %1855, i32 noundef %1856) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1858:                                             ; preds = %1831
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = add nsw i32 %1859, 1
  store i32 %1860, ptr @test_count, align 4, !tbaa !5
  %1861 = load ptr, ptr %8, align 8, !tbaa !9
  %1862 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %1861) #11
  br i1 %1862, label %1863, label %1885

1863:                                             ; preds = %1858
  %1864 = load i32, ptr %765, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @s2n_print_stacktrace(ptr noundef %1865) #11
  %1867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1868 = trunc nuw i8 %1867 to i1
  br i1 %1868, label %1869, label %1873

1869:                                             ; preds = %1863
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @fileno(ptr noundef %1870) #11
  %1872 = call i32 @isatty(i32 noundef %1871) #11
  %.not1117 = icmp eq i32 %1872, 0
  br i1 %.not1117, label %1873, label %1874

1873:                                             ; preds = %1869, %1863
  br label %1874

1874:                                             ; preds = %1869, %1873
  %.str.5.sink1918 = phi ptr [ @.str.5, %1873 ], [ @.str.2, %1869 ]
  store i32 %1864, ptr %765, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = load i32, ptr %711, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror(i32 noundef %1877, ptr noundef nonnull @.str.4) #11
  %1879 = load i32, ptr %711, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror_debug(i32 noundef %1879, ptr noundef nonnull @.str.4) #11
  %1881 = load i32, ptr %765, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #11
  %1883 = load i32, ptr %765, align 4, !tbaa !5
  %1884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef nonnull %.str.5.sink1918, i32 noundef %1876, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %1878, ptr noundef %1880, ptr noundef %1882, i32 noundef %1883) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1885:                                             ; preds = %1858
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr @test_count, align 4, !tbaa !5
  %1888 = load ptr, ptr %8, align 8, !tbaa !9
  %1889 = getelementptr inbounds i8, ptr %1888, i64 16
  %1890 = load ptr, ptr %1889, align 8, !tbaa !20
  %1891 = icmp eq ptr %1890, @kem_preferences_pq_tls_1_3_2023_06
  br i1 %1891, label %1914, label %1892

1892:                                             ; preds = %1885
  %1893 = load i32, ptr %765, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = call i32 @s2n_print_stacktrace(ptr noundef %1894) #11
  %1896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1897 = trunc nuw i8 %1896 to i1
  br i1 %1897, label %1898, label %1902

1898:                                             ; preds = %1892
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @fileno(ptr noundef %1899) #11
  %1901 = call i32 @isatty(i32 noundef %1900) #11
  %.not877 = icmp eq i32 %1901, 0
  br i1 %.not877, label %1902, label %1903

1902:                                             ; preds = %1898, %1892
  br label %1903

1903:                                             ; preds = %1898, %1902
  %.str.5.sink1927 = phi ptr [ @.str.5, %1902 ], [ @.str.2, %1898 ]
  store i32 %1893, ptr %765, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = load i32, ptr %711, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror(i32 noundef %1906, ptr noundef nonnull @.str.4) #11
  %1908 = load i32, ptr %711, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror_debug(i32 noundef %1908, ptr noundef nonnull @.str.4) #11
  %1910 = load i32, ptr %765, align 4, !tbaa !5
  %1911 = call ptr @strerror(i32 noundef %1910) #11
  %1912 = load i32, ptr %765, align 4, !tbaa !5
  %1913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef nonnull %.str.5.sink1927, i32 noundef %1905, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %1907, ptr noundef %1909, ptr noundef %1911, i32 noundef %1912) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1914:                                             ; preds = %1885
  %1915 = add nsw i32 %1886, 2
  store i32 %1915, ptr @test_count, align 4, !tbaa !5
  %1916 = load i8, ptr @kem_preferences_pq_tls_1_3_2023_06, align 8, !tbaa !50
  %1917 = icmp eq i8 %1916, 0
  br i1 %1917, label %1940, label %1918

1918:                                             ; preds = %1914
  %1919 = load i32, ptr %765, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @s2n_print_stacktrace(ptr noundef %1920) #11
  %1922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1923 = trunc nuw i8 %1922 to i1
  br i1 %1923, label %1924, label %1928

1924:                                             ; preds = %1918
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @fileno(ptr noundef %1925) #11
  %1927 = call i32 @isatty(i32 noundef %1926) #11
  %.not878 = icmp eq i32 %1927, 0
  br i1 %.not878, label %1928, label %1929

1928:                                             ; preds = %1924, %1918
  br label %1929

1929:                                             ; preds = %1924, %1928
  %.str.5.sink1936 = phi ptr [ @.str.5, %1928 ], [ @.str.2, %1924 ]
  store i32 %1919, ptr %765, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = load i32, ptr %711, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror(i32 noundef %1932, ptr noundef nonnull @.str.4) #11
  %1934 = load i32, ptr %711, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror_debug(i32 noundef %1934, ptr noundef nonnull @.str.4) #11
  %1936 = load i32, ptr %765, align 4, !tbaa !5
  %1937 = call ptr @strerror(i32 noundef %1936) #11
  %1938 = load i32, ptr %765, align 4, !tbaa !5
  %1939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1930, ptr noundef nonnull %.str.5.sink1936, i32 noundef %1931, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1933, ptr noundef %1935, ptr noundef %1937, i32 noundef %1938) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1940:                                             ; preds = %1914
  %1941 = add nsw i32 %1886, 3
  store i32 %1941, ptr @test_count, align 4, !tbaa !5
  %1942 = load ptr, ptr getelementptr inbounds (i8, ptr @kem_preferences_pq_tls_1_3_2023_06, i64 8), align 8, !tbaa !49
  %1943 = icmp eq ptr %1942, null
  br i1 %1943, label %1966, label %1944

1944:                                             ; preds = %1940
  %1945 = load i32, ptr %765, align 4, !tbaa !5
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = call i32 @s2n_print_stacktrace(ptr noundef %1946) #11
  %1948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1949 = trunc nuw i8 %1948 to i1
  br i1 %1949, label %1950, label %1954

1950:                                             ; preds = %1944
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = call i32 @fileno(ptr noundef %1951) #11
  %1953 = call i32 @isatty(i32 noundef %1952) #11
  %.not879 = icmp eq i32 %1953, 0
  br i1 %.not879, label %1954, label %1955

1954:                                             ; preds = %1950, %1944
  br label %1955

1955:                                             ; preds = %1950, %1954
  %.str.5.sink1945 = phi ptr [ @.str.5, %1954 ], [ @.str.2, %1950 ]
  store i32 %1945, ptr %765, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = load i32, ptr %711, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror(i32 noundef %1958, ptr noundef nonnull @.str.4) #11
  %1960 = load i32, ptr %711, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror_debug(i32 noundef %1960, ptr noundef nonnull @.str.4) #11
  %1962 = load i32, ptr %765, align 4, !tbaa !5
  %1963 = call ptr @strerror(i32 noundef %1962) #11
  %1964 = load i32, ptr %765, align 4, !tbaa !5
  %1965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1956, ptr noundef nonnull %.str.5.sink1945, i32 noundef %1957, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1959, ptr noundef %1961, ptr noundef %1963, i32 noundef %1964) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1966:                                             ; preds = %1940
  %1967 = add nsw i32 %1886, 4
  store i32 %1967, ptr @test_count, align 4, !tbaa !5
  %1968 = load ptr, ptr getelementptr inbounds (i8, ptr @kem_preferences_pq_tls_1_3_2023_06, i64 24), align 8, !tbaa !24
  %1969 = icmp eq ptr %1968, null
  br i1 %1969, label %1970, label %1992

1970:                                             ; preds = %1966
  %1971 = load i32, ptr %765, align 4, !tbaa !5
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = call i32 @s2n_print_stacktrace(ptr noundef %1972) #11
  %1974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1975 = trunc nuw i8 %1974 to i1
  br i1 %1975, label %1976, label %1980

1976:                                             ; preds = %1970
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = call i32 @fileno(ptr noundef %1977) #11
  %1979 = call i32 @isatty(i32 noundef %1978) #11
  %.not1116 = icmp eq i32 %1979, 0
  br i1 %.not1116, label %1980, label %1981

1980:                                             ; preds = %1976, %1970
  br label %1981

1981:                                             ; preds = %1976, %1980
  %.str.5.sink1954 = phi ptr [ @.str.5, %1980 ], [ @.str.2, %1976 ]
  store i32 %1971, ptr %765, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = load i32, ptr %711, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror(i32 noundef %1984, ptr noundef nonnull @.str.4) #11
  %1986 = load i32, ptr %711, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror_debug(i32 noundef %1986, ptr noundef nonnull @.str.4) #11
  %1988 = load i32, ptr %765, align 4, !tbaa !5
  %1989 = call ptr @strerror(i32 noundef %1988) #11
  %1990 = load i32, ptr %765, align 4, !tbaa !5
  %1991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1982, ptr noundef nonnull %.str.5.sink1954, i32 noundef %1983, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %1985, ptr noundef %1987, ptr noundef %1989, i32 noundef %1990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1992:                                             ; preds = %1966
  %1993 = add nsw i32 %1886, 5
  store i32 %1993, ptr @test_count, align 4, !tbaa !5
  %1994 = icmp eq ptr %1968, @pq_kem_groups_r3_2023_06
  br i1 %1994, label %2017, label %1995

1995:                                             ; preds = %1992
  %1996 = load i32, ptr %765, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @s2n_print_stacktrace(ptr noundef %1997) #11
  %1999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2000 = trunc nuw i8 %1999 to i1
  br i1 %2000, label %2001, label %2005

2001:                                             ; preds = %1995
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @fileno(ptr noundef %2002) #11
  %2004 = call i32 @isatty(i32 noundef %2003) #11
  %.not880 = icmp eq i32 %2004, 0
  br i1 %.not880, label %2005, label %2006

2005:                                             ; preds = %2001, %1995
  br label %2006

2006:                                             ; preds = %2001, %2005
  %.str.5.sink1963 = phi ptr [ @.str.5, %2005 ], [ @.str.2, %2001 ]
  store i32 %1996, ptr %765, align 4, !tbaa !5
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = load i32, ptr @test_count, align 4, !tbaa !5
  %2009 = load i32, ptr %711, align 4, !tbaa !5
  %2010 = call ptr @s2n_strerror(i32 noundef %2009, ptr noundef nonnull @.str.4) #11
  %2011 = load i32, ptr %711, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror_debug(i32 noundef %2011, ptr noundef nonnull @.str.4) #11
  %2013 = load i32, ptr %765, align 4, !tbaa !5
  %2014 = call ptr @strerror(i32 noundef %2013) #11
  %2015 = load i32, ptr %765, align 4, !tbaa !5
  %2016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2007, ptr noundef nonnull %.str.5.sink1963, i32 noundef %2008, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2010, ptr noundef %2012, ptr noundef %2014, i32 noundef %2015) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2017:                                             ; preds = %1992
  %2018 = add nsw i32 %1886, 6
  store i32 %2018, ptr @test_count, align 4, !tbaa !5
  %2019 = load i8, ptr getelementptr inbounds (i8, ptr @kem_preferences_pq_tls_1_3_2023_06, i64 16), align 8, !tbaa !22
  %2020 = icmp eq i8 %2019, 6
  br i1 %2020, label %2043, label %2021

2021:                                             ; preds = %2017
  %2022 = load i32, ptr %765, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @s2n_print_stacktrace(ptr noundef %2023) #11
  %2025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2026 = trunc nuw i8 %2025 to i1
  br i1 %2026, label %2027, label %2031

2027:                                             ; preds = %2021
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = call i32 @fileno(ptr noundef %2028) #11
  %2030 = call i32 @isatty(i32 noundef %2029) #11
  %.not881 = icmp eq i32 %2030, 0
  br i1 %.not881, label %2031, label %2032

2031:                                             ; preds = %2027, %2021
  br label %2032

2032:                                             ; preds = %2027, %2031
  %.str.5.sink1972 = phi ptr [ @.str.5, %2031 ], [ @.str.2, %2027 ]
  store i32 %2022, ptr %765, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = load i32, ptr @test_count, align 4, !tbaa !5
  %2035 = load i32, ptr %711, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror(i32 noundef %2035, ptr noundef nonnull @.str.4) #11
  %2037 = load i32, ptr %711, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror_debug(i32 noundef %2037, ptr noundef nonnull @.str.4) #11
  %2039 = load i32, ptr %765, align 4, !tbaa !5
  %2040 = call ptr @strerror(i32 noundef %2039) #11
  %2041 = load i32, ptr %765, align 4, !tbaa !5
  %2042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2033, ptr noundef nonnull %.str.5.sink1972, i32 noundef %2034, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %2036, ptr noundef %2038, ptr noundef %2040, i32 noundef %2041) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2043:                                             ; preds = %2017
  %2044 = add nsw i32 %1886, 7
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = call i32 @s2n_kem_preferences_groups_available(ptr noundef nonnull @kem_preferences_pq_tls_1_3_2023_06, ptr noundef nonnull %9) #11
  %2046 = call zeroext i1 @s2n_result_is_ok(i32 %2045)
  br i1 %2046, label %2069, label %2047

2047:                                             ; preds = %2043
  %2048 = load i32, ptr %765, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @s2n_print_stacktrace(ptr noundef %2049) #11
  %2051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2052 = trunc nuw i8 %2051 to i1
  br i1 %2052, label %2053, label %2057

2053:                                             ; preds = %2047
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @fileno(ptr noundef %2054) #11
  %2056 = call i32 @isatty(i32 noundef %2055) #11
  %.not882 = icmp eq i32 %2056, 0
  br i1 %.not882, label %2057, label %2058

2057:                                             ; preds = %2053, %2047
  br label %2058

2058:                                             ; preds = %2053, %2057
  %.str.5.sink1981 = phi ptr [ @.str.5, %2057 ], [ @.str.2, %2053 ]
  store i32 %2048, ptr %765, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = load i32, ptr %711, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror(i32 noundef %2061, ptr noundef nonnull @.str.4) #11
  %2063 = load i32, ptr %711, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror_debug(i32 noundef %2063, ptr noundef nonnull @.str.4) #11
  %2065 = load i32, ptr %765, align 4, !tbaa !5
  %2066 = call ptr @strerror(i32 noundef %2065) #11
  %2067 = load i32, ptr %765, align 4, !tbaa !5
  %2068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2059, ptr noundef nonnull %.str.5.sink1981, i32 noundef %2060, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %2062, ptr noundef %2064, ptr noundef %2066, i32 noundef %2067) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2069:                                             ; preds = %2043
  %2070 = call zeroext i1 @s2n_libcrypto_supports_evp_kem() #11
  br i1 %2070, label %2071, label %2100

2071:                                             ; preds = %2069
  %2072 = call i32 (...) @s2n_is_evp_apis_supported() #11
  %.not883 = icmp eq i32 %2072, 0
  br i1 %.not883, label %2100, label %2073

2073:                                             ; preds = %2071
  %2074 = load i32, ptr @test_count, align 4, !tbaa !5
  %2075 = add nsw i32 %2074, 1
  store i32 %2075, ptr @test_count, align 4, !tbaa !5
  %2076 = load i32, ptr %9, align 4, !tbaa !5
  %2077 = icmp eq i32 %2076, 6
  br i1 %2077, label %2158, label %2078

2078:                                             ; preds = %2073
  %2079 = load i32, ptr %765, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = call i32 @s2n_print_stacktrace(ptr noundef %2080) #11
  %2082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2083 = trunc nuw i8 %2082 to i1
  br i1 %2083, label %2084, label %2088

2084:                                             ; preds = %2078
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = call i32 @fileno(ptr noundef %2085) #11
  %2087 = call i32 @isatty(i32 noundef %2086) #11
  %.not887 = icmp eq i32 %2087, 0
  br i1 %.not887, label %2088, label %2089

2088:                                             ; preds = %2084, %2078
  br label %2089

2089:                                             ; preds = %2084, %2088
  %.str.5.sink1990 = phi ptr [ @.str.5, %2088 ], [ @.str.2, %2084 ]
  store i32 %2079, ptr %765, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = load i32, ptr %711, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef nonnull @.str.4) #11
  %2094 = load i32, ptr %711, align 4, !tbaa !5
  %2095 = call ptr @s2n_strerror_debug(i32 noundef %2094, ptr noundef nonnull @.str.4) #11
  %2096 = load i32, ptr %765, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #11
  %2098 = load i32, ptr %765, align 4, !tbaa !5
  %2099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef nonnull %.str.5.sink1990, i32 noundef %2091, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %2093, ptr noundef %2095, ptr noundef %2097, i32 noundef %2098) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2100:                                             ; preds = %2071, %2069
  %2101 = call zeroext i1 @s2n_libcrypto_supports_evp_kem() #11
  br i1 %2101, label %2102, label %2131

2102:                                             ; preds = %2100
  %2103 = call i32 (...) @s2n_is_evp_apis_supported() #11
  %.not884 = icmp eq i32 %2103, 0
  br i1 %.not884, label %2104, label %2131

2104:                                             ; preds = %2102
  %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 = load i32, ptr %9, align 4, !tbaa !5
  %2108 = icmp eq i32 %2107, 4
  br i1 %2108, label %2158, label %2109

2109:                                             ; preds = %2104
  %2110 = load i32, ptr %765, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @s2n_print_stacktrace(ptr noundef %2111) #11
  %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) #11
  %2118 = call i32 @isatty(i32 noundef %2117) #11
  %.not885 = icmp eq i32 %2118, 0
  br i1 %.not885, label %2119, label %2120

2119:                                             ; preds = %2115, %2109
  br label %2120

2120:                                             ; preds = %2115, %2119
  %.str.5.sink1999 = phi ptr [ @.str.5, %2119 ], [ @.str.2, %2115 ]
  store i32 %2110, ptr %765, 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 %711, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror(i32 noundef %2123, ptr noundef nonnull @.str.4) #11
  %2125 = load i32, ptr %711, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef nonnull @.str.4) #11
  %2127 = load i32, ptr %765, align 4, !tbaa !5
  %2128 = call ptr @strerror(i32 noundef %2127) #11
  %2129 = load i32, ptr %765, align 4, !tbaa !5
  %2130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2121, ptr noundef nonnull %.str.5.sink1999, i32 noundef %2122, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %2124, ptr noundef %2126, ptr noundef %2128, i32 noundef %2129) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2131:                                             ; preds = %2100, %2102
  %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 = load i32, ptr %9, align 4, !tbaa !5
  %2135 = icmp eq i32 %2134, 0
  br i1 %2135, label %2158, label %2136

2136:                                             ; preds = %2131
  %2137 = load i32, ptr %765, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = call i32 @s2n_print_stacktrace(ptr noundef %2138) #11
  %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) #11
  %2145 = call i32 @isatty(i32 noundef %2144) #11
  %.not886 = icmp eq i32 %2145, 0
  br i1 %.not886, label %2146, label %2147

2146:                                             ; preds = %2142, %2136
  br label %2147

2147:                                             ; preds = %2142, %2146
  %.str.5.sink2008 = phi ptr [ @.str.5, %2146 ], [ @.str.2, %2142 ]
  store i32 %2137, ptr %765, 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 %711, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef nonnull @.str.4) #11
  %2152 = load i32, ptr %711, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror_debug(i32 noundef %2152, ptr noundef nonnull @.str.4) #11
  %2154 = load i32, ptr %765, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #11
  %2156 = load i32, ptr %765, align 4, !tbaa !5
  %2157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef nonnull %.str.5.sink2008, i32 noundef %2149, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %2151, ptr noundef %2153, ptr noundef %2155, i32 noundef %2156) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2158:                                             ; preds = %2104, %2131, %2073
  %2159 = phi i32 [ %2106, %2104 ], [ %2133, %2131 ], [ %2075, %2073 ]
  store ptr null, ptr %8, align 8, !tbaa !9
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr @test_count, align 4, !tbaa !5
  %2161 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.68, ptr noundef nonnull %8) #11
  %2162 = icmp eq i32 %2161, -1
  br i1 %2162, label %2163, label %2185

2163:                                             ; preds = %2158
  %2164 = load i32, ptr %765, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @s2n_print_stacktrace(ptr noundef %2165) #11
  %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) #11
  %2172 = call i32 @isatty(i32 noundef %2171) #11
  %.not1115 = icmp eq i32 %2172, 0
  br i1 %.not1115, label %2173, label %2174

2173:                                             ; preds = %2169, %2163
  br label %2174

2174:                                             ; preds = %2169, %2173
  %.str.5.sink2017 = phi ptr [ @.str.5, %2173 ], [ @.str.2, %2169 ]
  store i32 %2164, ptr %765, 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 %711, align 4, !tbaa !5
  %2178 = call ptr @s2n_strerror(i32 noundef %2177, ptr noundef nonnull @.str.4) #11
  %2179 = load i32, ptr %711, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror_debug(i32 noundef %2179, ptr noundef nonnull @.str.4) #11
  %2181 = load i32, ptr %765, align 4, !tbaa !5
  %2182 = call ptr @strerror(i32 noundef %2181) #11
  %2183 = load i32, ptr %765, align 4, !tbaa !5
  %2184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2175, ptr noundef nonnull %.str.5.sink2017, i32 noundef %2176, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2178, ptr noundef %2180, ptr noundef %2182, i32 noundef %2183) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2185:                                             ; preds = %2158
  %2186 = load i32, ptr @test_count, align 4, !tbaa !5
  %2187 = add nsw i32 %2186, 1
  store i32 %2187, ptr @test_count, align 4, !tbaa !5
  %2188 = load ptr, ptr %8, align 8, !tbaa !9
  %2189 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %2188) #11
  br i1 %2189, label %2190, label %2212

2190:                                             ; preds = %2185
  %2191 = load i32, ptr %765, align 4, !tbaa !5
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @s2n_print_stacktrace(ptr noundef %2192) #11
  %2194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2195 = trunc nuw i8 %2194 to i1
  br i1 %2195, label %2196, label %2200

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

2200:                                             ; preds = %2196, %2190
  br label %2201

2201:                                             ; preds = %2196, %2200
  %.str.5.sink2026 = phi ptr [ @.str.5, %2200 ], [ @.str.2, %2196 ]
  store i32 %2191, ptr %765, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = load i32, ptr %711, align 4, !tbaa !5
  %2205 = call ptr @s2n_strerror(i32 noundef %2204, ptr noundef nonnull @.str.4) #11
  %2206 = load i32, ptr %711, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror_debug(i32 noundef %2206, ptr noundef nonnull @.str.4) #11
  %2208 = load i32, ptr %765, align 4, !tbaa !5
  %2209 = call ptr @strerror(i32 noundef %2208) #11
  %2210 = load i32, ptr %765, align 4, !tbaa !5
  %2211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2202, ptr noundef nonnull %.str.5.sink2026, i32 noundef %2203, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2205, ptr noundef %2207, ptr noundef %2209, i32 noundef %2210) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2212:                                             ; preds = %2185
  %2213 = load i32, ptr @test_count, align 4, !tbaa !5
  %2214 = add nsw i32 %2213, 1
  store i32 %2214, ptr @test_count, align 4, !tbaa !5
  %2215 = load ptr, ptr %8, align 8, !tbaa !9
  %2216 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %2215) #11
  br i1 %2216, label %2217, label %2239

2217:                                             ; preds = %2212
  %2218 = load i32, ptr %765, align 4, !tbaa !5
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = call i32 @s2n_print_stacktrace(ptr noundef %2219) #11
  %2221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2222 = trunc nuw i8 %2221 to i1
  br i1 %2222, label %2223, label %2227

2223:                                             ; preds = %2217
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = call i32 @fileno(ptr noundef %2224) #11
  %2226 = call i32 @isatty(i32 noundef %2225) #11
  %.not1113 = icmp eq i32 %2226, 0
  br i1 %.not1113, label %2227, label %2228

2227:                                             ; preds = %2223, %2217
  br label %2228

2228:                                             ; preds = %2223, %2227
  %.str.5.sink2035 = phi ptr [ @.str.5, %2227 ], [ @.str.2, %2223 ]
  store i32 %2218, ptr %765, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = load i32, ptr @test_count, align 4, !tbaa !5
  %2231 = load i32, ptr %711, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror(i32 noundef %2231, ptr noundef nonnull @.str.4) #11
  %2233 = load i32, ptr %711, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror_debug(i32 noundef %2233, ptr noundef nonnull @.str.4) #11
  %2235 = load i32, ptr %765, align 4, !tbaa !5
  %2236 = call ptr @strerror(i32 noundef %2235) #11
  %2237 = load i32, ptr %765, align 4, !tbaa !5
  %2238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2229, ptr noundef nonnull %.str.5.sink2035, i32 noundef %2230, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2232, ptr noundef %2234, ptr noundef %2236, i32 noundef %2237) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2239:                                             ; preds = %2212
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = add nsw i32 %2240, 1
  store i32 %2241, ptr @test_count, align 4, !tbaa !5
  %2242 = load ptr, ptr %8, align 8, !tbaa !9
  %2243 = getelementptr inbounds i8, ptr %2242, i64 16
  %2244 = load ptr, ptr %2243, align 8, !tbaa !20
  %2245 = load i8, ptr %2244, align 8, !tbaa !50
  %2246 = icmp eq i8 %2245, 0
  br i1 %2246, label %2269, label %2247

2247:                                             ; preds = %2239
  %2248 = load i32, ptr %765, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = call i32 @s2n_print_stacktrace(ptr noundef %2249) #11
  %2251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2252 = trunc nuw i8 %2251 to i1
  br i1 %2252, label %2253, label %2257

2253:                                             ; preds = %2247
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @fileno(ptr noundef %2254) #11
  %2256 = call i32 @isatty(i32 noundef %2255) #11
  %.not888 = icmp eq i32 %2256, 0
  br i1 %.not888, label %2257, label %2258

2257:                                             ; preds = %2253, %2247
  br label %2258

2258:                                             ; preds = %2253, %2257
  %.str.5.sink2044 = phi ptr [ @.str.5, %2257 ], [ @.str.2, %2253 ]
  store i32 %2248, ptr %765, align 4, !tbaa !5
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = load i32, ptr %711, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror(i32 noundef %2261, ptr noundef nonnull @.str.4) #11
  %2263 = load i32, ptr %711, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror_debug(i32 noundef %2263, ptr noundef nonnull @.str.4) #11
  %2265 = load i32, ptr %765, align 4, !tbaa !5
  %2266 = call ptr @strerror(i32 noundef %2265) #11
  %2267 = load i32, ptr %765, align 4, !tbaa !5
  %2268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2259, ptr noundef nonnull %.str.5.sink2044, i32 noundef %2260, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2262, ptr noundef %2264, ptr noundef %2266, i32 noundef %2267) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2269:                                             ; preds = %2239
  %2270 = add nsw i32 %2240, 2
  store i32 %2270, ptr @test_count, align 4, !tbaa !5
  %2271 = getelementptr inbounds i8, ptr %2244, i64 8
  %2272 = load ptr, ptr %2271, align 8, !tbaa !49
  %2273 = icmp eq ptr %2272, null
  br i1 %2273, label %2296, label %2274

2274:                                             ; preds = %2269
  %2275 = load i32, ptr %765, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @s2n_print_stacktrace(ptr noundef %2276) #11
  %2278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2279 = trunc nuw i8 %2278 to i1
  br i1 %2279, label %2280, label %2284

2280:                                             ; preds = %2274
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @fileno(ptr noundef %2281) #11
  %2283 = call i32 @isatty(i32 noundef %2282) #11
  %.not889 = icmp eq i32 %2283, 0
  br i1 %.not889, label %2284, label %2285

2284:                                             ; preds = %2280, %2274
  br label %2285

2285:                                             ; preds = %2280, %2284
  %.str.5.sink2053 = phi ptr [ @.str.5, %2284 ], [ @.str.2, %2280 ]
  store i32 %2275, ptr %765, align 4, !tbaa !5
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = load i32, ptr @test_count, align 4, !tbaa !5
  %2288 = load i32, ptr %711, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror(i32 noundef %2288, ptr noundef nonnull @.str.4) #11
  %2290 = load i32, ptr %711, align 4, !tbaa !5
  %2291 = call ptr @s2n_strerror_debug(i32 noundef %2290, ptr noundef nonnull @.str.4) #11
  %2292 = load i32, ptr %765, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #11
  %2294 = load i32, ptr %765, align 4, !tbaa !5
  %2295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2286, ptr noundef nonnull %.str.5.sink2053, i32 noundef %2287, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %2289, ptr noundef %2291, ptr noundef %2293, i32 noundef %2294) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2296:                                             ; preds = %2269
  %2297 = add nsw i32 %2240, 3
  store i32 %2297, ptr @test_count, align 4, !tbaa !5
  %2298 = getelementptr inbounds i8, ptr %2244, i64 24
  %2299 = load ptr, ptr %2298, align 8, !tbaa !24
  %2300 = icmp eq ptr %2299, null
  br i1 %2300, label %2323, label %2301

2301:                                             ; preds = %2296
  %2302 = load i32, ptr %765, align 4, !tbaa !5
  %2303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2304 = call i32 @s2n_print_stacktrace(ptr noundef %2303) #11
  %2305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2306 = trunc nuw i8 %2305 to i1
  br i1 %2306, label %2307, label %2311

2307:                                             ; preds = %2301
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = call i32 @fileno(ptr noundef %2308) #11
  %2310 = call i32 @isatty(i32 noundef %2309) #11
  %.not890 = icmp eq i32 %2310, 0
  br i1 %.not890, label %2311, label %2312

2311:                                             ; preds = %2307, %2301
  br label %2312

2312:                                             ; preds = %2307, %2311
  %.str.5.sink2062 = phi ptr [ @.str.5, %2311 ], [ @.str.2, %2307 ]
  store i32 %2302, ptr %765, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = load i32, ptr @test_count, align 4, !tbaa !5
  %2315 = load i32, ptr %711, align 4, !tbaa !5
  %2316 = call ptr @s2n_strerror(i32 noundef %2315, ptr noundef nonnull @.str.4) #11
  %2317 = load i32, ptr %711, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror_debug(i32 noundef %2317, ptr noundef nonnull @.str.4) #11
  %2319 = load i32, ptr %765, align 4, !tbaa !5
  %2320 = call ptr @strerror(i32 noundef %2319) #11
  %2321 = load i32, ptr %765, align 4, !tbaa !5
  %2322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2313, ptr noundef nonnull %.str.5.sink2062, i32 noundef %2314, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %2316, ptr noundef %2318, ptr noundef %2320, i32 noundef %2321) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2323:                                             ; preds = %2296
  %2324 = add nsw i32 %2240, 4
  store i32 %2324, ptr @test_count, align 4, !tbaa !5
  %2325 = getelementptr inbounds i8, ptr %2244, i64 16
  %2326 = load i8, ptr %2325, align 8, !tbaa !22
  %2327 = icmp eq i8 %2326, 0
  br i1 %2327, label %2350, label %2328

2328:                                             ; preds = %2323
  %2329 = load i32, ptr %765, align 4, !tbaa !5
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = call i32 @s2n_print_stacktrace(ptr noundef %2330) #11
  %2332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2333 = trunc nuw i8 %2332 to i1
  br i1 %2333, label %2334, label %2338

2334:                                             ; preds = %2328
  %2335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2336 = call i32 @fileno(ptr noundef %2335) #11
  %2337 = call i32 @isatty(i32 noundef %2336) #11
  %.not891 = icmp eq i32 %2337, 0
  br i1 %.not891, label %2338, label %2339

2338:                                             ; preds = %2334, %2328
  br label %2339

2339:                                             ; preds = %2334, %2338
  %.str.5.sink2071 = phi ptr [ @.str.5, %2338 ], [ @.str.2, %2334 ]
  store i32 %2329, ptr %765, align 4, !tbaa !5
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = load i32, ptr @test_count, align 4, !tbaa !5
  %2342 = load i32, ptr %711, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror(i32 noundef %2342, ptr noundef nonnull @.str.4) #11
  %2344 = load i32, ptr %711, align 4, !tbaa !5
  %2345 = call ptr @s2n_strerror_debug(i32 noundef %2344, ptr noundef nonnull @.str.4) #11
  %2346 = load i32, ptr %765, align 4, !tbaa !5
  %2347 = call ptr @strerror(i32 noundef %2346) #11
  %2348 = load i32, ptr %765, align 4, !tbaa !5
  %2349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2340, ptr noundef nonnull %.str.5.sink2071, i32 noundef %2341, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %2343, ptr noundef %2345, ptr noundef %2347, i32 noundef %2348) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2350:                                             ; preds = %2323
  store ptr null, ptr %8, align 8, !tbaa !9
  %2351 = add nsw i32 %2240, 5
  store i32 %2351, ptr @test_count, align 4, !tbaa !5
  %2352 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.71, ptr noundef nonnull %8) #11
  %2353 = icmp eq i32 %2352, -1
  br i1 %2353, label %2354, label %2376

2354:                                             ; preds = %2350
  %2355 = load i32, ptr %765, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @s2n_print_stacktrace(ptr noundef %2356) #11
  %2358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2359 = trunc nuw i8 %2358 to i1
  br i1 %2359, label %2360, label %2364

2360:                                             ; preds = %2354
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = call i32 @fileno(ptr noundef %2361) #11
  %2363 = call i32 @isatty(i32 noundef %2362) #11
  %.not1112 = icmp eq i32 %2363, 0
  br i1 %.not1112, label %2364, label %2365

2364:                                             ; preds = %2360, %2354
  br label %2365

2365:                                             ; preds = %2360, %2364
  %.str.5.sink2080 = phi ptr [ @.str.5, %2364 ], [ @.str.2, %2360 ]
  store i32 %2355, ptr %765, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = load i32, ptr @test_count, align 4, !tbaa !5
  %2368 = load i32, ptr %711, align 4, !tbaa !5
  %2369 = call ptr @s2n_strerror(i32 noundef %2368, ptr noundef nonnull @.str.4) #11
  %2370 = load i32, ptr %711, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror_debug(i32 noundef %2370, ptr noundef nonnull @.str.4) #11
  %2372 = load i32, ptr %765, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #11
  %2374 = load i32, ptr %765, align 4, !tbaa !5
  %2375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2366, ptr noundef nonnull %.str.5.sink2080, i32 noundef %2367, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %2369, ptr noundef %2371, ptr noundef %2373, i32 noundef %2374) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2376:                                             ; preds = %2350
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr @test_count, align 4, !tbaa !5
  %2379 = load ptr, ptr %8, align 8, !tbaa !9
  %2380 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef %2379) #11
  br i1 %2380, label %2403, label %2381

2381:                                             ; preds = %2376
  %2382 = load i32, ptr %765, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @s2n_print_stacktrace(ptr noundef %2383) #11
  %2385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2386 = trunc nuw i8 %2385 to i1
  br i1 %2386, label %2387, label %2391

2387:                                             ; preds = %2381
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @fileno(ptr noundef %2388) #11
  %2390 = call i32 @isatty(i32 noundef %2389) #11
  %.not892 = icmp eq i32 %2390, 0
  br i1 %.not892, label %2391, label %2392

2391:                                             ; preds = %2387, %2381
  br label %2392

2392:                                             ; preds = %2387, %2391
  %.str.5.sink2089 = phi ptr [ @.str.5, %2391 ], [ @.str.2, %2387 ]
  store i32 %2382, ptr %765, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = load i32, ptr %711, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror(i32 noundef %2395, ptr noundef nonnull @.str.4) #11
  %2397 = load i32, ptr %711, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror_debug(i32 noundef %2397, ptr noundef nonnull @.str.4) #11
  %2399 = load i32, ptr %765, align 4, !tbaa !5
  %2400 = call ptr @strerror(i32 noundef %2399) #11
  %2401 = load i32, ptr %765, align 4, !tbaa !5
  %2402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef nonnull %.str.5.sink2089, i32 noundef %2394, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2396, ptr noundef %2398, ptr noundef %2400, i32 noundef %2401) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2403:                                             ; preds = %2376
  %2404 = load i32, ptr @test_count, align 4, !tbaa !5
  %2405 = add nsw i32 %2404, 1
  store i32 %2405, ptr @test_count, align 4, !tbaa !5
  %2406 = load ptr, ptr %8, align 8, !tbaa !9
  %2407 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %2406) #11
  br i1 %2407, label %2408, label %2430

2408:                                             ; preds = %2403
  %2409 = load i32, ptr %765, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = call i32 @s2n_print_stacktrace(ptr noundef %2410) #11
  %2412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2413 = trunc nuw i8 %2412 to i1
  br i1 %2413, label %2414, label %2418

2414:                                             ; preds = %2408
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @fileno(ptr noundef %2415) #11
  %2417 = call i32 @isatty(i32 noundef %2416) #11
  %.not1111 = icmp eq i32 %2417, 0
  br i1 %.not1111, label %2418, label %2419

2418:                                             ; preds = %2414, %2408
  br label %2419

2419:                                             ; preds = %2414, %2418
  %.str.5.sink2098 = phi ptr [ @.str.5, %2418 ], [ @.str.2, %2414 ]
  store i32 %2409, ptr %765, align 4, !tbaa !5
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = load i32, ptr %711, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror(i32 noundef %2422, ptr noundef nonnull @.str.4) #11
  %2424 = load i32, ptr %711, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror_debug(i32 noundef %2424, ptr noundef nonnull @.str.4) #11
  %2426 = load i32, ptr %765, align 4, !tbaa !5
  %2427 = call ptr @strerror(i32 noundef %2426) #11
  %2428 = load i32, ptr %765, align 4, !tbaa !5
  %2429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2420, ptr noundef nonnull %.str.5.sink2098, i32 noundef %2421, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2423, ptr noundef %2425, ptr noundef %2427, i32 noundef %2428) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2430:                                             ; preds = %2403
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = add nsw i32 %2431, 1
  store i32 %2432, ptr @test_count, align 4, !tbaa !5
  %2433 = load ptr, ptr %8, align 8, !tbaa !9
  %2434 = getelementptr inbounds i8, ptr %2433, i64 16
  %2435 = load ptr, ptr %2434, align 8, !tbaa !20
  %2436 = load i8, ptr %2435, align 8, !tbaa !50
  %2437 = icmp eq i8 %2436, 0
  br i1 %2437, label %2460, label %2438

2438:                                             ; preds = %2430
  %2439 = load i32, ptr %765, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440) #11
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc nuw i8 %2442 to i1
  br i1 %2443, label %2444, label %2448

2444:                                             ; preds = %2438
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #11
  %2447 = call i32 @isatty(i32 noundef %2446) #11
  %.not893 = icmp eq i32 %2447, 0
  br i1 %.not893, label %2448, label %2449

2448:                                             ; preds = %2444, %2438
  br label %2449

2449:                                             ; preds = %2444, %2448
  %.str.5.sink2107 = phi ptr [ @.str.5, %2448 ], [ @.str.2, %2444 ]
  store i32 %2439, ptr %765, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = load i32, ptr %711, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror(i32 noundef %2452, ptr noundef nonnull @.str.4) #11
  %2454 = load i32, ptr %711, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef nonnull @.str.4) #11
  %2456 = load i32, ptr %765, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #11
  %2458 = load i32, ptr %765, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef nonnull %.str.5.sink2107, i32 noundef %2451, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2453, ptr noundef %2455, ptr noundef %2457, i32 noundef %2458) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2460:                                             ; preds = %2430
  %2461 = add nsw i32 %2431, 2
  store i32 %2461, ptr @test_count, align 4, !tbaa !5
  %2462 = getelementptr inbounds i8, ptr %2435, i64 8
  %2463 = load ptr, ptr %2462, align 8, !tbaa !49
  %2464 = icmp eq ptr %2463, null
  br i1 %2464, label %2487, label %2465

2465:                                             ; preds = %2460
  %2466 = load i32, ptr %765, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467) #11
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc nuw i8 %2469 to i1
  br i1 %2470, label %2471, label %2475

2471:                                             ; preds = %2465
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #11
  %2474 = call i32 @isatty(i32 noundef %2473) #11
  %.not894 = icmp eq i32 %2474, 0
  br i1 %.not894, label %2475, label %2476

2475:                                             ; preds = %2471, %2465
  br label %2476

2476:                                             ; preds = %2471, %2475
  %.str.5.sink2116 = phi ptr [ @.str.5, %2475 ], [ @.str.2, %2471 ]
  store i32 %2466, ptr %765, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = load i32, ptr @test_count, align 4, !tbaa !5
  %2479 = load i32, ptr %711, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef nonnull @.str.4) #11
  %2481 = load i32, ptr %711, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror_debug(i32 noundef %2481, ptr noundef nonnull @.str.4) #11
  %2483 = load i32, ptr %765, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #11
  %2485 = load i32, ptr %765, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2477, ptr noundef nonnull %.str.5.sink2116, i32 noundef %2478, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2480, ptr noundef %2482, ptr noundef %2484, i32 noundef %2485) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2487:                                             ; preds = %2460
  %2488 = add nsw i32 %2431, 3
  store i32 %2488, ptr @test_count, align 4, !tbaa !5
  %2489 = getelementptr inbounds i8, ptr %2435, i64 24
  %2490 = load ptr, ptr %2489, align 8, !tbaa !24
  %2491 = icmp eq ptr %2490, null
  br i1 %2491, label %2514, label %2492

2492:                                             ; preds = %2487
  %2493 = load i32, ptr %765, align 4, !tbaa !5
  %2494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2495 = call i32 @s2n_print_stacktrace(ptr noundef %2494) #11
  %2496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2497 = trunc nuw i8 %2496 to i1
  br i1 %2497, label %2498, label %2502

2498:                                             ; preds = %2492
  %2499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2500 = call i32 @fileno(ptr noundef %2499) #11
  %2501 = call i32 @isatty(i32 noundef %2500) #11
  %.not895 = icmp eq i32 %2501, 0
  br i1 %.not895, label %2502, label %2503

2502:                                             ; preds = %2498, %2492
  br label %2503

2503:                                             ; preds = %2498, %2502
  %.str.5.sink2125 = phi ptr [ @.str.5, %2502 ], [ @.str.2, %2498 ]
  store i32 %2493, ptr %765, align 4, !tbaa !5
  %2504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2505 = load i32, ptr @test_count, align 4, !tbaa !5
  %2506 = load i32, ptr %711, align 4, !tbaa !5
  %2507 = call ptr @s2n_strerror(i32 noundef %2506, ptr noundef nonnull @.str.4) #11
  %2508 = load i32, ptr %711, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror_debug(i32 noundef %2508, ptr noundef nonnull @.str.4) #11
  %2510 = load i32, ptr %765, align 4, !tbaa !5
  %2511 = call ptr @strerror(i32 noundef %2510) #11
  %2512 = load i32, ptr %765, align 4, !tbaa !5
  %2513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2504, ptr noundef nonnull %.str.5.sink2125, i32 noundef %2505, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2507, ptr noundef %2509, ptr noundef %2511, i32 noundef %2512) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2514:                                             ; preds = %2487
  %2515 = add nsw i32 %2431, 4
  store i32 %2515, ptr @test_count, align 4, !tbaa !5
  %2516 = getelementptr inbounds i8, ptr %2435, i64 16
  %2517 = load i8, ptr %2516, align 8, !tbaa !22
  %2518 = icmp eq i8 %2517, 0
  br i1 %2518, label %2541, label %2519

2519:                                             ; preds = %2514
  %2520 = load i32, ptr %765, align 4, !tbaa !5
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @s2n_print_stacktrace(ptr noundef %2521) #11
  %2523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2524 = trunc nuw i8 %2523 to i1
  br i1 %2524, label %2525, label %2529

2525:                                             ; preds = %2519
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = call i32 @fileno(ptr noundef %2526) #11
  %2528 = call i32 @isatty(i32 noundef %2527) #11
  %.not896 = icmp eq i32 %2528, 0
  br i1 %.not896, label %2529, label %2530

2529:                                             ; preds = %2525, %2519
  br label %2530

2530:                                             ; preds = %2525, %2529
  %.str.5.sink2134 = phi ptr [ @.str.5, %2529 ], [ @.str.2, %2525 ]
  store i32 %2520, ptr %765, align 4, !tbaa !5
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = load i32, ptr %711, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror(i32 noundef %2533, ptr noundef nonnull @.str.4) #11
  %2535 = load i32, ptr %711, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror_debug(i32 noundef %2535, ptr noundef nonnull @.str.4) #11
  %2537 = load i32, ptr %765, align 4, !tbaa !5
  %2538 = call ptr @strerror(i32 noundef %2537) #11
  %2539 = load i32, ptr %765, align 4, !tbaa !5
  %2540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2531, ptr noundef nonnull %.str.5.sink2134, i32 noundef %2532, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2534, ptr noundef %2536, ptr noundef %2538, i32 noundef %2539) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2541:                                             ; preds = %2514
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 11475, ptr nonnull %10) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(11475) %10, ptr noundef nonnull align 16 dereferenceable(11475) @__const.main.tls12_only_security_policy_strings, i64 11475, i1 false)
  br label %2545

2542:                                             ; preds = %2573
  %2543 = add nuw nsw i64 %.08211188, 1
  %exitcond1289.not = icmp eq i64 %2543, 45
  br i1 %exitcond1289.not, label %2544, label %2545, !llvm.loop !51

2544:                                             ; preds = %2542
  call void @llvm.lifetime.start.p0(i64 8925, ptr nonnull %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(8925) %11, ptr noundef nonnull align 16 dereferenceable(8925) @__const.main.tls13_security_policy_strings, i64 8925, i1 false)
  br label %2606

2545:                                             ; preds = %2541, %2542
  %.08211188 = phi i64 [ 0, %2541 ], [ %2543, %2542 ]
  store ptr null, ptr %8, align 8, !tbaa !9
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %2547 = add nsw i32 %2546, 1
  store i32 %2547, ptr @test_count, align 4, !tbaa !5
  %2548 = getelementptr inbounds [45 x [255 x i8]], ptr %10, i64 0, i64 %.08211188
  %2549 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull %2548, ptr noundef nonnull %8) #11
  %2550 = icmp eq i32 %2549, -1
  br i1 %2550, label %2551, label %2573

2551:                                             ; preds = %2545
  %2552 = load i32, ptr %765, align 4, !tbaa !5
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = call i32 @s2n_print_stacktrace(ptr noundef %2553) #11
  %2555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2556 = trunc nuw i8 %2555 to i1
  br i1 %2556, label %2557, label %2561

2557:                                             ; preds = %2551
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = call i32 @fileno(ptr noundef %2558) #11
  %2560 = call i32 @isatty(i32 noundef %2559) #11
  %.not1110 = icmp eq i32 %2560, 0
  br i1 %.not1110, label %2561, label %2562

2561:                                             ; preds = %2557, %2551
  br label %2562

2562:                                             ; preds = %2557, %2561
  %.str.5.sink2143 = phi ptr [ @.str.5, %2561 ], [ @.str.2, %2557 ]
  store i32 %2552, ptr %765, align 4, !tbaa !5
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = load i32, ptr %711, align 4, !tbaa !5
  %2566 = call ptr @s2n_strerror(i32 noundef %2565, ptr noundef nonnull @.str.4) #11
  %2567 = load i32, ptr %711, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror_debug(i32 noundef %2567, ptr noundef nonnull @.str.4) #11
  %2569 = load i32, ptr %765, align 4, !tbaa !5
  %2570 = call ptr @strerror(i32 noundef %2569) #11
  %2571 = load i32, ptr %765, align 4, !tbaa !5
  %2572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2563, ptr noundef nonnull %.str.5.sink2143, i32 noundef %2564, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2566, ptr noundef %2568, ptr noundef %2570, i32 noundef %2571) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2573:                                             ; preds = %2545
  %2574 = load i32, ptr @test_count, align 4, !tbaa !5
  %2575 = add nsw i32 %2574, 1
  store i32 %2575, ptr @test_count, align 4, !tbaa !5
  %2576 = load ptr, ptr %8, align 8, !tbaa !9
  %2577 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %2576) #11
  br i1 %2577, label %2578, label %2542

2578:                                             ; preds = %2573
  %2579 = load i32, ptr %765, align 4, !tbaa !5
  %2580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2581 = call i32 @s2n_print_stacktrace(ptr noundef %2580) #11
  %2582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2583 = trunc nuw i8 %2582 to i1
  br i1 %2583, label %2584, label %2588

2584:                                             ; preds = %2578
  %2585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2586 = call i32 @fileno(ptr noundef %2585) #11
  %2587 = call i32 @isatty(i32 noundef %2586) #11
  %.not1109 = icmp eq i32 %2587, 0
  br i1 %.not1109, label %2588, label %2589

2588:                                             ; preds = %2584, %2578
  br label %2589

2589:                                             ; preds = %2584, %2588
  %.str.5.sink2152 = phi ptr [ @.str.5, %2588 ], [ @.str.2, %2584 ]
  store i32 %2579, ptr %765, align 4, !tbaa !5
  %2590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2591 = load i32, ptr @test_count, align 4, !tbaa !5
  %2592 = load i32, ptr %711, align 4, !tbaa !5
  %2593 = call ptr @s2n_strerror(i32 noundef %2592, ptr noundef nonnull @.str.4) #11
  %2594 = load i32, ptr %711, align 4, !tbaa !5
  %2595 = call ptr @s2n_strerror_debug(i32 noundef %2594, ptr noundef nonnull @.str.4) #11
  %2596 = load i32, ptr %765, align 4, !tbaa !5
  %2597 = call ptr @strerror(i32 noundef %2596) #11
  %2598 = load i32, ptr %765, align 4, !tbaa !5
  %2599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2590, ptr noundef nonnull %.str.5.sink2152, i32 noundef %2591, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %2593, ptr noundef %2595, ptr noundef %2597, i32 noundef %2598) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2600:                                             ; preds = %2634
  %2601 = add nuw nsw i64 %.08221189, 1
  %exitcond1290.not = icmp eq i64 %2601, 35
  br i1 %exitcond1290.not, label %2602, label %2606, !llvm.loop !52

2602:                                             ; preds = %2600
  call void @llvm.lifetime.end.p0(i64 8925, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 11475, ptr nonnull %10) #11
  store ptr null, ptr %8, align 8, !tbaa !9
  %2603 = load i32, ptr @test_count, align 4, !tbaa !5
  %2604 = add nsw i32 %2603, 1
  store i32 %2604, ptr @test_count, align 4, !tbaa !5
  %2605 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef null) #11
  br i1 %2605, label %2661, label %2683

2606:                                             ; preds = %2544, %2600
  %.08221189 = phi i64 [ 0, %2544 ], [ %2601, %2600 ]
  store ptr null, ptr %8, align 8, !tbaa !9
  %2607 = load i32, ptr @test_count, align 4, !tbaa !5
  %2608 = add nsw i32 %2607, 1
  store i32 %2608, ptr @test_count, align 4, !tbaa !5
  %2609 = getelementptr inbounds [35 x [255 x i8]], ptr %11, i64 0, i64 %.08221189
  %2610 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull %2609, ptr noundef nonnull %8) #11
  %2611 = icmp eq i32 %2610, -1
  br i1 %2611, label %2612, label %2634

2612:                                             ; preds = %2606
  %2613 = load i32, ptr %765, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @s2n_print_stacktrace(ptr noundef %2614) #11
  %2616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2617 = trunc nuw i8 %2616 to i1
  br i1 %2617, label %2618, label %2622

2618:                                             ; preds = %2612
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @fileno(ptr noundef %2619) #11
  %2621 = call i32 @isatty(i32 noundef %2620) #11
  %.not1108 = icmp eq i32 %2621, 0
  br i1 %.not1108, label %2622, label %2623

2622:                                             ; preds = %2618, %2612
  br label %2623

2623:                                             ; preds = %2618, %2622
  %.str.5.sink2161 = phi ptr [ @.str.5, %2622 ], [ @.str.2, %2618 ]
  store i32 %2613, ptr %765, align 4, !tbaa !5
  %2624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2625 = load i32, ptr @test_count, align 4, !tbaa !5
  %2626 = load i32, ptr %711, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror(i32 noundef %2626, ptr noundef nonnull @.str.4) #11
  %2628 = load i32, ptr %711, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror_debug(i32 noundef %2628, ptr noundef nonnull @.str.4) #11
  %2630 = load i32, ptr %765, align 4, !tbaa !5
  %2631 = call ptr @strerror(i32 noundef %2630) #11
  %2632 = load i32, ptr %765, align 4, !tbaa !5
  %2633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2624, ptr noundef nonnull %.str.5.sink2161, i32 noundef %2625, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %2627, ptr noundef %2629, ptr noundef %2631, i32 noundef %2632) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2634:                                             ; preds = %2606
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = load ptr, ptr %8, align 8, !tbaa !9
  %2638 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %2637) #11
  br i1 %2638, label %2600, label %2639

2639:                                             ; preds = %2634
  %2640 = load i32, ptr %765, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @s2n_print_stacktrace(ptr noundef %2641) #11
  %2643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2644 = trunc nuw i8 %2643 to i1
  br i1 %2644, label %2645, label %2649

2645:                                             ; preds = %2639
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = call i32 @fileno(ptr noundef %2646) #11
  %2648 = call i32 @isatty(i32 noundef %2647) #11
  %.not1107 = icmp eq i32 %2648, 0
  br i1 %.not1107, label %2649, label %2650

2649:                                             ; preds = %2645, %2639
  br label %2650

2650:                                             ; preds = %2645, %2649
  %.str.5.sink2170 = phi ptr [ @.str.5, %2649 ], [ @.str.2, %2645 ]
  store i32 %2640, ptr %765, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = load i32, ptr %711, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef nonnull @.str.4) #11
  %2655 = load i32, ptr %711, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror_debug(i32 noundef %2655, ptr noundef nonnull @.str.4) #11
  %2657 = load i32, ptr %765, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #11
  %2659 = load i32, ptr %765, align 4, !tbaa !5
  %2660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef nonnull %.str.5.sink2170, i32 noundef %2652, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %2654, ptr noundef %2656, ptr noundef %2658, i32 noundef %2659) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2661:                                             ; preds = %2602
  %2662 = load i32, ptr %765, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @s2n_print_stacktrace(ptr noundef %2663) #11
  %2665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2666 = trunc nuw i8 %2665 to i1
  br i1 %2666, label %2667, label %2671

2667:                                             ; preds = %2661
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = call i32 @fileno(ptr noundef %2668) #11
  %2670 = call i32 @isatty(i32 noundef %2669) #11
  %.not1106 = icmp eq i32 %2670, 0
  br i1 %.not1106, label %2671, label %2672

2671:                                             ; preds = %2667, %2661
  br label %2672

2672:                                             ; preds = %2667, %2671
  %.str.5.sink2179 = phi ptr [ @.str.5, %2671 ], [ @.str.2, %2667 ]
  store i32 %2662, ptr %765, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = load i32, ptr @test_count, align 4, !tbaa !5
  %2675 = load i32, ptr %711, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror(i32 noundef %2675, ptr noundef nonnull @.str.4) #11
  %2677 = load i32, ptr %711, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef nonnull @.str.4) #11
  %2679 = load i32, ptr %765, align 4, !tbaa !5
  %2680 = call ptr @strerror(i32 noundef %2679) #11
  %2681 = load i32, ptr %765, align 4, !tbaa !5
  %2682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2673, ptr noundef nonnull %.str.5.sink2179, i32 noundef %2674, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 395, ptr noundef %2676, ptr noundef %2678, ptr noundef %2680, i32 noundef %2681) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2683:                                             ; preds = %2602
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = add nsw i32 %2684, 1
  store i32 %2685, ptr @test_count, align 4, !tbaa !5
  %2686 = load ptr, ptr %8, align 8, !tbaa !9
  %2687 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %2686) #11
  br i1 %2687, label %2688, label %2710

2688:                                             ; preds = %2683
  %2689 = load i32, ptr %765, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690) #11
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2693 = trunc nuw i8 %2692 to i1
  br i1 %2693, label %2694, label %2698

2694:                                             ; preds = %2688
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @fileno(ptr noundef %2695) #11
  %2697 = call i32 @isatty(i32 noundef %2696) #11
  %.not1105 = icmp eq i32 %2697, 0
  br i1 %.not1105, label %2698, label %2699

2698:                                             ; preds = %2694, %2688
  br label %2699

2699:                                             ; preds = %2694, %2698
  %.str.5.sink2188 = phi ptr [ @.str.5, %2698 ], [ @.str.2, %2694 ]
  store i32 %2689, ptr %765, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = load i32, ptr %711, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef nonnull @.str.4) #11
  %2704 = load i32, ptr %711, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef nonnull @.str.4) #11
  %2706 = load i32, ptr %765, align 4, !tbaa !5
  %2707 = call ptr @strerror(i32 noundef %2706) #11
  %2708 = load i32, ptr %765, align 4, !tbaa !5
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef nonnull %.str.5.sink2188, i32 noundef %2701, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %2703, ptr noundef %2705, ptr noundef %2707, i32 noundef %2708) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2710:                                             ; preds = %2683
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = add nsw i32 %2711, 1
  store i32 %2712, ptr @test_count, align 4, !tbaa !5
  %2713 = load ptr, ptr %8, align 8, !tbaa !9
  %2714 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %2713) #11
  br i1 %2714, label %2715, label %2737

2715:                                             ; preds = %2710
  %2716 = load i32, ptr %765, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @s2n_print_stacktrace(ptr noundef %2717) #11
  %2719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2720 = trunc nuw i8 %2719 to i1
  br i1 %2720, label %2721, label %2725

2721:                                             ; preds = %2715
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @fileno(ptr noundef %2722) #11
  %2724 = call i32 @isatty(i32 noundef %2723) #11
  %.not1104 = icmp eq i32 %2724, 0
  br i1 %.not1104, label %2725, label %2726

2725:                                             ; preds = %2721, %2715
  br label %2726

2726:                                             ; preds = %2721, %2725
  %.str.5.sink2197 = phi ptr [ @.str.5, %2725 ], [ @.str.2, %2721 ]
  store i32 %2716, ptr %765, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = load i32, ptr %711, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror(i32 noundef %2729, ptr noundef nonnull @.str.4) #11
  %2731 = load i32, ptr %711, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror_debug(i32 noundef %2731, ptr noundef nonnull @.str.4) #11
  %2733 = load i32, ptr %765, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #11
  %2735 = load i32, ptr %765, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef nonnull %.str.5.sink2197, i32 noundef %2728, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %2730, ptr noundef %2732, ptr noundef %2734, i32 noundef %2735) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2737:                                             ; preds = %2710
  %2738 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_chacha20_poly1305, i64 56), align 8, !tbaa !53
  %2739 = call zeroext i1 %2738() #11
  br i1 %2739, label %.preheader1153, label %..loopexit_crit_edge

..loopexit_crit_edge:                             ; preds = %2737
  %.pre1299 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %.loopexit

.preheader1153:                                   ; preds = %2737
  %2740 = load ptr, ptr @security_policy_selection, align 8, !tbaa !15
  %.not8971192 = icmp eq ptr %2740, null
  %.pre1300 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not8971192, label %.loopexit, label %.lr.ph1194

.lr.ph1194:                                       ; preds = %.preheader1153, %2864
  %2741 = phi i32 [ %2865, %2864 ], [ %.pre1300, %.preheader1153 ]
  %2742 = phi ptr [ %2867, %2864 ], [ @security_policy_selection, %.preheader1153 ]
  %.08231193 = phi i64 [ %2866, %2864 ], [ 0, %.preheader1153 ]
  %2743 = getelementptr inbounds i8, ptr %2742, i64 8
  %2744 = load ptr, ptr %2743, align 8, !tbaa !19
  %2745 = add nsw i32 %2741, 1
  store i32 %2745, ptr @test_count, align 4, !tbaa !5
  %2746 = icmp eq ptr %2744, null
  br i1 %2746, label %2747, label %2769

2747:                                             ; preds = %.lr.ph1194
  %2748 = load i32, ptr %765, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @s2n_print_stacktrace(ptr noundef %2749) #11
  %2751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2752 = trunc nuw i8 %2751 to i1
  br i1 %2752, label %2753, label %2757

2753:                                             ; preds = %2747
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = call i32 @fileno(ptr noundef %2754) #11
  %2756 = call i32 @isatty(i32 noundef %2755) #11
  %.not1103 = icmp eq i32 %2756, 0
  br i1 %.not1103, label %2757, label %2758

2757:                                             ; preds = %2753, %2747
  br label %2758

2758:                                             ; preds = %2753, %2757
  %.str.5.sink2206 = phi ptr [ @.str.5, %2757 ], [ @.str.2, %2753 ]
  store i32 %2748, ptr %765, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = load i32, ptr %711, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef nonnull @.str.4) #11
  %2763 = load i32, ptr %711, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef nonnull @.str.4) #11
  %2765 = load i32, ptr %765, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #11
  %2767 = load i32, ptr %765, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef nonnull %.str.5.sink2206, i32 noundef %2760, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %2762, ptr noundef %2764, ptr noundef %2766, i32 noundef %2767) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2769:                                             ; preds = %.lr.ph1194
  %2770 = getelementptr inbounds i8, ptr %2744, i64 8
  %2771 = load ptr, ptr %2770, align 8, !tbaa !31
  %2772 = add nsw i32 %2741, 2
  store i32 %2772, ptr @test_count, align 4, !tbaa !5
  %2773 = icmp eq ptr %2771, null
  br i1 %2773, label %2774, label %2796

2774:                                             ; preds = %2769
  %2775 = load i32, ptr %765, align 4, !tbaa !5
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @s2n_print_stacktrace(ptr noundef %2776) #11
  %2778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2779 = trunc nuw i8 %2778 to i1
  br i1 %2779, label %2780, label %2784

2780:                                             ; preds = %2774
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = call i32 @fileno(ptr noundef %2781) #11
  %2783 = call i32 @isatty(i32 noundef %2782) #11
  %.not1102 = icmp eq i32 %2783, 0
  br i1 %.not1102, label %2784, label %2785

2784:                                             ; preds = %2780, %2774
  br label %2785

2785:                                             ; preds = %2780, %2784
  %.str.5.sink2215 = phi ptr [ @.str.5, %2784 ], [ @.str.2, %2780 ]
  store i32 %2775, ptr %765, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = load i32, ptr @test_count, align 4, !tbaa !5
  %2788 = load i32, ptr %711, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror(i32 noundef %2788, ptr noundef nonnull @.str.4) #11
  %2790 = load i32, ptr %711, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror_debug(i32 noundef %2790, ptr noundef nonnull @.str.4) #11
  %2792 = load i32, ptr %765, align 4, !tbaa !5
  %2793 = call ptr @strerror(i32 noundef %2792) #11
  %2794 = load i32, ptr %765, align 4, !tbaa !5
  %2795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2786, ptr noundef nonnull %.str.5.sink2215, i32 noundef %2787, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %2789, ptr noundef %2791, ptr noundef %2793, i32 noundef %2794) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2796:                                             ; preds = %2769
  %2797 = getelementptr inbounds i8, ptr %2771, i64 16
  %2798 = load i8, ptr %2797, align 8, !tbaa !55, !range !13, !noundef !14
  %2799 = trunc nuw i8 %2798 to i1
  br i1 %2799, label %.preheader1152, label %2864

.preheader1152:                                   ; preds = %2796
  %2800 = load i16, ptr %2771, align 8, !tbaa !32
  %.not1241 = icmp eq i16 %2800, 0
  br i1 %.not1241, label %.critedge, label %.lr.ph1191

.lr.ph1191:                                       ; preds = %.preheader1152
  %2801 = getelementptr inbounds i8, ptr %2771, i64 8
  br label %2807

2802:                                             ; preds = %2836
  %2803 = add nuw nsw i64 %.08261190, 1
  %2804 = load i16, ptr %2771, align 8, !tbaa !32
  %2805 = zext i16 %2804 to i64
  %2806 = icmp ult i64 %2803, %2805
  br i1 %2806, label %2807, label %.critedge.loopexit, !llvm.loop !56

2807:                                             ; preds = %.lr.ph1191, %2802
  %.08261190 = phi i64 [ 0, %.lr.ph1191 ], [ %2803, %2802 ]
  %2808 = load ptr, ptr %2801, align 8, !tbaa !34
  %2809 = getelementptr inbounds ptr, ptr %2808, i64 %.08261190
  %2810 = load ptr, ptr %2809, align 8, !tbaa !9
  %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 = icmp eq ptr %2810, null
  br i1 %2813, label %2814, label %2836

2814:                                             ; preds = %2807
  %2815 = load i32, ptr %765, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = call i32 @s2n_print_stacktrace(ptr noundef %2816) #11
  %2818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2819 = trunc nuw i8 %2818 to i1
  br i1 %2819, label %2820, label %2824

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

2824:                                             ; preds = %2820, %2814
  br label %2825

2825:                                             ; preds = %2820, %2824
  %.str.5.sink2224 = phi ptr [ @.str.5, %2824 ], [ @.str.2, %2820 ]
  store i32 %2815, ptr %765, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = load i32, ptr %711, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror(i32 noundef %2828, ptr noundef nonnull @.str.4) #11
  %2830 = load i32, ptr %711, align 4, !tbaa !5
  %2831 = call ptr @s2n_strerror_debug(i32 noundef %2830, ptr noundef nonnull @.str.4) #11
  %2832 = load i32, ptr %765, align 4, !tbaa !5
  %2833 = call ptr @strerror(i32 noundef %2832) #11
  %2834 = load i32, ptr %765, align 4, !tbaa !5
  %2835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2826, ptr noundef nonnull %.str.5.sink2224, i32 noundef %2827, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %2829, ptr noundef %2831, ptr noundef %2833, i32 noundef %2834) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2836:                                             ; preds = %2807
  %2837 = call zeroext i1 @s2n_cipher_suite_uses_chacha20_alg(ptr noundef nonnull %2810) #11
  br i1 %2837, label %2838, label %2802

2838:                                             ; preds = %2836
  %2839 = load i32, ptr @test_count, align 4, !tbaa !5
  %2840 = add nsw i32 %2839, 1
  store i32 %2840, ptr @test_count, align 4, !tbaa !5
  br label %2864

.critedge.loopexit:                               ; preds = %2802
  %.pre1298 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %.critedge

.critedge:                                        ; preds = %.preheader1152, %.critedge.loopexit
  %2841 = phi i32 [ %.pre1298, %.critedge.loopexit ], [ %2772, %.preheader1152 ]
  %2842 = add nsw i32 %2841, 1
  store i32 %2842, ptr @test_count, align 4, !tbaa !5
  %2843 = load i32, ptr %765, align 4, !tbaa !5
  %2844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2845 = call i32 @s2n_print_stacktrace(ptr noundef %2844) #11
  %2846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2847 = trunc nuw i8 %2846 to i1
  br i1 %2847, label %2848, label %2852

2848:                                             ; preds = %.critedge
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @fileno(ptr noundef %2849) #11
  %2851 = call i32 @isatty(i32 noundef %2850) #11
  %.not1100 = icmp eq i32 %2851, 0
  br i1 %.not1100, label %2852, label %2853

2852:                                             ; preds = %2848, %.critedge
  br label %2853

2853:                                             ; preds = %2848, %2852
  %.str.5.sink2233 = phi ptr [ @.str.5, %2852 ], [ @.str.2, %2848 ]
  store i32 %2843, ptr %765, align 4, !tbaa !5
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = load i32, ptr @test_count, align 4, !tbaa !5
  %2856 = load i32, ptr %711, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror(i32 noundef %2856, ptr noundef nonnull @.str.4) #11
  %2858 = load i32, ptr %711, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror_debug(i32 noundef %2858, ptr noundef nonnull @.str.4) #11
  %2860 = load i32, ptr %765, align 4, !tbaa !5
  %2861 = call ptr @strerror(i32 noundef %2860) #11
  %2862 = load i32, ptr %765, align 4, !tbaa !5
  %2863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2854, ptr noundef nonnull %.str.5.sink2233, i32 noundef %2855, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %2857, ptr noundef %2859, ptr noundef %2861, i32 noundef %2862) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2864:                                             ; preds = %2838, %2796
  %2865 = phi i32 [ %2840, %2838 ], [ %2772, %2796 ]
  %2866 = add i64 %.08231193, 1
  %2867 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %2866
  %2868 = load ptr, ptr %2867, align 8, !tbaa !15
  %.not897 = icmp eq ptr %2868, null
  br i1 %.not897, label %.loopexit, label %.lr.ph1194, !llvm.loop !57

.loopexit:                                        ; preds = %2864, %..loopexit_crit_edge, %.preheader1153
  %2869 = phi i32 [ %.pre1299, %..loopexit_crit_edge ], [ %.pre1300, %.preheader1153 ], [ %2865, %2864 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  %2870 = load i64, ptr @__const.main.fake_suites, align 8
  store i64 %2870, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #11
  store i16 1, ptr %13, align 8, !tbaa !32
  %2871 = getelementptr inbounds i8, ptr %13, i64 8
  store ptr %12, ptr %2871, align 8, !tbaa !34
  %2872 = getelementptr inbounds i8, ptr %13, i64 16
  store i8 0, ptr %2872, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 0, i64 40, i1 false)
  store i8 1, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #11
  store i8 31, ptr %15, align 8, !tbaa !58
  %2873 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %13, ptr %2873, align 8, !tbaa !31
  %2874 = getelementptr inbounds i8, ptr %15, i64 16
  store ptr %14, ptr %2874, align 8, !tbaa !20
  %2875 = getelementptr inbounds i8, ptr %15, i64 24
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(35) %2875, i8 0, i64 35, i1 false)
  store ptr %15, ptr %8, align 8, !tbaa !9
  %2876 = add nsw i32 %2869, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = call zeroext i1 @s2n_ecc_is_extension_required(ptr noundef nonnull %15) #11
  br i1 %2877, label %2900, label %2878

2878:                                             ; preds = %.loopexit
  %2879 = load i32, ptr %765, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @s2n_print_stacktrace(ptr noundef %2880) #11
  %2882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2883 = trunc nuw i8 %2882 to i1
  br i1 %2883, label %2884, label %2888

2884:                                             ; preds = %2878
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = call i32 @fileno(ptr noundef %2885) #11
  %2887 = call i32 @isatty(i32 noundef %2886) #11
  %.not898 = icmp eq i32 %2887, 0
  br i1 %.not898, label %2888, label %2889

2888:                                             ; preds = %2884, %2878
  br label %2889

2889:                                             ; preds = %2884, %2888
  %.str.5.sink2242 = phi ptr [ @.str.5, %2888 ], [ @.str.2, %2884 ]
  store i32 %2879, ptr %765, align 4, !tbaa !5
  %2890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2891 = load i32, ptr @test_count, align 4, !tbaa !5
  %2892 = load i32, ptr %711, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror(i32 noundef %2892, ptr noundef nonnull @.str.4) #11
  %2894 = load i32, ptr %711, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror_debug(i32 noundef %2894, ptr noundef nonnull @.str.4) #11
  %2896 = load i32, ptr %765, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #11
  %2898 = load i32, ptr %765, align 4, !tbaa !5
  %2899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2890, ptr noundef nonnull %.str.5.sink2242, i32 noundef %2891, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %2893, ptr noundef %2895, ptr noundef %2897, i32 noundef %2898) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2900:                                             ; preds = %.loopexit
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = add nsw i32 %2901, 1
  store i32 %2902, ptr @test_count, align 4, !tbaa !5
  %2903 = load ptr, ptr %8, align 8, !tbaa !9
  %2904 = call zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef %2903) #11
  br i1 %2904, label %2905, label %2927

2905:                                             ; preds = %2900
  %2906 = load i32, ptr %765, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = call i32 @s2n_print_stacktrace(ptr noundef %2907) #11
  %2909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2910 = trunc nuw i8 %2909 to i1
  br i1 %2910, label %2911, label %2915

2911:                                             ; preds = %2905
  %2912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2913 = call i32 @fileno(ptr noundef %2912) #11
  %2914 = call i32 @isatty(i32 noundef %2913) #11
  %.not1099 = icmp eq i32 %2914, 0
  br i1 %.not1099, label %2915, label %2916

2915:                                             ; preds = %2911, %2905
  br label %2916

2916:                                             ; preds = %2911, %2915
  %.str.5.sink2251 = phi ptr [ @.str.5, %2915 ], [ @.str.2, %2911 ]
  store i32 %2906, ptr %765, align 4, !tbaa !5
  %2917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = load i32, ptr %711, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror(i32 noundef %2919, ptr noundef nonnull @.str.4) #11
  %2921 = load i32, ptr %711, align 4, !tbaa !5
  %2922 = call ptr @s2n_strerror_debug(i32 noundef %2921, ptr noundef nonnull @.str.4) #11
  %2923 = load i32, ptr %765, align 4, !tbaa !5
  %2924 = call ptr @strerror(i32 noundef %2923) #11
  %2925 = load i32, ptr %765, align 4, !tbaa !5
  %2926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2917, ptr noundef nonnull %.str.5.sink2251, i32 noundef %2918, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %2920, ptr noundef %2922, ptr noundef %2924, i32 noundef %2925) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2927:                                             ; preds = %2900
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = add nsw i32 %2928, 1
  store i32 %2929, ptr @test_count, align 4, !tbaa !5
  %2930 = load ptr, ptr %8, align 8, !tbaa !9
  %2931 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %2930) #11
  br i1 %2931, label %2954, label %2932

2932:                                             ; preds = %2927
  %2933 = load i32, ptr %765, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @s2n_print_stacktrace(ptr noundef %2934) #11
  %2936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2937 = trunc nuw i8 %2936 to i1
  br i1 %2937, label %2938, label %2942

2938:                                             ; preds = %2932
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @fileno(ptr noundef %2939) #11
  %2941 = call i32 @isatty(i32 noundef %2940) #11
  %.not899 = icmp eq i32 %2941, 0
  br i1 %.not899, label %2942, label %2943

2942:                                             ; preds = %2938, %2932
  br label %2943

2943:                                             ; preds = %2938, %2942
  %.str.5.sink2260 = phi ptr [ @.str.5, %2942 ], [ @.str.2, %2938 ]
  store i32 %2933, ptr %765, align 4, !tbaa !5
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = load i32, ptr %711, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef nonnull @.str.4) #11
  %2948 = load i32, ptr %711, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef nonnull @.str.4) #11
  %2950 = load i32, ptr %765, align 4, !tbaa !5
  %2951 = call ptr @strerror(i32 noundef %2950) #11
  %2952 = load i32, ptr %765, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2944, ptr noundef nonnull %.str.5.sink2260, i32 noundef %2945, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 456, ptr noundef %2947, ptr noundef %2949, ptr noundef %2951, i32 noundef %2952) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2954:                                             ; preds = %2927
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  %2955 = call ptr @s2n_config_new() #11
  %2956 = load i32, ptr @test_count, align 4, !tbaa !5
  %2957 = add nsw i32 %2956, 1
  store i32 %2957, ptr @test_count, align 4, !tbaa !5
  %2958 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2955, ptr noundef nonnull @.str.79) #11
  %2959 = icmp eq i32 %2958, -1
  br i1 %2959, label %2960, label %2982

2960:                                             ; preds = %2954
  %2961 = load i32, ptr %765, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @s2n_print_stacktrace(ptr noundef %2962) #11
  %2964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2965 = trunc nuw i8 %2964 to i1
  br i1 %2965, label %2966, label %2970

2966:                                             ; preds = %2960
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = call i32 @fileno(ptr noundef %2967) #11
  %2969 = call i32 @isatty(i32 noundef %2968) #11
  %.not1098 = icmp eq i32 %2969, 0
  br i1 %.not1098, label %2970, label %2971

2970:                                             ; preds = %2966, %2960
  br label %2971

2971:                                             ; preds = %2966, %2970
  %.str.5.sink2269 = phi ptr [ @.str.5, %2970 ], [ @.str.2, %2966 ]
  store i32 %2961, ptr %765, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = load i32, ptr %711, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror(i32 noundef %2974, ptr noundef nonnull @.str.4) #11
  %2976 = load i32, ptr %711, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror_debug(i32 noundef %2976, ptr noundef nonnull @.str.4) #11
  %2978 = load i32, ptr %765, align 4, !tbaa !5
  %2979 = call ptr @strerror(i32 noundef %2978) #11
  %2980 = load i32, ptr %765, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef nonnull %.str.5.sink2269, i32 noundef %2973, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 461, ptr noundef %2975, ptr noundef %2977, ptr noundef %2979, i32 noundef %2980) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2982:                                             ; preds = %2954
  %2983 = load i32, ptr @test_count, align 4, !tbaa !5
  %2984 = add nsw i32 %2983, 1
  store i32 %2984, ptr @test_count, align 4, !tbaa !5
  %2985 = getelementptr inbounds i8, ptr %2955, i64 96
  %2986 = load ptr, ptr %2985, align 8, !tbaa !59
  %2987 = icmp eq ptr %2986, @security_policy_20170210
  br i1 %2987, label %3010, label %2988

2988:                                             ; preds = %2982
  %2989 = load i32, ptr %765, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = call i32 @s2n_print_stacktrace(ptr noundef %2990) #11
  %2992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2993 = trunc nuw i8 %2992 to i1
  br i1 %2993, label %2994, label %2998

2994:                                             ; preds = %2988
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = call i32 @fileno(ptr noundef %2995) #11
  %2997 = call i32 @isatty(i32 noundef %2996) #11
  %.not900 = icmp eq i32 %2997, 0
  br i1 %.not900, label %2998, label %2999

2998:                                             ; preds = %2994, %2988
  br label %2999

2999:                                             ; preds = %2994, %2998
  %.str.5.sink2278 = phi ptr [ @.str.5, %2998 ], [ @.str.2, %2994 ]
  store i32 %2989, ptr %765, align 4, !tbaa !5
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = load i32, ptr @test_count, align 4, !tbaa !5
  %3002 = load i32, ptr %711, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror(i32 noundef %3002, ptr noundef nonnull @.str.4) #11
  %3004 = load i32, ptr %711, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror_debug(i32 noundef %3004, ptr noundef nonnull @.str.4) #11
  %3006 = load i32, ptr %765, align 4, !tbaa !5
  %3007 = call ptr @strerror(i32 noundef %3006) #11
  %3008 = load i32, ptr %765, align 4, !tbaa !5
  %3009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3000, ptr noundef nonnull %.str.5.sink2278, i32 noundef %3001, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 462, ptr noundef %3003, ptr noundef %3005, ptr noundef %3007, i32 noundef %3008) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3010:                                             ; preds = %2982
  %3011 = add nsw i32 %2983, 2
  store i32 %3011, ptr @test_count, align 4, !tbaa !5
  %3012 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170210, i64 8), align 8, !tbaa !31
  %3013 = icmp eq ptr %3012, @cipher_preferences_20170210
  br i1 %3013, label %3036, label %3014

3014:                                             ; preds = %3010
  %3015 = load i32, ptr %765, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @s2n_print_stacktrace(ptr noundef %3016) #11
  %3018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3019 = trunc nuw i8 %3018 to i1
  br i1 %3019, label %3020, label %3024

3020:                                             ; preds = %3014
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @fileno(ptr noundef %3021) #11
  %3023 = call i32 @isatty(i32 noundef %3022) #11
  %.not901 = icmp eq i32 %3023, 0
  br i1 %.not901, label %3024, label %3025

3024:                                             ; preds = %3020, %3014
  br label %3025

3025:                                             ; preds = %3020, %3024
  %.str.5.sink2287 = phi ptr [ @.str.5, %3024 ], [ @.str.2, %3020 ]
  store i32 %3015, ptr %765, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = load i32, ptr @test_count, align 4, !tbaa !5
  %3028 = load i32, ptr %711, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror(i32 noundef %3028, ptr noundef nonnull @.str.4) #11
  %3030 = load i32, ptr %711, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror_debug(i32 noundef %3030, ptr noundef nonnull @.str.4) #11
  %3032 = load i32, ptr %765, align 4, !tbaa !5
  %3033 = call ptr @strerror(i32 noundef %3032) #11
  %3034 = load i32, ptr %765, align 4, !tbaa !5
  %3035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3026, ptr noundef nonnull %.str.5.sink2287, i32 noundef %3027, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %3029, ptr noundef %3031, ptr noundef %3033, i32 noundef %3034) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3036:                                             ; preds = %3010
  %3037 = add nsw i32 %2983, 3
  store i32 %3037, ptr @test_count, align 4, !tbaa !5
  %3038 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170210, i64 16), align 8, !tbaa !20
  %3039 = icmp eq ptr %3038, @kem_preferences_null
  br i1 %3039, label %3062, label %3040

3040:                                             ; preds = %3036
  %3041 = load i32, ptr %765, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @s2n_print_stacktrace(ptr noundef %3042) #11
  %3044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3045 = trunc nuw i8 %3044 to i1
  br i1 %3045, label %3046, label %3050

3046:                                             ; preds = %3040
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = call i32 @fileno(ptr noundef %3047) #11
  %3049 = call i32 @isatty(i32 noundef %3048) #11
  %.not902 = icmp eq i32 %3049, 0
  br i1 %.not902, label %3050, label %3051

3050:                                             ; preds = %3046, %3040
  br label %3051

3051:                                             ; preds = %3046, %3050
  %.str.5.sink2296 = phi ptr [ @.str.5, %3050 ], [ @.str.2, %3046 ]
  store i32 %3041, ptr %765, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = load i32, ptr %711, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef nonnull @.str.4) #11
  %3056 = load i32, ptr %711, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef nonnull @.str.4) #11
  %3058 = load i32, ptr %765, align 4, !tbaa !5
  %3059 = call ptr @strerror(i32 noundef %3058) #11
  %3060 = load i32, ptr %765, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3052, ptr noundef nonnull %.str.5.sink2296, i32 noundef %3053, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %3055, ptr noundef %3057, ptr noundef %3059, i32 noundef %3060) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3062:                                             ; preds = %3036
  %3063 = add nsw i32 %2983, 4
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170210, i64 24), align 8, !tbaa !38
  %3065 = icmp eq ptr %3064, @s2n_signature_preferences_20140601
  br i1 %3065, label %3088, label %3066

3066:                                             ; preds = %3062
  %3067 = load i32, ptr %765, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @s2n_print_stacktrace(ptr noundef %3068) #11
  %3070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3071 = trunc nuw i8 %3070 to i1
  br i1 %3071, label %3072, label %3076

3072:                                             ; preds = %3066
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = call i32 @fileno(ptr noundef %3073) #11
  %3075 = call i32 @isatty(i32 noundef %3074) #11
  %.not903 = icmp eq i32 %3075, 0
  br i1 %.not903, label %3076, label %3077

3076:                                             ; preds = %3072, %3066
  br label %3077

3077:                                             ; preds = %3072, %3076
  %.str.5.sink2305 = phi ptr [ @.str.5, %3076 ], [ @.str.2, %3072 ]
  store i32 %3067, ptr %765, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = load i32, ptr %711, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror(i32 noundef %3080, ptr noundef nonnull @.str.4) #11
  %3082 = load i32, ptr %711, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror_debug(i32 noundef %3082, ptr noundef nonnull @.str.4) #11
  %3084 = load i32, ptr %765, align 4, !tbaa !5
  %3085 = call ptr @strerror(i32 noundef %3084) #11
  %3086 = load i32, ptr %765, align 4, !tbaa !5
  %3087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3078, ptr noundef nonnull %.str.5.sink2305, i32 noundef %3079, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %3081, ptr noundef %3083, ptr noundef %3085, i32 noundef %3086) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3088:                                             ; preds = %3062
  %3089 = add nsw i32 %2983, 5
  store i32 %3089, ptr @test_count, align 4, !tbaa !5
  %3090 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170210, i64 40), align 8, !tbaa !64
  %3091 = icmp eq ptr %3090, @s2n_ecc_preferences_20140601
  br i1 %3091, label %3114, label %3092

3092:                                             ; preds = %3088
  %3093 = load i32, ptr %765, align 4, !tbaa !5
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = call i32 @s2n_print_stacktrace(ptr noundef %3094) #11
  %3096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3097 = trunc nuw i8 %3096 to i1
  br i1 %3097, label %3098, label %3102

3098:                                             ; preds = %3092
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = call i32 @fileno(ptr noundef %3099) #11
  %3101 = call i32 @isatty(i32 noundef %3100) #11
  %.not904 = icmp eq i32 %3101, 0
  br i1 %.not904, label %3102, label %3103

3102:                                             ; preds = %3098, %3092
  br label %3103

3103:                                             ; preds = %3098, %3102
  %.str.5.sink2314 = phi ptr [ @.str.5, %3102 ], [ @.str.2, %3098 ]
  store i32 %3093, ptr %765, align 4, !tbaa !5
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = load i32, ptr @test_count, align 4, !tbaa !5
  %3106 = load i32, ptr %711, align 4, !tbaa !5
  %3107 = call ptr @s2n_strerror(i32 noundef %3106, ptr noundef nonnull @.str.4) #11
  %3108 = load i32, ptr %711, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror_debug(i32 noundef %3108, ptr noundef nonnull @.str.4) #11
  %3110 = load i32, ptr %765, align 4, !tbaa !5
  %3111 = call ptr @strerror(i32 noundef %3110) #11
  %3112 = load i32, ptr %765, align 4, !tbaa !5
  %3113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3104, ptr noundef nonnull %.str.5.sink2314, i32 noundef %3105, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %3107, ptr noundef %3109, ptr noundef %3111, i32 noundef %3112) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3114:                                             ; preds = %3088
  %3115 = add nsw i32 %2983, 6
  store i32 %3115, ptr @test_count, align 4, !tbaa !5
  %3116 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.86) #11
  %3117 = icmp eq i32 %3116, -1
  br i1 %3117, label %3118, label %3140

3118:                                             ; preds = %3114
  %3119 = load i32, ptr %765, align 4, !tbaa !5
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = call i32 @s2n_print_stacktrace(ptr noundef %3120) #11
  %3122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3123 = trunc nuw i8 %3122 to i1
  br i1 %3123, label %3124, label %3128

3124:                                             ; preds = %3118
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = call i32 @fileno(ptr noundef %3125) #11
  %3127 = call i32 @isatty(i32 noundef %3126) #11
  %.not1097 = icmp eq i32 %3127, 0
  br i1 %.not1097, label %3128, label %3129

3128:                                             ; preds = %3124, %3118
  br label %3129

3129:                                             ; preds = %3124, %3128
  %.str.5.sink2323 = phi ptr [ @.str.5, %3128 ], [ @.str.2, %3124 ]
  store i32 %3119, ptr %765, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = load i32, ptr @test_count, align 4, !tbaa !5
  %3132 = load i32, ptr %711, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror(i32 noundef %3132, ptr noundef nonnull @.str.4) #11
  %3134 = load i32, ptr %711, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror_debug(i32 noundef %3134, ptr noundef nonnull @.str.4) #11
  %3136 = load i32, ptr %765, align 4, !tbaa !5
  %3137 = call ptr @strerror(i32 noundef %3136) #11
  %3138 = load i32, ptr %765, align 4, !tbaa !5
  %3139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3130, ptr noundef nonnull %.str.5.sink2323, i32 noundef %3131, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 468, ptr noundef %3133, ptr noundef %3135, ptr noundef %3137, i32 noundef %3138) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3140:                                             ; preds = %3114
  %3141 = load i32, ptr @test_count, align 4, !tbaa !5
  %3142 = add nsw i32 %3141, 1
  store i32 %3142, ptr @test_count, align 4, !tbaa !5
  %3143 = load ptr, ptr %2985, align 8, !tbaa !59
  %3144 = icmp eq ptr %3143, @security_policy_20190801
  br i1 %3144, label %3167, label %3145

3145:                                             ; preds = %3140
  %3146 = load i32, ptr %765, align 4, !tbaa !5
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = call i32 @s2n_print_stacktrace(ptr noundef %3147) #11
  %3149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3150 = trunc nuw i8 %3149 to i1
  br i1 %3150, label %3151, label %3155

3151:                                             ; preds = %3145
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = call i32 @fileno(ptr noundef %3152) #11
  %3154 = call i32 @isatty(i32 noundef %3153) #11
  %.not905 = icmp eq i32 %3154, 0
  br i1 %.not905, label %3155, label %3156

3155:                                             ; preds = %3151, %3145
  br label %3156

3156:                                             ; preds = %3151, %3155
  %.str.5.sink2332 = phi ptr [ @.str.5, %3155 ], [ @.str.2, %3151 ]
  store i32 %3146, ptr %765, align 4, !tbaa !5
  %3157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = load i32, ptr %711, align 4, !tbaa !5
  %3160 = call ptr @s2n_strerror(i32 noundef %3159, ptr noundef nonnull @.str.4) #11
  %3161 = load i32, ptr %711, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror_debug(i32 noundef %3161, ptr noundef nonnull @.str.4) #11
  %3163 = load i32, ptr %765, align 4, !tbaa !5
  %3164 = call ptr @strerror(i32 noundef %3163) #11
  %3165 = load i32, ptr %765, align 4, !tbaa !5
  %3166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3157, ptr noundef nonnull %.str.5.sink2332, i32 noundef %3158, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %3160, ptr noundef %3162, ptr noundef %3164, i32 noundef %3165) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3167:                                             ; preds = %3140
  %3168 = add nsw i32 %3141, 2
  store i32 %3168, ptr @test_count, align 4, !tbaa !5
  %3169 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20190801, i64 8), align 8, !tbaa !31
  %3170 = icmp eq ptr %3169, @cipher_preferences_20190801
  br i1 %3170, label %3193, label %3171

3171:                                             ; preds = %3167
  %3172 = load i32, ptr %765, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = call i32 @s2n_print_stacktrace(ptr noundef %3173) #11
  %3175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3176 = trunc nuw i8 %3175 to i1
  br i1 %3176, label %3177, label %3181

3177:                                             ; preds = %3171
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @fileno(ptr noundef %3178) #11
  %3180 = call i32 @isatty(i32 noundef %3179) #11
  %.not906 = icmp eq i32 %3180, 0
  br i1 %.not906, label %3181, label %3182

3181:                                             ; preds = %3177, %3171
  br label %3182

3182:                                             ; preds = %3177, %3181
  %.str.5.sink2341 = phi ptr [ @.str.5, %3181 ], [ @.str.2, %3177 ]
  store i32 %3172, ptr %765, align 4, !tbaa !5
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = load i32, ptr @test_count, align 4, !tbaa !5
  %3185 = load i32, ptr %711, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror(i32 noundef %3185, ptr noundef nonnull @.str.4) #11
  %3187 = load i32, ptr %711, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror_debug(i32 noundef %3187, ptr noundef nonnull @.str.4) #11
  %3189 = load i32, ptr %765, align 4, !tbaa !5
  %3190 = call ptr @strerror(i32 noundef %3189) #11
  %3191 = load i32, ptr %765, align 4, !tbaa !5
  %3192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3183, ptr noundef nonnull %.str.5.sink2341, i32 noundef %3184, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %3186, ptr noundef %3188, ptr noundef %3190, i32 noundef %3191) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3193:                                             ; preds = %3167
  %3194 = add nsw i32 %3141, 3
  store i32 %3194, ptr @test_count, align 4, !tbaa !5
  %3195 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20190801, i64 16), align 8, !tbaa !20
  %3196 = icmp eq ptr %3195, @kem_preferences_null
  br i1 %3196, label %3219, label %3197

3197:                                             ; preds = %3193
  %3198 = load i32, ptr %765, align 4, !tbaa !5
  %3199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3200 = call i32 @s2n_print_stacktrace(ptr noundef %3199) #11
  %3201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3202 = trunc nuw i8 %3201 to i1
  br i1 %3202, label %3203, label %3207

3203:                                             ; preds = %3197
  %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
  %.not907 = icmp eq i32 %3206, 0
  br i1 %.not907, label %3207, label %3208

3207:                                             ; preds = %3203, %3197
  br label %3208

3208:                                             ; preds = %3203, %3207
  %.str.5.sink2350 = phi ptr [ @.str.5, %3207 ], [ @.str.2, %3203 ]
  store i32 %3198, ptr %765, align 4, !tbaa !5
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = load i32, ptr @test_count, align 4, !tbaa !5
  %3211 = load i32, ptr %711, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror(i32 noundef %3211, ptr noundef nonnull @.str.4) #11
  %3213 = load i32, ptr %711, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror_debug(i32 noundef %3213, ptr noundef nonnull @.str.4) #11
  %3215 = load i32, ptr %765, align 4, !tbaa !5
  %3216 = call ptr @strerror(i32 noundef %3215) #11
  %3217 = load i32, ptr %765, align 4, !tbaa !5
  %3218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3209, ptr noundef nonnull %.str.5.sink2350, i32 noundef %3210, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 471, ptr noundef %3212, ptr noundef %3214, ptr noundef %3216, i32 noundef %3217) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3219:                                             ; preds = %3193
  %3220 = add nsw i32 %3141, 4
  store i32 %3220, ptr @test_count, align 4, !tbaa !5
  %3221 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20190801, i64 24), align 8, !tbaa !38
  %3222 = icmp eq ptr %3221, @s2n_signature_preferences_20200207
  br i1 %3222, label %3245, label %3223

3223:                                             ; preds = %3219
  %3224 = load i32, ptr %765, align 4, !tbaa !5
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @s2n_print_stacktrace(ptr noundef %3225) #11
  %3227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3228 = trunc nuw i8 %3227 to i1
  br i1 %3228, label %3229, label %3233

3229:                                             ; preds = %3223
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @fileno(ptr noundef %3230) #11
  %3232 = call i32 @isatty(i32 noundef %3231) #11
  %.not908 = icmp eq i32 %3232, 0
  br i1 %.not908, label %3233, label %3234

3233:                                             ; preds = %3229, %3223
  br label %3234

3234:                                             ; preds = %3229, %3233
  %.str.5.sink2359 = phi ptr [ @.str.5, %3233 ], [ @.str.2, %3229 ]
  store i32 %3224, ptr %765, align 4, !tbaa !5
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = load i32, ptr @test_count, align 4, !tbaa !5
  %3237 = load i32, ptr %711, align 4, !tbaa !5
  %3238 = call ptr @s2n_strerror(i32 noundef %3237, ptr noundef nonnull @.str.4) #11
  %3239 = load i32, ptr %711, align 4, !tbaa !5
  %3240 = call ptr @s2n_strerror_debug(i32 noundef %3239, ptr noundef nonnull @.str.4) #11
  %3241 = load i32, ptr %765, align 4, !tbaa !5
  %3242 = call ptr @strerror(i32 noundef %3241) #11
  %3243 = load i32, ptr %765, align 4, !tbaa !5
  %3244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3235, ptr noundef nonnull %.str.5.sink2359, i32 noundef %3236, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %3238, ptr noundef %3240, ptr noundef %3242, i32 noundef %3243) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3245:                                             ; preds = %3219
  %3246 = add nsw i32 %3141, 5
  store i32 %3246, ptr @test_count, align 4, !tbaa !5
  %3247 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20190801, i64 40), align 8, !tbaa !64
  %3248 = icmp eq ptr %3247, @s2n_ecc_preferences_20200310
  br i1 %3248, label %3271, label %3249

3249:                                             ; preds = %3245
  %3250 = load i32, ptr %765, align 4, !tbaa !5
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = call i32 @s2n_print_stacktrace(ptr noundef %3251) #11
  %3253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3254 = trunc nuw i8 %3253 to i1
  br i1 %3254, label %3255, label %3259

3255:                                             ; preds = %3249
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = call i32 @fileno(ptr noundef %3256) #11
  %3258 = call i32 @isatty(i32 noundef %3257) #11
  %.not909 = icmp eq i32 %3258, 0
  br i1 %.not909, label %3259, label %3260

3259:                                             ; preds = %3255, %3249
  br label %3260

3260:                                             ; preds = %3255, %3259
  %.str.5.sink2368 = phi ptr [ @.str.5, %3259 ], [ @.str.2, %3255 ]
  store i32 %3250, ptr %765, align 4, !tbaa !5
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = load i32, ptr @test_count, align 4, !tbaa !5
  %3263 = load i32, ptr %711, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror(i32 noundef %3263, ptr noundef nonnull @.str.4) #11
  %3265 = load i32, ptr %711, align 4, !tbaa !5
  %3266 = call ptr @s2n_strerror_debug(i32 noundef %3265, ptr noundef nonnull @.str.4) #11
  %3267 = load i32, ptr %765, align 4, !tbaa !5
  %3268 = call ptr @strerror(i32 noundef %3267) #11
  %3269 = load i32, ptr %765, align 4, !tbaa !5
  %3270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3261, ptr noundef nonnull %.str.5.sink2368, i32 noundef %3262, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3264, ptr noundef %3266, ptr noundef %3268, i32 noundef %3269) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3271:                                             ; preds = %3245
  %3272 = add nsw i32 %3141, 6
  store i32 %3272, ptr @test_count, align 4, !tbaa !5
  %3273 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.92) #11
  %3274 = icmp eq i32 %3273, -1
  br i1 %3274, label %3275, label %3297

3275:                                             ; preds = %3271
  %3276 = load i32, ptr %765, align 4, !tbaa !5
  %3277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3278 = call i32 @s2n_print_stacktrace(ptr noundef %3277) #11
  %3279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3280 = trunc nuw i8 %3279 to i1
  br i1 %3280, label %3281, label %3285

3281:                                             ; preds = %3275
  %3282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3283 = call i32 @fileno(ptr noundef %3282) #11
  %3284 = call i32 @isatty(i32 noundef %3283) #11
  %.not1096 = icmp eq i32 %3284, 0
  br i1 %.not1096, label %3285, label %3286

3285:                                             ; preds = %3281, %3275
  br label %3286

3286:                                             ; preds = %3281, %3285
  %.str.5.sink2377 = phi ptr [ @.str.5, %3285 ], [ @.str.2, %3281 ]
  store i32 %3276, ptr %765, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = load i32, ptr %711, align 4, !tbaa !5
  %3290 = call ptr @s2n_strerror(i32 noundef %3289, ptr noundef nonnull @.str.4) #11
  %3291 = load i32, ptr %711, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror_debug(i32 noundef %3291, ptr noundef nonnull @.str.4) #11
  %3293 = load i32, ptr %765, align 4, !tbaa !5
  %3294 = call ptr @strerror(i32 noundef %3293) #11
  %3295 = load i32, ptr %765, align 4, !tbaa !5
  %3296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3287, ptr noundef nonnull %.str.5.sink2377, i32 noundef %3288, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 475, ptr noundef %3290, ptr noundef %3292, ptr noundef %3294, i32 noundef %3295) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3297:                                             ; preds = %3271
  %3298 = load i32, ptr @test_count, align 4, !tbaa !5
  %3299 = add nsw i32 %3298, 1
  store i32 %3299, ptr @test_count, align 4, !tbaa !5
  %3300 = load ptr, ptr %2985, align 8, !tbaa !59
  %3301 = icmp eq ptr %3300, @security_policy_null
  br i1 %3301, label %3324, label %3302

3302:                                             ; preds = %3297
  %3303 = load i32, ptr %765, align 4, !tbaa !5
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = call i32 @s2n_print_stacktrace(ptr noundef %3304) #11
  %3306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3307 = trunc nuw i8 %3306 to i1
  br i1 %3307, label %3308, label %3312

3308:                                             ; preds = %3302
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = call i32 @fileno(ptr noundef %3309) #11
  %3311 = call i32 @isatty(i32 noundef %3310) #11
  %.not910 = icmp eq i32 %3311, 0
  br i1 %.not910, label %3312, label %3313

3312:                                             ; preds = %3308, %3302
  br label %3313

3313:                                             ; preds = %3308, %3312
  %.str.5.sink2386 = phi ptr [ @.str.5, %3312 ], [ @.str.2, %3308 ]
  store i32 %3303, ptr %765, align 4, !tbaa !5
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = load i32, ptr @test_count, align 4, !tbaa !5
  %3316 = load i32, ptr %711, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror(i32 noundef %3316, ptr noundef nonnull @.str.4) #11
  %3318 = load i32, ptr %711, align 4, !tbaa !5
  %3319 = call ptr @s2n_strerror_debug(i32 noundef %3318, ptr noundef nonnull @.str.4) #11
  %3320 = load i32, ptr %765, align 4, !tbaa !5
  %3321 = call ptr @strerror(i32 noundef %3320) #11
  %3322 = load i32, ptr %765, align 4, !tbaa !5
  %3323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3314, ptr noundef nonnull %.str.5.sink2386, i32 noundef %3315, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %3317, ptr noundef %3319, ptr noundef %3321, i32 noundef %3322) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3324:                                             ; preds = %3297
  %3325 = add nsw i32 %3298, 2
  store i32 %3325, ptr @test_count, align 4, !tbaa !5
  %3326 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_null, i64 8), align 8, !tbaa !31
  %3327 = icmp eq ptr %3326, @cipher_preferences_null
  br i1 %3327, label %3350, label %3328

3328:                                             ; preds = %3324
  %3329 = load i32, ptr %765, align 4, !tbaa !5
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = call i32 @s2n_print_stacktrace(ptr noundef %3330) #11
  %3332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3333 = trunc nuw i8 %3332 to i1
  br i1 %3333, label %3334, label %3338

3334:                                             ; preds = %3328
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = call i32 @fileno(ptr noundef %3335) #11
  %3337 = call i32 @isatty(i32 noundef %3336) #11
  %.not911 = icmp eq i32 %3337, 0
  br i1 %.not911, label %3338, label %3339

3338:                                             ; preds = %3334, %3328
  br label %3339

3339:                                             ; preds = %3334, %3338
  %.str.5.sink2395 = phi ptr [ @.str.5, %3338 ], [ @.str.2, %3334 ]
  store i32 %3329, ptr %765, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = load i32, ptr %711, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror(i32 noundef %3342, ptr noundef nonnull @.str.4) #11
  %3344 = load i32, ptr %711, align 4, !tbaa !5
  %3345 = call ptr @s2n_strerror_debug(i32 noundef %3344, ptr noundef nonnull @.str.4) #11
  %3346 = load i32, ptr %765, align 4, !tbaa !5
  %3347 = call ptr @strerror(i32 noundef %3346) #11
  %3348 = load i32, ptr %765, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3340, ptr noundef nonnull %.str.5.sink2395, i32 noundef %3341, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %3343, ptr noundef %3345, ptr noundef %3347, i32 noundef %3348) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3350:                                             ; preds = %3324
  %3351 = add nsw i32 %3298, 3
  store i32 %3351, ptr @test_count, align 4, !tbaa !5
  %3352 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_null, i64 16), align 8, !tbaa !20
  %3353 = icmp eq ptr %3352, @kem_preferences_null
  br i1 %3353, label %3376, label %3354

3354:                                             ; preds = %3350
  %3355 = load i32, ptr %765, align 4, !tbaa !5
  %3356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3357 = call i32 @s2n_print_stacktrace(ptr noundef %3356) #11
  %3358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3359 = trunc nuw i8 %3358 to i1
  br i1 %3359, label %3360, label %3364

3360:                                             ; preds = %3354
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @fileno(ptr noundef %3361) #11
  %3363 = call i32 @isatty(i32 noundef %3362) #11
  %.not912 = icmp eq i32 %3363, 0
  br i1 %.not912, label %3364, label %3365

3364:                                             ; preds = %3360, %3354
  br label %3365

3365:                                             ; preds = %3360, %3364
  %.str.5.sink2404 = phi ptr [ @.str.5, %3364 ], [ @.str.2, %3360 ]
  store i32 %3355, ptr %765, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = load i32, ptr @test_count, align 4, !tbaa !5
  %3368 = load i32, ptr %711, align 4, !tbaa !5
  %3369 = call ptr @s2n_strerror(i32 noundef %3368, ptr noundef nonnull @.str.4) #11
  %3370 = load i32, ptr %711, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror_debug(i32 noundef %3370, ptr noundef nonnull @.str.4) #11
  %3372 = load i32, ptr %765, align 4, !tbaa !5
  %3373 = call ptr @strerror(i32 noundef %3372) #11
  %3374 = load i32, ptr %765, align 4, !tbaa !5
  %3375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3366, ptr noundef nonnull %.str.5.sink2404, i32 noundef %3367, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 478, ptr noundef %3369, ptr noundef %3371, ptr noundef %3373, i32 noundef %3374) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3376:                                             ; preds = %3350
  %3377 = add nsw i32 %3298, 4
  store i32 %3377, ptr @test_count, align 4, !tbaa !5
  %3378 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_null, i64 24), align 8, !tbaa !38
  %3379 = icmp eq ptr %3378, @s2n_signature_preferences_null
  br i1 %3379, label %3402, label %3380

3380:                                             ; preds = %3376
  %3381 = load i32, ptr %765, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = call i32 @s2n_print_stacktrace(ptr noundef %3382) #11
  %3384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3385 = trunc nuw i8 %3384 to i1
  br i1 %3385, label %3386, label %3390

3386:                                             ; preds = %3380
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = call i32 @fileno(ptr noundef %3387) #11
  %3389 = call i32 @isatty(i32 noundef %3388) #11
  %.not913 = icmp eq i32 %3389, 0
  br i1 %.not913, label %3390, label %3391

3390:                                             ; preds = %3386, %3380
  br label %3391

3391:                                             ; preds = %3386, %3390
  %.str.5.sink2413 = phi ptr [ @.str.5, %3390 ], [ @.str.2, %3386 ]
  store i32 %3381, ptr %765, align 4, !tbaa !5
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = load i32, ptr @test_count, align 4, !tbaa !5
  %3394 = load i32, ptr %711, align 4, !tbaa !5
  %3395 = call ptr @s2n_strerror(i32 noundef %3394, ptr noundef nonnull @.str.4) #11
  %3396 = load i32, ptr %711, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror_debug(i32 noundef %3396, ptr noundef nonnull @.str.4) #11
  %3398 = load i32, ptr %765, align 4, !tbaa !5
  %3399 = call ptr @strerror(i32 noundef %3398) #11
  %3400 = load i32, ptr %765, align 4, !tbaa !5
  %3401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3392, ptr noundef nonnull %.str.5.sink2413, i32 noundef %3393, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %3395, ptr noundef %3397, ptr noundef %3399, i32 noundef %3400) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3402:                                             ; preds = %3376
  %3403 = add nsw i32 %3298, 5
  store i32 %3403, ptr @test_count, align 4, !tbaa !5
  %3404 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_null, i64 40), align 8, !tbaa !64
  %3405 = icmp eq ptr %3404, @s2n_ecc_preferences_null
  br i1 %3405, label %3428, label %3406

3406:                                             ; preds = %3402
  %3407 = load i32, ptr %765, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @s2n_print_stacktrace(ptr noundef %3408) #11
  %3410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3411 = trunc nuw i8 %3410 to i1
  br i1 %3411, label %3412, label %3416

3412:                                             ; preds = %3406
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = call i32 @fileno(ptr noundef %3413) #11
  %3415 = call i32 @isatty(i32 noundef %3414) #11
  %.not914 = icmp eq i32 %3415, 0
  br i1 %.not914, label %3416, label %3417

3416:                                             ; preds = %3412, %3406
  br label %3417

3417:                                             ; preds = %3412, %3416
  %.str.5.sink2422 = phi ptr [ @.str.5, %3416 ], [ @.str.2, %3412 ]
  store i32 %3407, ptr %765, align 4, !tbaa !5
  %3418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = load i32, ptr %711, align 4, !tbaa !5
  %3421 = call ptr @s2n_strerror(i32 noundef %3420, ptr noundef nonnull @.str.4) #11
  %3422 = load i32, ptr %711, align 4, !tbaa !5
  %3423 = call ptr @s2n_strerror_debug(i32 noundef %3422, ptr noundef nonnull @.str.4) #11
  %3424 = load i32, ptr %765, align 4, !tbaa !5
  %3425 = call ptr @strerror(i32 noundef %3424) #11
  %3426 = load i32, ptr %765, align 4, !tbaa !5
  %3427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3418, ptr noundef nonnull %.str.5.sink2422, i32 noundef %3419, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %3421, ptr noundef %3423, ptr noundef %3425, i32 noundef %3426) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3428:                                             ; preds = %3402
  %3429 = add nsw i32 %3298, 6
  store i32 %3429, ptr @test_count, align 4, !tbaa !5
  %3430 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.50) #11
  %3431 = icmp eq i32 %3430, -1
  br i1 %3431, label %3432, label %3454

3432:                                             ; preds = %3428
  %3433 = load i32, ptr %765, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = call i32 @s2n_print_stacktrace(ptr noundef %3434) #11
  %3436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3437 = trunc nuw i8 %3436 to i1
  br i1 %3437, label %3438, label %3442

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

3442:                                             ; preds = %3438, %3432
  br label %3443

3443:                                             ; preds = %3438, %3442
  %.str.5.sink2431 = phi ptr [ @.str.5, %3442 ], [ @.str.2, %3438 ]
  store i32 %3433, ptr %765, align 4, !tbaa !5
  %3444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = load i32, ptr %711, align 4, !tbaa !5
  %3447 = call ptr @s2n_strerror(i32 noundef %3446, ptr noundef nonnull @.str.4) #11
  %3448 = load i32, ptr %711, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror_debug(i32 noundef %3448, ptr noundef nonnull @.str.4) #11
  %3450 = load i32, ptr %765, align 4, !tbaa !5
  %3451 = call ptr @strerror(i32 noundef %3450) #11
  %3452 = load i32, ptr %765, align 4, !tbaa !5
  %3453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3444, ptr noundef nonnull %.str.5.sink2431, i32 noundef %3445, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 482, ptr noundef %3447, ptr noundef %3449, ptr noundef %3451, i32 noundef %3452) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3454:                                             ; preds = %3428
  %3455 = load i32, ptr @test_count, align 4, !tbaa !5
  %3456 = add nsw i32 %3455, 1
  store i32 %3456, ptr @test_count, align 4, !tbaa !5
  %3457 = load ptr, ptr %2985, align 8, !tbaa !59
  %3458 = icmp eq ptr %3457, @security_policy_test_all
  br i1 %3458, label %3481, label %3459

3459:                                             ; preds = %3454
  %3460 = load i32, ptr %765, align 4, !tbaa !5
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = call i32 @s2n_print_stacktrace(ptr noundef %3461) #11
  %3463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3464 = trunc nuw i8 %3463 to i1
  br i1 %3464, label %3465, label %3469

3465:                                             ; preds = %3459
  %3466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3467 = call i32 @fileno(ptr noundef %3466) #11
  %3468 = call i32 @isatty(i32 noundef %3467) #11
  %.not915 = icmp eq i32 %3468, 0
  br i1 %.not915, label %3469, label %3470

3469:                                             ; preds = %3465, %3459
  br label %3470

3470:                                             ; preds = %3465, %3469
  %.str.5.sink2440 = phi ptr [ @.str.5, %3469 ], [ @.str.2, %3465 ]
  store i32 %3460, ptr %765, align 4, !tbaa !5
  %3471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3472 = load i32, ptr @test_count, align 4, !tbaa !5
  %3473 = load i32, ptr %711, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror(i32 noundef %3473, ptr noundef nonnull @.str.4) #11
  %3475 = load i32, ptr %711, align 4, !tbaa !5
  %3476 = call ptr @s2n_strerror_debug(i32 noundef %3475, ptr noundef nonnull @.str.4) #11
  %3477 = load i32, ptr %765, align 4, !tbaa !5
  %3478 = call ptr @strerror(i32 noundef %3477) #11
  %3479 = load i32, ptr %765, align 4, !tbaa !5
  %3480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3471, ptr noundef nonnull %.str.5.sink2440, i32 noundef %3472, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %3474, ptr noundef %3476, ptr noundef %3478, i32 noundef %3479) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3481:                                             ; preds = %3454
  %3482 = add nsw i32 %3455, 2
  store i32 %3482, ptr @test_count, align 4, !tbaa !5
  %3483 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all, i64 8), align 8, !tbaa !31
  %3484 = icmp eq ptr %3483, @cipher_preferences_test_all
  br i1 %3484, label %3507, label %3485

3485:                                             ; preds = %3481
  %3486 = load i32, ptr %765, align 4, !tbaa !5
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = call i32 @s2n_print_stacktrace(ptr noundef %3487) #11
  %3489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3490 = trunc nuw i8 %3489 to i1
  br i1 %3490, label %3491, label %3495

3491:                                             ; preds = %3485
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = call i32 @fileno(ptr noundef %3492) #11
  %3494 = call i32 @isatty(i32 noundef %3493) #11
  %.not916 = icmp eq i32 %3494, 0
  br i1 %.not916, label %3495, label %3496

3495:                                             ; preds = %3491, %3485
  br label %3496

3496:                                             ; preds = %3491, %3495
  %.str.5.sink2449 = phi ptr [ @.str.5, %3495 ], [ @.str.2, %3491 ]
  store i32 %3486, ptr %765, align 4, !tbaa !5
  %3497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = load i32, ptr %711, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror(i32 noundef %3499, ptr noundef nonnull @.str.4) #11
  %3501 = load i32, ptr %711, align 4, !tbaa !5
  %3502 = call ptr @s2n_strerror_debug(i32 noundef %3501, ptr noundef nonnull @.str.4) #11
  %3503 = load i32, ptr %765, align 4, !tbaa !5
  %3504 = call ptr @strerror(i32 noundef %3503) #11
  %3505 = load i32, ptr %765, align 4, !tbaa !5
  %3506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3497, ptr noundef nonnull %.str.5.sink2449, i32 noundef %3498, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 484, ptr noundef %3500, ptr noundef %3502, ptr noundef %3504, i32 noundef %3505) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3507:                                             ; preds = %3481
  %3508 = add nsw i32 %3455, 3
  store i32 %3508, ptr @test_count, align 4, !tbaa !5
  %3509 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all, i64 16), align 8, !tbaa !20
  %3510 = icmp eq ptr %3509, @kem_preferences_all
  br i1 %3510, label %3533, label %3511

3511:                                             ; preds = %3507
  %3512 = load i32, ptr %765, align 4, !tbaa !5
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = call i32 @s2n_print_stacktrace(ptr noundef %3513) #11
  %3515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3516 = trunc nuw i8 %3515 to i1
  br i1 %3516, label %3517, label %3521

3517:                                             ; preds = %3511
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = call i32 @fileno(ptr noundef %3518) #11
  %3520 = call i32 @isatty(i32 noundef %3519) #11
  %.not917 = icmp eq i32 %3520, 0
  br i1 %.not917, label %3521, label %3522

3521:                                             ; preds = %3517, %3511
  br label %3522

3522:                                             ; preds = %3517, %3521
  %.str.5.sink2458 = phi ptr [ @.str.5, %3521 ], [ @.str.2, %3517 ]
  store i32 %3512, ptr %765, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = load i32, ptr @test_count, align 4, !tbaa !5
  %3525 = load i32, ptr %711, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror(i32 noundef %3525, ptr noundef nonnull @.str.4) #11
  %3527 = load i32, ptr %711, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror_debug(i32 noundef %3527, ptr noundef nonnull @.str.4) #11
  %3529 = load i32, ptr %765, align 4, !tbaa !5
  %3530 = call ptr @strerror(i32 noundef %3529) #11
  %3531 = load i32, ptr %765, align 4, !tbaa !5
  %3532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3523, ptr noundef nonnull %.str.5.sink2458, i32 noundef %3524, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %3526, ptr noundef %3528, ptr noundef %3530, i32 noundef %3531) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3533:                                             ; preds = %3507
  %3534 = add nsw i32 %3455, 4
  store i32 %3534, ptr @test_count, align 4, !tbaa !5
  %3535 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all, i64 24), align 8, !tbaa !38
  %3536 = icmp eq ptr %3535, @s2n_signature_preferences_all
  br i1 %3536, label %3559, label %3537

3537:                                             ; preds = %3533
  %3538 = load i32, ptr %765, align 4, !tbaa !5
  %3539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3540 = call i32 @s2n_print_stacktrace(ptr noundef %3539) #11
  %3541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3542 = trunc nuw i8 %3541 to i1
  br i1 %3542, label %3543, label %3547

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

3547:                                             ; preds = %3543, %3537
  br label %3548

3548:                                             ; preds = %3543, %3547
  %.str.5.sink2467 = phi ptr [ @.str.5, %3547 ], [ @.str.2, %3543 ]
  store i32 %3538, ptr %765, align 4, !tbaa !5
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = load i32, ptr @test_count, align 4, !tbaa !5
  %3551 = load i32, ptr %711, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror(i32 noundef %3551, ptr noundef nonnull @.str.4) #11
  %3553 = load i32, ptr %711, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror_debug(i32 noundef %3553, ptr noundef nonnull @.str.4) #11
  %3555 = load i32, ptr %765, align 4, !tbaa !5
  %3556 = call ptr @strerror(i32 noundef %3555) #11
  %3557 = load i32, ptr %765, align 4, !tbaa !5
  %3558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3549, ptr noundef nonnull %.str.5.sink2467, i32 noundef %3550, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %3552, ptr noundef %3554, ptr noundef %3556, i32 noundef %3557) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3559:                                             ; preds = %3533
  %3560 = add nsw i32 %3455, 5
  store i32 %3560, ptr @test_count, align 4, !tbaa !5
  %3561 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all, i64 40), align 8, !tbaa !64
  %3562 = icmp eq ptr %3561, @s2n_ecc_preferences_test_all
  br i1 %3562, label %3585, label %3563

3563:                                             ; preds = %3559
  %3564 = load i32, ptr %765, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = call i32 @s2n_print_stacktrace(ptr noundef %3565) #11
  %3567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3568 = trunc nuw i8 %3567 to i1
  br i1 %3568, label %3569, label %3573

3569:                                             ; preds = %3563
  %3570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3571 = call i32 @fileno(ptr noundef %3570) #11
  %3572 = call i32 @isatty(i32 noundef %3571) #11
  %.not919 = icmp eq i32 %3572, 0
  br i1 %.not919, label %3573, label %3574

3573:                                             ; preds = %3569, %3563
  br label %3574

3574:                                             ; preds = %3569, %3573
  %.str.5.sink2476 = phi ptr [ @.str.5, %3573 ], [ @.str.2, %3569 ]
  store i32 %3564, ptr %765, align 4, !tbaa !5
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = load i32, ptr @test_count, align 4, !tbaa !5
  %3577 = load i32, ptr %711, align 4, !tbaa !5
  %3578 = call ptr @s2n_strerror(i32 noundef %3577, ptr noundef nonnull @.str.4) #11
  %3579 = load i32, ptr %711, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror_debug(i32 noundef %3579, ptr noundef nonnull @.str.4) #11
  %3581 = load i32, ptr %765, align 4, !tbaa !5
  %3582 = call ptr @strerror(i32 noundef %3581) #11
  %3583 = load i32, ptr %765, align 4, !tbaa !5
  %3584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3575, ptr noundef nonnull %.str.5.sink2476, i32 noundef %3576, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %3578, ptr noundef %3580, ptr noundef %3582, i32 noundef %3583) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3585:                                             ; preds = %3559
  %3586 = add nsw i32 %3455, 6
  store i32 %3586, ptr @test_count, align 4, !tbaa !5
  %3587 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.104) #11
  %3588 = icmp eq i32 %3587, -1
  br i1 %3588, label %3589, label %3611

3589:                                             ; preds = %3585
  %3590 = load i32, ptr %765, align 4, !tbaa !5
  %3591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3592 = call i32 @s2n_print_stacktrace(ptr noundef %3591) #11
  %3593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3594 = trunc nuw i8 %3593 to i1
  br i1 %3594, label %3595, label %3599

3595:                                             ; preds = %3589
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = call i32 @fileno(ptr noundef %3596) #11
  %3598 = call i32 @isatty(i32 noundef %3597) #11
  %.not1094 = icmp eq i32 %3598, 0
  br i1 %.not1094, label %3599, label %3600

3599:                                             ; preds = %3595, %3589
  br label %3600

3600:                                             ; preds = %3595, %3599
  %.str.5.sink2485 = phi ptr [ @.str.5, %3599 ], [ @.str.2, %3595 ]
  store i32 %3590, ptr %765, align 4, !tbaa !5
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = load i32, ptr @test_count, align 4, !tbaa !5
  %3603 = load i32, ptr %711, align 4, !tbaa !5
  %3604 = call ptr @s2n_strerror(i32 noundef %3603, ptr noundef nonnull @.str.4) #11
  %3605 = load i32, ptr %711, align 4, !tbaa !5
  %3606 = call ptr @s2n_strerror_debug(i32 noundef %3605, ptr noundef nonnull @.str.4) #11
  %3607 = load i32, ptr %765, align 4, !tbaa !5
  %3608 = call ptr @strerror(i32 noundef %3607) #11
  %3609 = load i32, ptr %765, align 4, !tbaa !5
  %3610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3601, ptr noundef nonnull %.str.5.sink2485, i32 noundef %3602, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %3604, ptr noundef %3606, ptr noundef %3608, i32 noundef %3609) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3611:                                             ; preds = %3585
  %3612 = load i32, ptr @test_count, align 4, !tbaa !5
  %3613 = add nsw i32 %3612, 1
  store i32 %3613, ptr @test_count, align 4, !tbaa !5
  %3614 = load ptr, ptr %2985, align 8, !tbaa !59
  %3615 = icmp eq ptr %3614, @security_policy_test_all_tls12
  br i1 %3615, label %3638, label %3616

3616:                                             ; preds = %3611
  %3617 = load i32, ptr %765, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = call i32 @s2n_print_stacktrace(ptr noundef %3618) #11
  %3620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3621 = trunc nuw i8 %3620 to i1
  br i1 %3621, label %3622, label %3626

3622:                                             ; preds = %3616
  %3623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3624 = call i32 @fileno(ptr noundef %3623) #11
  %3625 = call i32 @isatty(i32 noundef %3624) #11
  %.not920 = icmp eq i32 %3625, 0
  br i1 %.not920, label %3626, label %3627

3626:                                             ; preds = %3622, %3616
  br label %3627

3627:                                             ; preds = %3622, %3626
  %.str.5.sink2494 = phi ptr [ @.str.5, %3626 ], [ @.str.2, %3622 ]
  store i32 %3617, ptr %765, align 4, !tbaa !5
  %3628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3629 = load i32, ptr @test_count, align 4, !tbaa !5
  %3630 = load i32, ptr %711, align 4, !tbaa !5
  %3631 = call ptr @s2n_strerror(i32 noundef %3630, ptr noundef nonnull @.str.4) #11
  %3632 = load i32, ptr %711, align 4, !tbaa !5
  %3633 = call ptr @s2n_strerror_debug(i32 noundef %3632, ptr noundef nonnull @.str.4) #11
  %3634 = load i32, ptr %765, align 4, !tbaa !5
  %3635 = call ptr @strerror(i32 noundef %3634) #11
  %3636 = load i32, ptr %765, align 4, !tbaa !5
  %3637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3628, ptr noundef nonnull %.str.5.sink2494, i32 noundef %3629, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %3631, ptr noundef %3633, ptr noundef %3635, i32 noundef %3636) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3638:                                             ; preds = %3611
  %3639 = add nsw i32 %3612, 2
  store i32 %3639, ptr @test_count, align 4, !tbaa !5
  %3640 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls12, i64 8), align 8, !tbaa !31
  %3641 = icmp eq ptr %3640, @cipher_preferences_test_all_tls12
  br i1 %3641, label %3664, label %3642

3642:                                             ; preds = %3638
  %3643 = load i32, ptr %765, align 4, !tbaa !5
  %3644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3645 = call i32 @s2n_print_stacktrace(ptr noundef %3644) #11
  %3646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3647 = trunc nuw i8 %3646 to i1
  br i1 %3647, label %3648, label %3652

3648:                                             ; preds = %3642
  %3649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3650 = call i32 @fileno(ptr noundef %3649) #11
  %3651 = call i32 @isatty(i32 noundef %3650) #11
  %.not921 = icmp eq i32 %3651, 0
  br i1 %.not921, label %3652, label %3653

3652:                                             ; preds = %3648, %3642
  br label %3653

3653:                                             ; preds = %3648, %3652
  %.str.5.sink2503 = phi ptr [ @.str.5, %3652 ], [ @.str.2, %3648 ]
  store i32 %3643, ptr %765, align 4, !tbaa !5
  %3654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3655 = load i32, ptr @test_count, align 4, !tbaa !5
  %3656 = load i32, ptr %711, align 4, !tbaa !5
  %3657 = call ptr @s2n_strerror(i32 noundef %3656, ptr noundef nonnull @.str.4) #11
  %3658 = load i32, ptr %711, align 4, !tbaa !5
  %3659 = call ptr @s2n_strerror_debug(i32 noundef %3658, ptr noundef nonnull @.str.4) #11
  %3660 = load i32, ptr %765, align 4, !tbaa !5
  %3661 = call ptr @strerror(i32 noundef %3660) #11
  %3662 = load i32, ptr %765, align 4, !tbaa !5
  %3663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3654, ptr noundef nonnull %.str.5.sink2503, i32 noundef %3655, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %3657, ptr noundef %3659, ptr noundef %3661, i32 noundef %3662) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3664:                                             ; preds = %3638
  %3665 = add nsw i32 %3612, 3
  store i32 %3665, ptr @test_count, align 4, !tbaa !5
  %3666 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls12, i64 16), align 8, !tbaa !20
  %3667 = icmp eq ptr %3666, @kem_preferences_pq_tls_1_0_2021_05
  br i1 %3667, label %3690, label %3668

3668:                                             ; preds = %3664
  %3669 = load i32, ptr %765, align 4, !tbaa !5
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = call i32 @s2n_print_stacktrace(ptr noundef %3670) #11
  %3672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3673 = trunc nuw i8 %3672 to i1
  br i1 %3673, label %3674, label %3678

3674:                                             ; preds = %3668
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = call i32 @fileno(ptr noundef %3675) #11
  %3677 = call i32 @isatty(i32 noundef %3676) #11
  %.not922 = icmp eq i32 %3677, 0
  br i1 %.not922, label %3678, label %3679

3678:                                             ; preds = %3674, %3668
  br label %3679

3679:                                             ; preds = %3674, %3678
  %.str.5.sink2512 = phi ptr [ @.str.5, %3678 ], [ @.str.2, %3674 ]
  store i32 %3669, ptr %765, align 4, !tbaa !5
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = load i32, ptr @test_count, align 4, !tbaa !5
  %3682 = load i32, ptr %711, align 4, !tbaa !5
  %3683 = call ptr @s2n_strerror(i32 noundef %3682, ptr noundef nonnull @.str.4) #11
  %3684 = load i32, ptr %711, align 4, !tbaa !5
  %3685 = call ptr @s2n_strerror_debug(i32 noundef %3684, ptr noundef nonnull @.str.4) #11
  %3686 = load i32, ptr %765, align 4, !tbaa !5
  %3687 = call ptr @strerror(i32 noundef %3686) #11
  %3688 = load i32, ptr %765, align 4, !tbaa !5
  %3689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3680, ptr noundef nonnull %.str.5.sink2512, i32 noundef %3681, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %3683, ptr noundef %3685, ptr noundef %3687, i32 noundef %3688) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3690:                                             ; preds = %3664
  %3691 = add nsw i32 %3612, 4
  store i32 %3691, ptr @test_count, align 4, !tbaa !5
  %3692 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls12, i64 24), align 8, !tbaa !38
  %3693 = icmp eq ptr %3692, @s2n_signature_preferences_20201021
  br i1 %3693, label %3716, label %3694

3694:                                             ; preds = %3690
  %3695 = load i32, ptr %765, align 4, !tbaa !5
  %3696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3697 = call i32 @s2n_print_stacktrace(ptr noundef %3696) #11
  %3698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3699 = trunc nuw i8 %3698 to i1
  br i1 %3699, label %3700, label %3704

3700:                                             ; preds = %3694
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = call i32 @fileno(ptr noundef %3701) #11
  %3703 = call i32 @isatty(i32 noundef %3702) #11
  %.not923 = icmp eq i32 %3703, 0
  br i1 %.not923, label %3704, label %3705

3704:                                             ; preds = %3700, %3694
  br label %3705

3705:                                             ; preds = %3700, %3704
  %.str.5.sink2521 = phi ptr [ @.str.5, %3704 ], [ @.str.2, %3700 ]
  store i32 %3695, ptr %765, align 4, !tbaa !5
  %3706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3707 = load i32, ptr @test_count, align 4, !tbaa !5
  %3708 = load i32, ptr %711, align 4, !tbaa !5
  %3709 = call ptr @s2n_strerror(i32 noundef %3708, ptr noundef nonnull @.str.4) #11
  %3710 = load i32, ptr %711, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror_debug(i32 noundef %3710, ptr noundef nonnull @.str.4) #11
  %3712 = load i32, ptr %765, align 4, !tbaa !5
  %3713 = call ptr @strerror(i32 noundef %3712) #11
  %3714 = load i32, ptr %765, align 4, !tbaa !5
  %3715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3706, ptr noundef nonnull %.str.5.sink2521, i32 noundef %3707, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %3709, ptr noundef %3711, ptr noundef %3713, i32 noundef %3714) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3716:                                             ; preds = %3690
  %3717 = add nsw i32 %3612, 5
  store i32 %3717, ptr @test_count, align 4, !tbaa !5
  %3718 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls12, i64 40), align 8, !tbaa !64
  %3719 = icmp eq ptr %3718, @s2n_ecc_preferences_20201021
  br i1 %3719, label %3742, label %3720

3720:                                             ; preds = %3716
  %3721 = load i32, ptr %765, align 4, !tbaa !5
  %3722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3723 = call i32 @s2n_print_stacktrace(ptr noundef %3722) #11
  %3724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3725 = trunc nuw i8 %3724 to i1
  br i1 %3725, label %3726, label %3730

3726:                                             ; preds = %3720
  %3727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3728 = call i32 @fileno(ptr noundef %3727) #11
  %3729 = call i32 @isatty(i32 noundef %3728) #11
  %.not924 = icmp eq i32 %3729, 0
  br i1 %.not924, label %3730, label %3731

3730:                                             ; preds = %3726, %3720
  br label %3731

3731:                                             ; preds = %3726, %3730
  %.str.5.sink2530 = phi ptr [ @.str.5, %3730 ], [ @.str.2, %3726 ]
  store i32 %3721, ptr %765, align 4, !tbaa !5
  %3732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3733 = load i32, ptr @test_count, align 4, !tbaa !5
  %3734 = load i32, ptr %711, align 4, !tbaa !5
  %3735 = call ptr @s2n_strerror(i32 noundef %3734, ptr noundef nonnull @.str.4) #11
  %3736 = load i32, ptr %711, align 4, !tbaa !5
  %3737 = call ptr @s2n_strerror_debug(i32 noundef %3736, ptr noundef nonnull @.str.4) #11
  %3738 = load i32, ptr %765, align 4, !tbaa !5
  %3739 = call ptr @strerror(i32 noundef %3738) #11
  %3740 = load i32, ptr %765, align 4, !tbaa !5
  %3741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3732, ptr noundef nonnull %.str.5.sink2530, i32 noundef %3733, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %3735, ptr noundef %3737, ptr noundef %3739, i32 noundef %3740) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3742:                                             ; preds = %3716
  %3743 = add nsw i32 %3612, 6
  store i32 %3743, ptr @test_count, align 4, !tbaa !5
  %3744 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.111) #11
  %3745 = icmp eq i32 %3744, -1
  br i1 %3745, label %3746, label %3768

3746:                                             ; preds = %3742
  %3747 = load i32, ptr %765, align 4, !tbaa !5
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = call i32 @s2n_print_stacktrace(ptr noundef %3748) #11
  %3750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3751 = trunc nuw i8 %3750 to i1
  br i1 %3751, label %3752, label %3756

3752:                                             ; preds = %3746
  %3753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3754 = call i32 @fileno(ptr noundef %3753) #11
  %3755 = call i32 @isatty(i32 noundef %3754) #11
  %.not1093 = icmp eq i32 %3755, 0
  br i1 %.not1093, label %3756, label %3757

3756:                                             ; preds = %3752, %3746
  br label %3757

3757:                                             ; preds = %3752, %3756
  %.str.5.sink2539 = phi ptr [ @.str.5, %3756 ], [ @.str.2, %3752 ]
  store i32 %3747, ptr %765, align 4, !tbaa !5
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = load i32, ptr @test_count, align 4, !tbaa !5
  %3760 = load i32, ptr %711, align 4, !tbaa !5
  %3761 = call ptr @s2n_strerror(i32 noundef %3760, ptr noundef nonnull @.str.4) #11
  %3762 = load i32, ptr %711, align 4, !tbaa !5
  %3763 = call ptr @s2n_strerror_debug(i32 noundef %3762, ptr noundef nonnull @.str.4) #11
  %3764 = load i32, ptr %765, align 4, !tbaa !5
  %3765 = call ptr @strerror(i32 noundef %3764) #11
  %3766 = load i32, ptr %765, align 4, !tbaa !5
  %3767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3758, ptr noundef nonnull %.str.5.sink2539, i32 noundef %3759, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %3761, ptr noundef %3763, ptr noundef %3765, i32 noundef %3766) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3768:                                             ; preds = %3742
  %3769 = load i32, ptr @test_count, align 4, !tbaa !5
  %3770 = add nsw i32 %3769, 1
  store i32 %3770, ptr @test_count, align 4, !tbaa !5
  %3771 = load ptr, ptr %2985, align 8, !tbaa !59
  %3772 = icmp eq ptr %3771, @security_policy_aws_crt_sdk_ssl_v3
  br i1 %3772, label %3795, label %3773

3773:                                             ; preds = %3768
  %3774 = load i32, ptr %765, align 4, !tbaa !5
  %3775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3776 = call i32 @s2n_print_stacktrace(ptr noundef %3775) #11
  %3777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3778 = trunc nuw i8 %3777 to i1
  br i1 %3778, label %3779, label %3783

3779:                                             ; preds = %3773
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = call i32 @fileno(ptr noundef %3780) #11
  %3782 = call i32 @isatty(i32 noundef %3781) #11
  %.not925 = icmp eq i32 %3782, 0
  br i1 %.not925, label %3783, label %3784

3783:                                             ; preds = %3779, %3773
  br label %3784

3784:                                             ; preds = %3779, %3783
  %.str.5.sink2548 = phi ptr [ @.str.5, %3783 ], [ @.str.2, %3779 ]
  store i32 %3774, ptr %765, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = load i32, ptr @test_count, align 4, !tbaa !5
  %3787 = load i32, ptr %711, align 4, !tbaa !5
  %3788 = call ptr @s2n_strerror(i32 noundef %3787, ptr noundef nonnull @.str.4) #11
  %3789 = load i32, ptr %711, align 4, !tbaa !5
  %3790 = call ptr @s2n_strerror_debug(i32 noundef %3789, ptr noundef nonnull @.str.4) #11
  %3791 = load i32, ptr %765, align 4, !tbaa !5
  %3792 = call ptr @strerror(i32 noundef %3791) #11
  %3793 = load i32, ptr %765, align 4, !tbaa !5
  %3794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3785, ptr noundef nonnull %.str.5.sink2548, i32 noundef %3786, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %3788, ptr noundef %3790, ptr noundef %3792, i32 noundef %3793) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3795:                                             ; preds = %3768
  %3796 = add nsw i32 %3769, 2
  store i32 %3796, ptr @test_count, align 4, !tbaa !5
  %3797 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_ssl_v3, i64 8), align 8, !tbaa !31
  %3798 = icmp eq ptr %3797, @cipher_preferences_aws_crt_sdk_ssl_v3
  br i1 %3798, label %3821, label %3799

3799:                                             ; preds = %3795
  %3800 = load i32, ptr %765, align 4, !tbaa !5
  %3801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3802 = call i32 @s2n_print_stacktrace(ptr noundef %3801) #11
  %3803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3804 = trunc nuw i8 %3803 to i1
  br i1 %3804, label %3805, label %3809

3805:                                             ; preds = %3799
  %3806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3807 = call i32 @fileno(ptr noundef %3806) #11
  %3808 = call i32 @isatty(i32 noundef %3807) #11
  %.not926 = icmp eq i32 %3808, 0
  br i1 %.not926, label %3809, label %3810

3809:                                             ; preds = %3805, %3799
  br label %3810

3810:                                             ; preds = %3805, %3809
  %.str.5.sink2557 = phi ptr [ @.str.5, %3809 ], [ @.str.2, %3805 ]
  store i32 %3800, ptr %765, align 4, !tbaa !5
  %3811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3812 = load i32, ptr @test_count, align 4, !tbaa !5
  %3813 = load i32, ptr %711, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror(i32 noundef %3813, ptr noundef nonnull @.str.4) #11
  %3815 = load i32, ptr %711, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror_debug(i32 noundef %3815, ptr noundef nonnull @.str.4) #11
  %3817 = load i32, ptr %765, align 4, !tbaa !5
  %3818 = call ptr @strerror(i32 noundef %3817) #11
  %3819 = load i32, ptr %765, align 4, !tbaa !5
  %3820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3811, ptr noundef nonnull %.str.5.sink2557, i32 noundef %3812, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %3814, ptr noundef %3816, ptr noundef %3818, i32 noundef %3819) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3821:                                             ; preds = %3795
  %3822 = add nsw i32 %3769, 3
  store i32 %3822, ptr @test_count, align 4, !tbaa !5
  %3823 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_ssl_v3, i64 16), align 8, !tbaa !20
  %3824 = icmp eq ptr %3823, @kem_preferences_null
  br i1 %3824, label %3847, label %3825

3825:                                             ; preds = %3821
  %3826 = load i32, ptr %765, align 4, !tbaa !5
  %3827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3828 = call i32 @s2n_print_stacktrace(ptr noundef %3827) #11
  %3829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3830 = trunc nuw i8 %3829 to i1
  br i1 %3830, label %3831, label %3835

3831:                                             ; preds = %3825
  %3832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3833 = call i32 @fileno(ptr noundef %3832) #11
  %3834 = call i32 @isatty(i32 noundef %3833) #11
  %.not927 = icmp eq i32 %3834, 0
  br i1 %.not927, label %3835, label %3836

3835:                                             ; preds = %3831, %3825
  br label %3836

3836:                                             ; preds = %3831, %3835
  %.str.5.sink2566 = phi ptr [ @.str.5, %3835 ], [ @.str.2, %3831 ]
  store i32 %3826, ptr %765, align 4, !tbaa !5
  %3837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3838 = load i32, ptr @test_count, align 4, !tbaa !5
  %3839 = load i32, ptr %711, align 4, !tbaa !5
  %3840 = call ptr @s2n_strerror(i32 noundef %3839, ptr noundef nonnull @.str.4) #11
  %3841 = load i32, ptr %711, align 4, !tbaa !5
  %3842 = call ptr @s2n_strerror_debug(i32 noundef %3841, ptr noundef nonnull @.str.4) #11
  %3843 = load i32, ptr %765, align 4, !tbaa !5
  %3844 = call ptr @strerror(i32 noundef %3843) #11
  %3845 = load i32, ptr %765, align 4, !tbaa !5
  %3846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3837, ptr noundef nonnull %.str.5.sink2566, i32 noundef %3838, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %3840, ptr noundef %3842, ptr noundef %3844, i32 noundef %3845) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3847:                                             ; preds = %3821
  %3848 = add nsw i32 %3769, 4
  store i32 %3848, ptr @test_count, align 4, !tbaa !5
  %3849 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_ssl_v3, i64 24), align 8, !tbaa !38
  %3850 = icmp eq ptr %3849, @s2n_signature_preferences_20200207
  br i1 %3850, label %3873, label %3851

3851:                                             ; preds = %3847
  %3852 = load i32, ptr %765, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @s2n_print_stacktrace(ptr noundef %3853) #11
  %3855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3856 = trunc nuw i8 %3855 to i1
  br i1 %3856, label %3857, label %3861

3857:                                             ; preds = %3851
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @fileno(ptr noundef %3858) #11
  %3860 = call i32 @isatty(i32 noundef %3859) #11
  %.not928 = icmp eq i32 %3860, 0
  br i1 %.not928, label %3861, label %3862

3861:                                             ; preds = %3857, %3851
  br label %3862

3862:                                             ; preds = %3857, %3861
  %.str.5.sink2575 = phi ptr [ @.str.5, %3861 ], [ @.str.2, %3857 ]
  store i32 %3852, ptr %765, align 4, !tbaa !5
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = load i32, ptr %711, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror(i32 noundef %3865, ptr noundef nonnull @.str.4) #11
  %3867 = load i32, ptr %711, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror_debug(i32 noundef %3867, ptr noundef nonnull @.str.4) #11
  %3869 = load i32, ptr %765, align 4, !tbaa !5
  %3870 = call ptr @strerror(i32 noundef %3869) #11
  %3871 = load i32, ptr %765, align 4, !tbaa !5
  %3872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3863, ptr noundef nonnull %.str.5.sink2575, i32 noundef %3864, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %3866, ptr noundef %3868, ptr noundef %3870, i32 noundef %3871) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3873:                                             ; preds = %3847
  %3874 = add nsw i32 %3769, 5
  store i32 %3874, ptr @test_count, align 4, !tbaa !5
  %3875 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_ssl_v3, i64 40), align 8, !tbaa !64
  %3876 = icmp eq ptr %3875, @s2n_ecc_preferences_20200310
  br i1 %3876, label %3899, label %3877

3877:                                             ; preds = %3873
  %3878 = load i32, ptr %765, align 4, !tbaa !5
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = call i32 @s2n_print_stacktrace(ptr noundef %3879) #11
  %3881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3882 = trunc nuw i8 %3881 to i1
  br i1 %3882, label %3883, label %3887

3883:                                             ; preds = %3877
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @fileno(ptr noundef %3884) #11
  %3886 = call i32 @isatty(i32 noundef %3885) #11
  %.not929 = icmp eq i32 %3886, 0
  br i1 %.not929, label %3887, label %3888

3887:                                             ; preds = %3883, %3877
  br label %3888

3888:                                             ; preds = %3883, %3887
  %.str.5.sink2584 = phi ptr [ @.str.5, %3887 ], [ @.str.2, %3883 ]
  store i32 %3878, ptr %765, align 4, !tbaa !5
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = load i32, ptr @test_count, align 4, !tbaa !5
  %3891 = load i32, ptr %711, align 4, !tbaa !5
  %3892 = call ptr @s2n_strerror(i32 noundef %3891, ptr noundef nonnull @.str.4) #11
  %3893 = load i32, ptr %711, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror_debug(i32 noundef %3893, ptr noundef nonnull @.str.4) #11
  %3895 = load i32, ptr %765, align 4, !tbaa !5
  %3896 = call ptr @strerror(i32 noundef %3895) #11
  %3897 = load i32, ptr %765, align 4, !tbaa !5
  %3898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3889, ptr noundef nonnull %.str.5.sink2584, i32 noundef %3890, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 501, ptr noundef %3892, ptr noundef %3894, ptr noundef %3896, i32 noundef %3897) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3899:                                             ; preds = %3873
  %3900 = add nsw i32 %3769, 6
  store i32 %3900, ptr @test_count, align 4, !tbaa !5
  %3901 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.115) #11
  %3902 = icmp eq i32 %3901, -1
  br i1 %3902, label %3903, label %3925

3903:                                             ; preds = %3899
  %3904 = load i32, ptr %765, align 4, !tbaa !5
  %3905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3906 = call i32 @s2n_print_stacktrace(ptr noundef %3905) #11
  %3907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3908 = trunc nuw i8 %3907 to i1
  br i1 %3908, label %3909, label %3913

3909:                                             ; preds = %3903
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = call i32 @fileno(ptr noundef %3910) #11
  %3912 = call i32 @isatty(i32 noundef %3911) #11
  %.not1092 = icmp eq i32 %3912, 0
  br i1 %.not1092, label %3913, label %3914

3913:                                             ; preds = %3909, %3903
  br label %3914

3914:                                             ; preds = %3909, %3913
  %.str.5.sink2593 = phi ptr [ @.str.5, %3913 ], [ @.str.2, %3909 ]
  store i32 %3904, ptr %765, align 4, !tbaa !5
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = load i32, ptr %711, align 4, !tbaa !5
  %3918 = call ptr @s2n_strerror(i32 noundef %3917, ptr noundef nonnull @.str.4) #11
  %3919 = load i32, ptr %711, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror_debug(i32 noundef %3919, ptr noundef nonnull @.str.4) #11
  %3921 = load i32, ptr %765, align 4, !tbaa !5
  %3922 = call ptr @strerror(i32 noundef %3921) #11
  %3923 = load i32, ptr %765, align 4, !tbaa !5
  %3924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3915, ptr noundef nonnull %.str.5.sink2593, i32 noundef %3916, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %3918, ptr noundef %3920, ptr noundef %3922, i32 noundef %3923) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3925:                                             ; preds = %3899
  %3926 = load i32, ptr @test_count, align 4, !tbaa !5
  %3927 = add nsw i32 %3926, 1
  store i32 %3927, ptr @test_count, align 4, !tbaa !5
  %3928 = load ptr, ptr %2985, align 8, !tbaa !59
  %3929 = icmp eq ptr %3928, @security_policy_aws_crt_sdk_tls_10
  br i1 %3929, label %3952, label %3930

3930:                                             ; preds = %3925
  %3931 = load i32, ptr %765, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = call i32 @s2n_print_stacktrace(ptr noundef %3932) #11
  %3934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3935 = trunc nuw i8 %3934 to i1
  br i1 %3935, label %3936, label %3940

3936:                                             ; preds = %3930
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = call i32 @fileno(ptr noundef %3937) #11
  %3939 = call i32 @isatty(i32 noundef %3938) #11
  %.not930 = icmp eq i32 %3939, 0
  br i1 %.not930, label %3940, label %3941

3940:                                             ; preds = %3936, %3930
  br label %3941

3941:                                             ; preds = %3936, %3940
  %.str.5.sink2602 = phi ptr [ @.str.5, %3940 ], [ @.str.2, %3936 ]
  store i32 %3931, ptr %765, align 4, !tbaa !5
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = load i32, ptr @test_count, align 4, !tbaa !5
  %3944 = load i32, ptr %711, align 4, !tbaa !5
  %3945 = call ptr @s2n_strerror(i32 noundef %3944, ptr noundef nonnull @.str.4) #11
  %3946 = load i32, ptr %711, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror_debug(i32 noundef %3946, ptr noundef nonnull @.str.4) #11
  %3948 = load i32, ptr %765, align 4, !tbaa !5
  %3949 = call ptr @strerror(i32 noundef %3948) #11
  %3950 = load i32, ptr %765, align 4, !tbaa !5
  %3951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3942, ptr noundef nonnull %.str.5.sink2602, i32 noundef %3943, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %3945, ptr noundef %3947, ptr noundef %3949, i32 noundef %3950) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3952:                                             ; preds = %3925
  %3953 = add nsw i32 %3926, 2
  store i32 %3953, ptr @test_count, align 4, !tbaa !5
  %3954 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_10, i64 8), align 8, !tbaa !31
  %3955 = icmp eq ptr %3954, @cipher_preferences_aws_crt_sdk_default
  br i1 %3955, label %3978, label %3956

3956:                                             ; preds = %3952
  %3957 = load i32, ptr %765, align 4, !tbaa !5
  %3958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3959 = call i32 @s2n_print_stacktrace(ptr noundef %3958) #11
  %3960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3961 = trunc nuw i8 %3960 to i1
  br i1 %3961, label %3962, label %3966

3962:                                             ; preds = %3956
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = call i32 @fileno(ptr noundef %3963) #11
  %3965 = call i32 @isatty(i32 noundef %3964) #11
  %.not931 = icmp eq i32 %3965, 0
  br i1 %.not931, label %3966, label %3967

3966:                                             ; preds = %3962, %3956
  br label %3967

3967:                                             ; preds = %3962, %3966
  %.str.5.sink2611 = phi ptr [ @.str.5, %3966 ], [ @.str.2, %3962 ]
  store i32 %3957, ptr %765, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = load i32, ptr %711, align 4, !tbaa !5
  %3971 = call ptr @s2n_strerror(i32 noundef %3970, ptr noundef nonnull @.str.4) #11
  %3972 = load i32, ptr %711, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror_debug(i32 noundef %3972, ptr noundef nonnull @.str.4) #11
  %3974 = load i32, ptr %765, align 4, !tbaa !5
  %3975 = call ptr @strerror(i32 noundef %3974) #11
  %3976 = load i32, ptr %765, align 4, !tbaa !5
  %3977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef nonnull %.str.5.sink2611, i32 noundef %3969, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %3971, ptr noundef %3973, ptr noundef %3975, i32 noundef %3976) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3978:                                             ; preds = %3952
  %3979 = add nsw i32 %3926, 3
  store i32 %3979, ptr @test_count, align 4, !tbaa !5
  %3980 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_10, i64 16), align 8, !tbaa !20
  %3981 = icmp eq ptr %3980, @kem_preferences_null
  br i1 %3981, label %4004, label %3982

3982:                                             ; preds = %3978
  %3983 = load i32, ptr %765, align 4, !tbaa !5
  %3984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3985 = call i32 @s2n_print_stacktrace(ptr noundef %3984) #11
  %3986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3987 = trunc nuw i8 %3986 to i1
  br i1 %3987, label %3988, label %3992

3988:                                             ; preds = %3982
  %3989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3990 = call i32 @fileno(ptr noundef %3989) #11
  %3991 = call i32 @isatty(i32 noundef %3990) #11
  %.not932 = icmp eq i32 %3991, 0
  br i1 %.not932, label %3992, label %3993

3992:                                             ; preds = %3988, %3982
  br label %3993

3993:                                             ; preds = %3988, %3992
  %.str.5.sink2620 = phi ptr [ @.str.5, %3992 ], [ @.str.2, %3988 ]
  store i32 %3983, ptr %765, align 4, !tbaa !5
  %3994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3995 = load i32, ptr @test_count, align 4, !tbaa !5
  %3996 = load i32, ptr %711, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror(i32 noundef %3996, ptr noundef nonnull @.str.4) #11
  %3998 = load i32, ptr %711, align 4, !tbaa !5
  %3999 = call ptr @s2n_strerror_debug(i32 noundef %3998, ptr noundef nonnull @.str.4) #11
  %4000 = load i32, ptr %765, align 4, !tbaa !5
  %4001 = call ptr @strerror(i32 noundef %4000) #11
  %4002 = load i32, ptr %765, align 4, !tbaa !5
  %4003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3994, ptr noundef nonnull %.str.5.sink2620, i32 noundef %3995, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %3997, ptr noundef %3999, ptr noundef %4001, i32 noundef %4002) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4004:                                             ; preds = %3978
  %4005 = add nsw i32 %3926, 4
  store i32 %4005, ptr @test_count, align 4, !tbaa !5
  %4006 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_10, i64 24), align 8, !tbaa !38
  %4007 = icmp eq ptr %4006, @s2n_signature_preferences_20200207
  br i1 %4007, label %4030, label %4008

4008:                                             ; preds = %4004
  %4009 = load i32, ptr %765, align 4, !tbaa !5
  %4010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4011 = call i32 @s2n_print_stacktrace(ptr noundef %4010) #11
  %4012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4013 = trunc nuw i8 %4012 to i1
  br i1 %4013, label %4014, label %4018

4014:                                             ; preds = %4008
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = call i32 @fileno(ptr noundef %4015) #11
  %4017 = call i32 @isatty(i32 noundef %4016) #11
  %.not933 = icmp eq i32 %4017, 0
  br i1 %.not933, label %4018, label %4019

4018:                                             ; preds = %4014, %4008
  br label %4019

4019:                                             ; preds = %4014, %4018
  %.str.5.sink2629 = phi ptr [ @.str.5, %4018 ], [ @.str.2, %4014 ]
  store i32 %4009, ptr %765, align 4, !tbaa !5
  %4020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4021 = load i32, ptr @test_count, align 4, !tbaa !5
  %4022 = load i32, ptr %711, align 4, !tbaa !5
  %4023 = call ptr @s2n_strerror(i32 noundef %4022, ptr noundef nonnull @.str.4) #11
  %4024 = load i32, ptr %711, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror_debug(i32 noundef %4024, ptr noundef nonnull @.str.4) #11
  %4026 = load i32, ptr %765, align 4, !tbaa !5
  %4027 = call ptr @strerror(i32 noundef %4026) #11
  %4028 = load i32, ptr %765, align 4, !tbaa !5
  %4029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4020, ptr noundef nonnull %.str.5.sink2629, i32 noundef %4021, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %4023, ptr noundef %4025, ptr noundef %4027, i32 noundef %4028) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4030:                                             ; preds = %4004
  %4031 = add nsw i32 %3926, 5
  store i32 %4031, ptr @test_count, align 4, !tbaa !5
  %4032 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_10, i64 40), align 8, !tbaa !64
  %4033 = icmp eq ptr %4032, @s2n_ecc_preferences_20200310
  br i1 %4033, label %4056, label %4034

4034:                                             ; preds = %4030
  %4035 = load i32, ptr %765, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = call i32 @s2n_print_stacktrace(ptr noundef %4036) #11
  %4038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4039 = trunc nuw i8 %4038 to i1
  br i1 %4039, label %4040, label %4044

4040:                                             ; preds = %4034
  %4041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4042 = call i32 @fileno(ptr noundef %4041) #11
  %4043 = call i32 @isatty(i32 noundef %4042) #11
  %.not934 = icmp eq i32 %4043, 0
  br i1 %.not934, label %4044, label %4045

4044:                                             ; preds = %4040, %4034
  br label %4045

4045:                                             ; preds = %4040, %4044
  %.str.5.sink2638 = phi ptr [ @.str.5, %4044 ], [ @.str.2, %4040 ]
  store i32 %4035, ptr %765, align 4, !tbaa !5
  %4046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = load i32, ptr %711, align 4, !tbaa !5
  %4049 = call ptr @s2n_strerror(i32 noundef %4048, ptr noundef nonnull @.str.4) #11
  %4050 = load i32, ptr %711, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror_debug(i32 noundef %4050, ptr noundef nonnull @.str.4) #11
  %4052 = load i32, ptr %765, align 4, !tbaa !5
  %4053 = call ptr @strerror(i32 noundef %4052) #11
  %4054 = load i32, ptr %765, align 4, !tbaa !5
  %4055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4046, ptr noundef nonnull %.str.5.sink2638, i32 noundef %4047, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %4049, ptr noundef %4051, ptr noundef %4053, i32 noundef %4054) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4056:                                             ; preds = %4030
  %4057 = add nsw i32 %3926, 6
  store i32 %4057, ptr @test_count, align 4, !tbaa !5
  %4058 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.119) #11
  %4059 = icmp eq i32 %4058, -1
  br i1 %4059, label %4060, label %4082

4060:                                             ; preds = %4056
  %4061 = load i32, ptr %765, align 4, !tbaa !5
  %4062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4063 = call i32 @s2n_print_stacktrace(ptr noundef %4062) #11
  %4064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4065 = trunc nuw i8 %4064 to i1
  br i1 %4065, label %4066, label %4070

4066:                                             ; preds = %4060
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = call i32 @fileno(ptr noundef %4067) #11
  %4069 = call i32 @isatty(i32 noundef %4068) #11
  %.not1091 = icmp eq i32 %4069, 0
  br i1 %.not1091, label %4070, label %4071

4070:                                             ; preds = %4066, %4060
  br label %4071

4071:                                             ; preds = %4066, %4070
  %.str.5.sink2647 = phi ptr [ @.str.5, %4070 ], [ @.str.2, %4066 ]
  store i32 %4061, ptr %765, align 4, !tbaa !5
  %4072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4073 = load i32, ptr @test_count, align 4, !tbaa !5
  %4074 = load i32, ptr %711, align 4, !tbaa !5
  %4075 = call ptr @s2n_strerror(i32 noundef %4074, ptr noundef nonnull @.str.4) #11
  %4076 = load i32, ptr %711, align 4, !tbaa !5
  %4077 = call ptr @s2n_strerror_debug(i32 noundef %4076, ptr noundef nonnull @.str.4) #11
  %4078 = load i32, ptr %765, align 4, !tbaa !5
  %4079 = call ptr @strerror(i32 noundef %4078) #11
  %4080 = load i32, ptr %765, align 4, !tbaa !5
  %4081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4072, ptr noundef nonnull %.str.5.sink2647, i32 noundef %4073, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %4075, ptr noundef %4077, ptr noundef %4079, i32 noundef %4080) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4082:                                             ; preds = %4056
  %4083 = load i32, ptr @test_count, align 4, !tbaa !5
  %4084 = add nsw i32 %4083, 1
  store i32 %4084, ptr @test_count, align 4, !tbaa !5
  %4085 = load ptr, ptr %2985, align 8, !tbaa !59
  %4086 = icmp eq ptr %4085, @security_policy_aws_crt_sdk_tls_11
  br i1 %4086, label %4109, label %4087

4087:                                             ; preds = %4082
  %4088 = load i32, ptr %765, align 4, !tbaa !5
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = call i32 @s2n_print_stacktrace(ptr noundef %4089) #11
  %4091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4092 = trunc nuw i8 %4091 to i1
  br i1 %4092, label %4093, label %4097

4093:                                             ; preds = %4087
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = call i32 @fileno(ptr noundef %4094) #11
  %4096 = call i32 @isatty(i32 noundef %4095) #11
  %.not935 = icmp eq i32 %4096, 0
  br i1 %.not935, label %4097, label %4098

4097:                                             ; preds = %4093, %4087
  br label %4098

4098:                                             ; preds = %4093, %4097
  %.str.5.sink2656 = phi ptr [ @.str.5, %4097 ], [ @.str.2, %4093 ]
  store i32 %4088, ptr %765, align 4, !tbaa !5
  %4099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4100 = load i32, ptr @test_count, align 4, !tbaa !5
  %4101 = load i32, ptr %711, align 4, !tbaa !5
  %4102 = call ptr @s2n_strerror(i32 noundef %4101, ptr noundef nonnull @.str.4) #11
  %4103 = load i32, ptr %711, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror_debug(i32 noundef %4103, ptr noundef nonnull @.str.4) #11
  %4105 = load i32, ptr %765, align 4, !tbaa !5
  %4106 = call ptr @strerror(i32 noundef %4105) #11
  %4107 = load i32, ptr %765, align 4, !tbaa !5
  %4108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4099, ptr noundef nonnull %.str.5.sink2656, i32 noundef %4100, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.1, i32 noundef 511, ptr noundef %4102, ptr noundef %4104, ptr noundef %4106, i32 noundef %4107) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4109:                                             ; preds = %4082
  %4110 = add nsw i32 %4083, 2
  store i32 %4110, ptr @test_count, align 4, !tbaa !5
  %4111 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_11, i64 8), align 8, !tbaa !31
  %4112 = icmp eq ptr %4111, @cipher_preferences_aws_crt_sdk_default
  br i1 %4112, label %4135, label %4113

4113:                                             ; preds = %4109
  %4114 = load i32, ptr %765, align 4, !tbaa !5
  %4115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4116 = call i32 @s2n_print_stacktrace(ptr noundef %4115) #11
  %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) #11
  %4122 = call i32 @isatty(i32 noundef %4121) #11
  %.not936 = icmp eq i32 %4122, 0
  br i1 %.not936, label %4123, label %4124

4123:                                             ; preds = %4119, %4113
  br label %4124

4124:                                             ; preds = %4119, %4123
  %.str.5.sink2665 = phi ptr [ @.str.5, %4123 ], [ @.str.2, %4119 ]
  store i32 %4114, ptr %765, 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 %711, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror(i32 noundef %4127, ptr noundef nonnull @.str.4) #11
  %4129 = load i32, ptr %711, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror_debug(i32 noundef %4129, ptr noundef nonnull @.str.4) #11
  %4131 = load i32, ptr %765, align 4, !tbaa !5
  %4132 = call ptr @strerror(i32 noundef %4131) #11
  %4133 = load i32, ptr %765, align 4, !tbaa !5
  %4134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4125, ptr noundef nonnull %.str.5.sink2665, i32 noundef %4126, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %4128, ptr noundef %4130, ptr noundef %4132, i32 noundef %4133) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4135:                                             ; preds = %4109
  %4136 = add nsw i32 %4083, 3
  store i32 %4136, ptr @test_count, align 4, !tbaa !5
  %4137 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_11, i64 16), align 8, !tbaa !20
  %4138 = icmp eq ptr %4137, @kem_preferences_null
  br i1 %4138, label %4161, label %4139

4139:                                             ; preds = %4135
  %4140 = load i32, ptr %765, align 4, !tbaa !5
  %4141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4142 = call i32 @s2n_print_stacktrace(ptr noundef %4141) #11
  %4143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4144 = trunc nuw i8 %4143 to i1
  br i1 %4144, label %4145, label %4149

4145:                                             ; preds = %4139
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = call i32 @fileno(ptr noundef %4146) #11
  %4148 = call i32 @isatty(i32 noundef %4147) #11
  %.not937 = icmp eq i32 %4148, 0
  br i1 %.not937, label %4149, label %4150

4149:                                             ; preds = %4145, %4139
  br label %4150

4150:                                             ; preds = %4145, %4149
  %.str.5.sink2674 = phi ptr [ @.str.5, %4149 ], [ @.str.2, %4145 ]
  store i32 %4140, ptr %765, align 4, !tbaa !5
  %4151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = load i32, ptr %711, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror(i32 noundef %4153, ptr noundef nonnull @.str.4) #11
  %4155 = load i32, ptr %711, align 4, !tbaa !5
  %4156 = call ptr @s2n_strerror_debug(i32 noundef %4155, ptr noundef nonnull @.str.4) #11
  %4157 = load i32, ptr %765, align 4, !tbaa !5
  %4158 = call ptr @strerror(i32 noundef %4157) #11
  %4159 = load i32, ptr %765, align 4, !tbaa !5
  %4160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4151, ptr noundef nonnull %.str.5.sink2674, i32 noundef %4152, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %4154, ptr noundef %4156, ptr noundef %4158, i32 noundef %4159) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4161:                                             ; preds = %4135
  %4162 = add nsw i32 %4083, 4
  store i32 %4162, ptr @test_count, align 4, !tbaa !5
  %4163 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_11, i64 24), align 8, !tbaa !38
  %4164 = icmp eq ptr %4163, @s2n_signature_preferences_20200207
  br i1 %4164, label %4187, label %4165

4165:                                             ; preds = %4161
  %4166 = load i32, ptr %765, align 4, !tbaa !5
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = call i32 @s2n_print_stacktrace(ptr noundef %4167) #11
  %4169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4170 = trunc nuw i8 %4169 to i1
  br i1 %4170, label %4171, label %4175

4171:                                             ; preds = %4165
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = call i32 @fileno(ptr noundef %4172) #11
  %4174 = call i32 @isatty(i32 noundef %4173) #11
  %.not938 = icmp eq i32 %4174, 0
  br i1 %.not938, label %4175, label %4176

4175:                                             ; preds = %4171, %4165
  br label %4176

4176:                                             ; preds = %4171, %4175
  %.str.5.sink2683 = phi ptr [ @.str.5, %4175 ], [ @.str.2, %4171 ]
  store i32 %4166, ptr %765, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = load i32, ptr @test_count, align 4, !tbaa !5
  %4179 = load i32, ptr %711, align 4, !tbaa !5
  %4180 = call ptr @s2n_strerror(i32 noundef %4179, ptr noundef nonnull @.str.4) #11
  %4181 = load i32, ptr %711, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror_debug(i32 noundef %4181, ptr noundef nonnull @.str.4) #11
  %4183 = load i32, ptr %765, align 4, !tbaa !5
  %4184 = call ptr @strerror(i32 noundef %4183) #11
  %4185 = load i32, ptr %765, align 4, !tbaa !5
  %4186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4177, ptr noundef nonnull %.str.5.sink2683, i32 noundef %4178, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %4180, ptr noundef %4182, ptr noundef %4184, i32 noundef %4185) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4187:                                             ; preds = %4161
  %4188 = add nsw i32 %4083, 5
  store i32 %4188, ptr @test_count, align 4, !tbaa !5
  %4189 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_11, i64 40), align 8, !tbaa !64
  %4190 = icmp eq ptr %4189, @s2n_ecc_preferences_20200310
  br i1 %4190, label %4213, label %4191

4191:                                             ; preds = %4187
  %4192 = load i32, ptr %765, align 4, !tbaa !5
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @s2n_print_stacktrace(ptr noundef %4193) #11
  %4195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4196 = trunc nuw i8 %4195 to i1
  br i1 %4196, label %4197, label %4201

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

4201:                                             ; preds = %4197, %4191
  br label %4202

4202:                                             ; preds = %4197, %4201
  %.str.5.sink2692 = phi ptr [ @.str.5, %4201 ], [ @.str.2, %4197 ]
  store i32 %4192, ptr %765, align 4, !tbaa !5
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = load i32, ptr @test_count, align 4, !tbaa !5
  %4205 = load i32, ptr %711, align 4, !tbaa !5
  %4206 = call ptr @s2n_strerror(i32 noundef %4205, ptr noundef nonnull @.str.4) #11
  %4207 = load i32, ptr %711, align 4, !tbaa !5
  %4208 = call ptr @s2n_strerror_debug(i32 noundef %4207, ptr noundef nonnull @.str.4) #11
  %4209 = load i32, ptr %765, align 4, !tbaa !5
  %4210 = call ptr @strerror(i32 noundef %4209) #11
  %4211 = load i32, ptr %765, align 4, !tbaa !5
  %4212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4203, ptr noundef nonnull %.str.5.sink2692, i32 noundef %4204, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 515, ptr noundef %4206, ptr noundef %4208, ptr noundef %4210, i32 noundef %4211) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4213:                                             ; preds = %4187
  %4214 = add nsw i32 %4083, 6
  store i32 %4214, ptr @test_count, align 4, !tbaa !5
  %4215 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.122) #11
  %4216 = icmp eq i32 %4215, -1
  br i1 %4216, label %4217, label %4239

4217:                                             ; preds = %4213
  %4218 = load i32, ptr %765, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @s2n_print_stacktrace(ptr noundef %4219) #11
  %4221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4222 = trunc nuw i8 %4221 to i1
  br i1 %4222, label %4223, label %4227

4223:                                             ; preds = %4217
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @fileno(ptr noundef %4224) #11
  %4226 = call i32 @isatty(i32 noundef %4225) #11
  %.not1090 = icmp eq i32 %4226, 0
  br i1 %.not1090, label %4227, label %4228

4227:                                             ; preds = %4223, %4217
  br label %4228

4228:                                             ; preds = %4223, %4227
  %.str.5.sink2701 = phi ptr [ @.str.5, %4227 ], [ @.str.2, %4223 ]
  store i32 %4218, ptr %765, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = load i32, ptr %711, align 4, !tbaa !5
  %4232 = call ptr @s2n_strerror(i32 noundef %4231, ptr noundef nonnull @.str.4) #11
  %4233 = load i32, ptr %711, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror_debug(i32 noundef %4233, ptr noundef nonnull @.str.4) #11
  %4235 = load i32, ptr %765, align 4, !tbaa !5
  %4236 = call ptr @strerror(i32 noundef %4235) #11
  %4237 = load i32, ptr %765, align 4, !tbaa !5
  %4238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef nonnull %.str.5.sink2701, i32 noundef %4230, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.1, i32 noundef 517, ptr noundef %4232, ptr noundef %4234, ptr noundef %4236, i32 noundef %4237) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4239:                                             ; preds = %4213
  %4240 = load i32, ptr @test_count, align 4, !tbaa !5
  %4241 = add nsw i32 %4240, 1
  store i32 %4241, ptr @test_count, align 4, !tbaa !5
  %4242 = load ptr, ptr %2985, align 8, !tbaa !59
  %4243 = icmp eq ptr %4242, @security_policy_aws_crt_sdk_tls_12
  br i1 %4243, label %4266, label %4244

4244:                                             ; preds = %4239
  %4245 = load i32, ptr %765, align 4, !tbaa !5
  %4246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4247 = call i32 @s2n_print_stacktrace(ptr noundef %4246) #11
  %4248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4249 = trunc nuw i8 %4248 to i1
  br i1 %4249, label %4250, label %4254

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

4254:                                             ; preds = %4250, %4244
  br label %4255

4255:                                             ; preds = %4250, %4254
  %.str.5.sink2710 = phi ptr [ @.str.5, %4254 ], [ @.str.2, %4250 ]
  store i32 %4245, ptr %765, align 4, !tbaa !5
  %4256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4257 = load i32, ptr @test_count, align 4, !tbaa !5
  %4258 = load i32, ptr %711, align 4, !tbaa !5
  %4259 = call ptr @s2n_strerror(i32 noundef %4258, ptr noundef nonnull @.str.4) #11
  %4260 = load i32, ptr %711, align 4, !tbaa !5
  %4261 = call ptr @s2n_strerror_debug(i32 noundef %4260, ptr noundef nonnull @.str.4) #11
  %4262 = load i32, ptr %765, align 4, !tbaa !5
  %4263 = call ptr @strerror(i32 noundef %4262) #11
  %4264 = load i32, ptr %765, align 4, !tbaa !5
  %4265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4256, ptr noundef nonnull %.str.5.sink2710, i32 noundef %4257, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 518, ptr noundef %4259, ptr noundef %4261, ptr noundef %4263, i32 noundef %4264) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4266:                                             ; preds = %4239
  %4267 = add nsw i32 %4240, 2
  store i32 %4267, ptr @test_count, align 4, !tbaa !5
  %4268 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_12, i64 8), align 8, !tbaa !31
  %4269 = icmp eq ptr %4268, @cipher_preferences_aws_crt_sdk_default
  br i1 %4269, label %4292, label %4270

4270:                                             ; preds = %4266
  %4271 = load i32, ptr %765, align 4, !tbaa !5
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4273 = call i32 @s2n_print_stacktrace(ptr noundef %4272) #11
  %4274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4275 = trunc nuw i8 %4274 to i1
  br i1 %4275, label %4276, label %4280

4276:                                             ; preds = %4270
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = call i32 @fileno(ptr noundef %4277) #11
  %4279 = call i32 @isatty(i32 noundef %4278) #11
  %.not941 = icmp eq i32 %4279, 0
  br i1 %.not941, label %4280, label %4281

4280:                                             ; preds = %4276, %4270
  br label %4281

4281:                                             ; preds = %4276, %4280
  %.str.5.sink2719 = phi ptr [ @.str.5, %4280 ], [ @.str.2, %4276 ]
  store i32 %4271, ptr %765, align 4, !tbaa !5
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4283 = load i32, ptr @test_count, align 4, !tbaa !5
  %4284 = load i32, ptr %711, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror(i32 noundef %4284, ptr noundef nonnull @.str.4) #11
  %4286 = load i32, ptr %711, align 4, !tbaa !5
  %4287 = call ptr @s2n_strerror_debug(i32 noundef %4286, ptr noundef nonnull @.str.4) #11
  %4288 = load i32, ptr %765, align 4, !tbaa !5
  %4289 = call ptr @strerror(i32 noundef %4288) #11
  %4290 = load i32, ptr %765, align 4, !tbaa !5
  %4291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4282, ptr noundef nonnull %.str.5.sink2719, i32 noundef %4283, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 519, ptr noundef %4285, ptr noundef %4287, ptr noundef %4289, i32 noundef %4290) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4292:                                             ; preds = %4266
  %4293 = add nsw i32 %4240, 3
  store i32 %4293, ptr @test_count, align 4, !tbaa !5
  %4294 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_12, i64 16), align 8, !tbaa !20
  %4295 = icmp eq ptr %4294, @kem_preferences_null
  br i1 %4295, label %4318, label %4296

4296:                                             ; preds = %4292
  %4297 = load i32, ptr %765, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = call i32 @s2n_print_stacktrace(ptr noundef %4298) #11
  %4300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4301 = trunc nuw i8 %4300 to i1
  br i1 %4301, label %4302, label %4306

4302:                                             ; preds = %4296
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @fileno(ptr noundef %4303) #11
  %4305 = call i32 @isatty(i32 noundef %4304) #11
  %.not942 = icmp eq i32 %4305, 0
  br i1 %.not942, label %4306, label %4307

4306:                                             ; preds = %4302, %4296
  br label %4307

4307:                                             ; preds = %4302, %4306
  %.str.5.sink2728 = phi ptr [ @.str.5, %4306 ], [ @.str.2, %4302 ]
  store i32 %4297, ptr %765, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = load i32, ptr %711, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror(i32 noundef %4310, ptr noundef nonnull @.str.4) #11
  %4312 = load i32, ptr %711, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror_debug(i32 noundef %4312, ptr noundef nonnull @.str.4) #11
  %4314 = load i32, ptr %765, align 4, !tbaa !5
  %4315 = call ptr @strerror(i32 noundef %4314) #11
  %4316 = load i32, ptr %765, align 4, !tbaa !5
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4308, ptr noundef nonnull %.str.5.sink2728, i32 noundef %4309, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 520, ptr noundef %4311, ptr noundef %4313, ptr noundef %4315, i32 noundef %4316) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4318:                                             ; preds = %4292
  %4319 = add nsw i32 %4240, 4
  store i32 %4319, ptr @test_count, align 4, !tbaa !5
  %4320 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_12, i64 24), align 8, !tbaa !38
  %4321 = icmp eq ptr %4320, @s2n_signature_preferences_20200207
  br i1 %4321, label %4344, label %4322

4322:                                             ; preds = %4318
  %4323 = load i32, ptr %765, align 4, !tbaa !5
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = call i32 @s2n_print_stacktrace(ptr noundef %4324) #11
  %4326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4327 = trunc nuw i8 %4326 to i1
  br i1 %4327, label %4328, label %4332

4328:                                             ; preds = %4322
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = call i32 @fileno(ptr noundef %4329) #11
  %4331 = call i32 @isatty(i32 noundef %4330) #11
  %.not943 = icmp eq i32 %4331, 0
  br i1 %.not943, label %4332, label %4333

4332:                                             ; preds = %4328, %4322
  br label %4333

4333:                                             ; preds = %4328, %4332
  %.str.5.sink2737 = phi ptr [ @.str.5, %4332 ], [ @.str.2, %4328 ]
  store i32 %4323, ptr %765, align 4, !tbaa !5
  %4334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4335 = load i32, ptr @test_count, align 4, !tbaa !5
  %4336 = load i32, ptr %711, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror(i32 noundef %4336, ptr noundef nonnull @.str.4) #11
  %4338 = load i32, ptr %711, align 4, !tbaa !5
  %4339 = call ptr @s2n_strerror_debug(i32 noundef %4338, ptr noundef nonnull @.str.4) #11
  %4340 = load i32, ptr %765, align 4, !tbaa !5
  %4341 = call ptr @strerror(i32 noundef %4340) #11
  %4342 = load i32, ptr %765, align 4, !tbaa !5
  %4343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4334, ptr noundef nonnull %.str.5.sink2737, i32 noundef %4335, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %4337, ptr noundef %4339, ptr noundef %4341, i32 noundef %4342) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4344:                                             ; preds = %4318
  %4345 = add nsw i32 %4240, 5
  store i32 %4345, ptr @test_count, align 4, !tbaa !5
  %4346 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_12, i64 40), align 8, !tbaa !64
  %4347 = icmp eq ptr %4346, @s2n_ecc_preferences_20200310
  br i1 %4347, label %4370, label %4348

4348:                                             ; preds = %4344
  %4349 = load i32, ptr %765, align 4, !tbaa !5
  %4350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4351 = call i32 @s2n_print_stacktrace(ptr noundef %4350) #11
  %4352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4353 = trunc nuw i8 %4352 to i1
  br i1 %4353, label %4354, label %4358

4354:                                             ; preds = %4348
  %4355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4356 = call i32 @fileno(ptr noundef %4355) #11
  %4357 = call i32 @isatty(i32 noundef %4356) #11
  %.not944 = icmp eq i32 %4357, 0
  br i1 %.not944, label %4358, label %4359

4358:                                             ; preds = %4354, %4348
  br label %4359

4359:                                             ; preds = %4354, %4358
  %.str.5.sink2746 = phi ptr [ @.str.5, %4358 ], [ @.str.2, %4354 ]
  store i32 %4349, ptr %765, align 4, !tbaa !5
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = load i32, ptr @test_count, align 4, !tbaa !5
  %4362 = load i32, ptr %711, align 4, !tbaa !5
  %4363 = call ptr @s2n_strerror(i32 noundef %4362, ptr noundef nonnull @.str.4) #11
  %4364 = load i32, ptr %711, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror_debug(i32 noundef %4364, ptr noundef nonnull @.str.4) #11
  %4366 = load i32, ptr %765, align 4, !tbaa !5
  %4367 = call ptr @strerror(i32 noundef %4366) #11
  %4368 = load i32, ptr %765, align 4, !tbaa !5
  %4369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4360, ptr noundef nonnull %.str.5.sink2746, i32 noundef %4361, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %4363, ptr noundef %4365, ptr noundef %4367, i32 noundef %4368) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4370:                                             ; preds = %4344
  %4371 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = add nsw i32 %4372, 1
  store i32 %4373, ptr @test_count, align 4, !tbaa !5
  %4374 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.125) #11
  %4375 = icmp eq i32 %4374, -1
  br i1 %4371, label %4376, label %4530

4376:                                             ; preds = %4370
  br i1 %4375, label %4377, label %4399

4377:                                             ; preds = %4376
  %4378 = load i32, ptr %765, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4380 = call i32 @s2n_print_stacktrace(ptr noundef %4379) #11
  %4381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4382 = trunc nuw i8 %4381 to i1
  br i1 %4382, label %4383, label %4387

4383:                                             ; preds = %4377
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = call i32 @fileno(ptr noundef %4384) #11
  %4386 = call i32 @isatty(i32 noundef %4385) #11
  %.not1089 = icmp eq i32 %4386, 0
  br i1 %.not1089, label %4387, label %4388

4387:                                             ; preds = %4383, %4377
  br label %4388

4388:                                             ; preds = %4383, %4387
  %.str.5.sink2755 = phi ptr [ @.str.5, %4387 ], [ @.str.2, %4383 ]
  store i32 %4378, ptr %765, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %4391 = load i32, ptr %711, align 4, !tbaa !5
  %4392 = call ptr @s2n_strerror(i32 noundef %4391, ptr noundef nonnull @.str.4) #11
  %4393 = load i32, ptr %711, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror_debug(i32 noundef %4393, ptr noundef nonnull @.str.4) #11
  %4395 = load i32, ptr %765, align 4, !tbaa !5
  %4396 = call ptr @strerror(i32 noundef %4395) #11
  %4397 = load i32, ptr %765, align 4, !tbaa !5
  %4398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4389, ptr noundef nonnull %.str.5.sink2755, i32 noundef %4390, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.1, i32 noundef 525, ptr noundef %4392, ptr noundef %4394, ptr noundef %4396, i32 noundef %4397) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4399:                                             ; preds = %4376
  %4400 = load i32, ptr @test_count, align 4, !tbaa !5
  %4401 = add nsw i32 %4400, 1
  store i32 %4401, ptr @test_count, align 4, !tbaa !5
  %4402 = load ptr, ptr %2985, align 8, !tbaa !59
  %4403 = icmp eq ptr %4402, @security_policy_aws_crt_sdk_tls_13
  br i1 %4403, label %4426, label %4404

4404:                                             ; preds = %4399
  %4405 = load i32, ptr %765, align 4, !tbaa !5
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = call i32 @s2n_print_stacktrace(ptr noundef %4406) #11
  %4408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4409 = trunc nuw i8 %4408 to i1
  br i1 %4409, label %4410, label %4414

4410:                                             ; preds = %4404
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4412 = call i32 @fileno(ptr noundef %4411) #11
  %4413 = call i32 @isatty(i32 noundef %4412) #11
  %.not948 = icmp eq i32 %4413, 0
  br i1 %.not948, label %4414, label %4415

4414:                                             ; preds = %4410, %4404
  br label %4415

4415:                                             ; preds = %4410, %4414
  %.str.5.sink2764 = phi ptr [ @.str.5, %4414 ], [ @.str.2, %4410 ]
  store i32 %4405, ptr %765, align 4, !tbaa !5
  %4416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4417 = load i32, ptr @test_count, align 4, !tbaa !5
  %4418 = load i32, ptr %711, align 4, !tbaa !5
  %4419 = call ptr @s2n_strerror(i32 noundef %4418, ptr noundef nonnull @.str.4) #11
  %4420 = load i32, ptr %711, align 4, !tbaa !5
  %4421 = call ptr @s2n_strerror_debug(i32 noundef %4420, ptr noundef nonnull @.str.4) #11
  %4422 = load i32, ptr %765, align 4, !tbaa !5
  %4423 = call ptr @strerror(i32 noundef %4422) #11
  %4424 = load i32, ptr %765, align 4, !tbaa !5
  %4425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4416, ptr noundef nonnull %.str.5.sink2764, i32 noundef %4417, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.1, i32 noundef 526, ptr noundef %4419, ptr noundef %4421, ptr noundef %4423, i32 noundef %4424) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4426:                                             ; preds = %4399
  %4427 = add nsw i32 %4400, 2
  store i32 %4427, ptr @test_count, align 4, !tbaa !5
  %4428 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_13, i64 8), align 8, !tbaa !31
  %4429 = icmp eq ptr %4428, @cipher_preferences_aws_crt_sdk_tls_13
  br i1 %4429, label %4452, label %4430

4430:                                             ; preds = %4426
  %4431 = load i32, ptr %765, align 4, !tbaa !5
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = call i32 @s2n_print_stacktrace(ptr noundef %4432) #11
  %4434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4435 = trunc nuw i8 %4434 to i1
  br i1 %4435, label %4436, label %4440

4436:                                             ; preds = %4430
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = call i32 @fileno(ptr noundef %4437) #11
  %4439 = call i32 @isatty(i32 noundef %4438) #11
  %.not949 = icmp eq i32 %4439, 0
  br i1 %.not949, label %4440, label %4441

4440:                                             ; preds = %4436, %4430
  br label %4441

4441:                                             ; preds = %4436, %4440
  %.str.5.sink2773 = phi ptr [ @.str.5, %4440 ], [ @.str.2, %4436 ]
  store i32 %4431, ptr %765, align 4, !tbaa !5
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = load i32, ptr @test_count, align 4, !tbaa !5
  %4444 = load i32, ptr %711, align 4, !tbaa !5
  %4445 = call ptr @s2n_strerror(i32 noundef %4444, ptr noundef nonnull @.str.4) #11
  %4446 = load i32, ptr %711, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror_debug(i32 noundef %4446, ptr noundef nonnull @.str.4) #11
  %4448 = load i32, ptr %765, align 4, !tbaa !5
  %4449 = call ptr @strerror(i32 noundef %4448) #11
  %4450 = load i32, ptr %765, align 4, !tbaa !5
  %4451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4442, ptr noundef nonnull %.str.5.sink2773, i32 noundef %4443, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.1, i32 noundef 527, ptr noundef %4445, ptr noundef %4447, ptr noundef %4449, i32 noundef %4450) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4452:                                             ; preds = %4426
  %4453 = add nsw i32 %4400, 3
  store i32 %4453, ptr @test_count, align 4, !tbaa !5
  %4454 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_13, i64 16), align 8, !tbaa !20
  %4455 = icmp eq ptr %4454, @kem_preferences_null
  br i1 %4455, label %4478, label %4456

4456:                                             ; preds = %4452
  %4457 = load i32, ptr %765, align 4, !tbaa !5
  %4458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4459 = call i32 @s2n_print_stacktrace(ptr noundef %4458) #11
  %4460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4461 = trunc nuw i8 %4460 to i1
  br i1 %4461, label %4462, label %4466

4462:                                             ; preds = %4456
  %4463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4464 = call i32 @fileno(ptr noundef %4463) #11
  %4465 = call i32 @isatty(i32 noundef %4464) #11
  %.not950 = icmp eq i32 %4465, 0
  br i1 %.not950, label %4466, label %4467

4466:                                             ; preds = %4462, %4456
  br label %4467

4467:                                             ; preds = %4462, %4466
  %.str.5.sink2782 = phi ptr [ @.str.5, %4466 ], [ @.str.2, %4462 ]
  store i32 %4457, ptr %765, align 4, !tbaa !5
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = load i32, ptr @test_count, align 4, !tbaa !5
  %4470 = load i32, ptr %711, align 4, !tbaa !5
  %4471 = call ptr @s2n_strerror(i32 noundef %4470, ptr noundef nonnull @.str.4) #11
  %4472 = load i32, ptr %711, align 4, !tbaa !5
  %4473 = call ptr @s2n_strerror_debug(i32 noundef %4472, ptr noundef nonnull @.str.4) #11
  %4474 = load i32, ptr %765, align 4, !tbaa !5
  %4475 = call ptr @strerror(i32 noundef %4474) #11
  %4476 = load i32, ptr %765, align 4, !tbaa !5
  %4477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4468, ptr noundef nonnull %.str.5.sink2782, i32 noundef %4469, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 528, ptr noundef %4471, ptr noundef %4473, ptr noundef %4475, i32 noundef %4476) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4478:                                             ; preds = %4452
  %4479 = add nsw i32 %4400, 4
  store i32 %4479, ptr @test_count, align 4, !tbaa !5
  %4480 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_13, i64 24), align 8, !tbaa !38
  %4481 = icmp eq ptr %4480, @s2n_signature_preferences_20200207
  br i1 %4481, label %4504, label %4482

4482:                                             ; preds = %4478
  %4483 = load i32, ptr %765, align 4, !tbaa !5
  %4484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4485 = call i32 @s2n_print_stacktrace(ptr noundef %4484) #11
  %4486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4487 = trunc nuw i8 %4486 to i1
  br i1 %4487, label %4488, label %4492

4488:                                             ; preds = %4482
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = call i32 @fileno(ptr noundef %4489) #11
  %4491 = call i32 @isatty(i32 noundef %4490) #11
  %.not951 = icmp eq i32 %4491, 0
  br i1 %.not951, label %4492, label %4493

4492:                                             ; preds = %4488, %4482
  br label %4493

4493:                                             ; preds = %4488, %4492
  %.str.5.sink2791 = phi ptr [ @.str.5, %4492 ], [ @.str.2, %4488 ]
  store i32 %4483, ptr %765, align 4, !tbaa !5
  %4494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4495 = load i32, ptr @test_count, align 4, !tbaa !5
  %4496 = load i32, ptr %711, align 4, !tbaa !5
  %4497 = call ptr @s2n_strerror(i32 noundef %4496, ptr noundef nonnull @.str.4) #11
  %4498 = load i32, ptr %711, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror_debug(i32 noundef %4498, ptr noundef nonnull @.str.4) #11
  %4500 = load i32, ptr %765, align 4, !tbaa !5
  %4501 = call ptr @strerror(i32 noundef %4500) #11
  %4502 = load i32, ptr %765, align 4, !tbaa !5
  %4503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4494, ptr noundef nonnull %.str.5.sink2791, i32 noundef %4495, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 529, ptr noundef %4497, ptr noundef %4499, ptr noundef %4501, i32 noundef %4502) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4504:                                             ; preds = %4478
  %4505 = add nsw i32 %4400, 5
  store i32 %4505, ptr @test_count, align 4, !tbaa !5
  %4506 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_aws_crt_sdk_tls_13, i64 40), align 8, !tbaa !64
  %4507 = icmp eq ptr %4506, @s2n_ecc_preferences_20200310
  br i1 %4507, label %4607, label %4508

4508:                                             ; preds = %4504
  %4509 = load i32, ptr %765, align 4, !tbaa !5
  %4510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4511 = call i32 @s2n_print_stacktrace(ptr noundef %4510) #11
  %4512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4513 = trunc nuw i8 %4512 to i1
  br i1 %4513, label %4514, label %4518

4514:                                             ; preds = %4508
  %4515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4516 = call i32 @fileno(ptr noundef %4515) #11
  %4517 = call i32 @isatty(i32 noundef %4516) #11
  %.not952 = icmp eq i32 %4517, 0
  br i1 %.not952, label %4518, label %4519

4518:                                             ; preds = %4514, %4508
  br label %4519

4519:                                             ; preds = %4514, %4518
  %.str.5.sink2800 = phi ptr [ @.str.5, %4518 ], [ @.str.2, %4514 ]
  store i32 %4509, ptr %765, align 4, !tbaa !5
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = load i32, ptr @test_count, align 4, !tbaa !5
  %4522 = load i32, ptr %711, align 4, !tbaa !5
  %4523 = call ptr @s2n_strerror(i32 noundef %4522, ptr noundef nonnull @.str.4) #11
  %4524 = load i32, ptr %711, align 4, !tbaa !5
  %4525 = call ptr @s2n_strerror_debug(i32 noundef %4524, ptr noundef nonnull @.str.4) #11
  %4526 = load i32, ptr %765, align 4, !tbaa !5
  %4527 = call ptr @strerror(i32 noundef %4526) #11
  %4528 = load i32, ptr %765, align 4, !tbaa !5
  %4529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4520, ptr noundef nonnull %.str.5.sink2800, i32 noundef %4521, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %4523, ptr noundef %4525, ptr noundef %4527, i32 noundef %4528) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4530:                                             ; preds = %4370
  br i1 %4375, label %4553, label %4531

4531:                                             ; preds = %4530
  %4532 = load i32, ptr %765, align 4, !tbaa !5
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = call i32 @s2n_print_stacktrace(ptr noundef %4533) #11
  %4535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4536 = trunc nuw i8 %4535 to i1
  br i1 %4536, label %4537, label %4541

4537:                                             ; preds = %4531
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = call i32 @fileno(ptr noundef %4538) #11
  %4540 = call i32 @isatty(i32 noundef %4539) #11
  %.not945 = icmp eq i32 %4540, 0
  br i1 %.not945, label %4541, label %4542

4541:                                             ; preds = %4537, %4531
  br label %4542

4542:                                             ; preds = %4537, %4541
  %.str.5.sink2809 = phi ptr [ @.str.5, %4541 ], [ @.str.2, %4537 ]
  store i32 %4532, ptr %765, align 4, !tbaa !5
  %4543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4544 = load i32, ptr @test_count, align 4, !tbaa !5
  %4545 = load i32, ptr %711, align 4, !tbaa !5
  %4546 = call ptr @s2n_strerror(i32 noundef %4545, ptr noundef nonnull @.str.4) #11
  %4547 = load i32, ptr %711, align 4, !tbaa !5
  %4548 = call ptr @s2n_strerror_debug(i32 noundef %4547, ptr noundef nonnull @.str.4) #11
  %4549 = load i32, ptr %765, align 4, !tbaa !5
  %4550 = call ptr @strerror(i32 noundef %4549) #11
  %4551 = load i32, ptr %765, align 4, !tbaa !5
  %4552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4543, ptr noundef nonnull %.str.5.sink2809, i32 noundef %4544, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %4546, ptr noundef %4548, ptr noundef %4550, i32 noundef %4551) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4553:                                             ; preds = %4530
  %4554 = load i32, ptr @test_count, align 4, !tbaa !5
  %4555 = add nsw i32 %4554, 1
  store i32 %4555, ptr @test_count, align 4, !tbaa !5
  %4556 = load i32, ptr %711, align 4, !tbaa !5
  %4557 = icmp eq i32 %4556, 0
  br i1 %4557, label %4558, label %4580

4558:                                             ; preds = %4553
  %4559 = load i32, ptr %765, align 4, !tbaa !5
  %4560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4561 = call i32 @s2n_print_stacktrace(ptr noundef %4560) #11
  %4562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4563 = trunc nuw i8 %4562 to i1
  br i1 %4563, label %4564, label %4568

4564:                                             ; preds = %4558
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @fileno(ptr noundef %4565) #11
  %4567 = call i32 @isatty(i32 noundef %4566) #11
  %.not947 = icmp eq i32 %4567, 0
  br i1 %.not947, label %4568, label %4569

4568:                                             ; preds = %4564, %4558
  br label %4569

4569:                                             ; preds = %4564, %4568
  %.str.5.sink2818 = phi ptr [ @.str.5, %4568 ], [ @.str.2, %4564 ]
  store i32 %4559, ptr %765, align 4, !tbaa !5
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = load i32, ptr @test_count, align 4, !tbaa !5
  %4572 = load i32, ptr %711, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror(i32 noundef %4572, ptr noundef nonnull @.str.4) #11
  %4574 = load i32, ptr %711, align 4, !tbaa !5
  %4575 = call ptr @s2n_strerror_debug(i32 noundef %4574, ptr noundef nonnull @.str.4) #11
  %4576 = load i32, ptr %765, align 4, !tbaa !5
  %4577 = call ptr @strerror(i32 noundef %4576) #11
  %4578 = load i32, ptr %765, align 4, !tbaa !5
  %4579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4570, ptr noundef nonnull %.str.5.sink2818, i32 noundef %4571, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %4573, ptr noundef %4575, ptr noundef %4577, i32 noundef %4578) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4580:                                             ; preds = %4553
  %4581 = add nsw i32 %4554, 2
  store i32 %4581, ptr @test_count, align 4, !tbaa !5
  %4582 = call ptr @s2n_strerror_debug(i32 noundef %4556, ptr noundef nonnull @.str.4) #11
  %4583 = icmp eq ptr %4582, null
  br i1 %4583, label %4584, label %4606

4584:                                             ; preds = %4580
  %4585 = load i32, ptr %765, align 4, !tbaa !5
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = call i32 @s2n_print_stacktrace(ptr noundef %4586) #11
  %4588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4589 = trunc nuw i8 %4588 to i1
  br i1 %4589, label %4590, label %4594

4590:                                             ; preds = %4584
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = call i32 @fileno(ptr noundef %4591) #11
  %4593 = call i32 @isatty(i32 noundef %4592) #11
  %.not946 = icmp eq i32 %4593, 0
  br i1 %.not946, label %4594, label %4595

4594:                                             ; preds = %4590, %4584
  br label %4595

4595:                                             ; preds = %4590, %4594
  %.str.5.sink2827 = phi ptr [ @.str.5, %4594 ], [ @.str.2, %4590 ]
  store i32 %4585, ptr %765, align 4, !tbaa !5
  %4596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4597 = load i32, ptr @test_count, align 4, !tbaa !5
  %4598 = load i32, ptr %711, align 4, !tbaa !5
  %4599 = call ptr @s2n_strerror(i32 noundef %4598, ptr noundef nonnull @.str.4) #11
  %4600 = load i32, ptr %711, align 4, !tbaa !5
  %4601 = call ptr @s2n_strerror_debug(i32 noundef %4600, ptr noundef nonnull @.str.4) #11
  %4602 = load i32, ptr %765, align 4, !tbaa !5
  %4603 = call ptr @strerror(i32 noundef %4602) #11
  %4604 = load i32, ptr %765, align 4, !tbaa !5
  %4605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4596, ptr noundef nonnull %.str.5.sink2827, i32 noundef %4597, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %4599, ptr noundef %4601, ptr noundef %4603, i32 noundef %4604) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4606:                                             ; preds = %4580
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %4607

4607:                                             ; preds = %4504, %4606
  %4608 = phi i32 [ %4505, %4504 ], [ %.pre, %4606 ]
  %4609 = add nsw i32 %4608, 1
  store i32 %4609, ptr @test_count, align 4, !tbaa !5
  %4610 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef null) #11
  %4611 = icmp eq i32 %4610, -1
  br i1 %4611, label %4634, label %4612

4612:                                             ; preds = %4607
  %4613 = load i32, ptr %765, align 4, !tbaa !5
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = call i32 @s2n_print_stacktrace(ptr noundef %4614) #11
  %4616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4617 = trunc nuw i8 %4616 to i1
  br i1 %4617, label %4618, label %4622

4618:                                             ; preds = %4612
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = call i32 @fileno(ptr noundef %4619) #11
  %4621 = call i32 @isatty(i32 noundef %4620) #11
  %.not953 = icmp eq i32 %4621, 0
  br i1 %.not953, label %4622, label %4623

4622:                                             ; preds = %4618, %4612
  br label %4623

4623:                                             ; preds = %4618, %4622
  %.str.5.sink2836 = phi ptr [ @.str.5, %4622 ], [ @.str.2, %4618 ]
  store i32 %4613, ptr %765, align 4, !tbaa !5
  %4624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4625 = load i32, ptr @test_count, align 4, !tbaa !5
  %4626 = load i32, ptr %711, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror(i32 noundef %4626, ptr noundef nonnull @.str.4) #11
  %4628 = load i32, ptr %711, align 4, !tbaa !5
  %4629 = call ptr @s2n_strerror_debug(i32 noundef %4628, ptr noundef nonnull @.str.4) #11
  %4630 = load i32, ptr %765, align 4, !tbaa !5
  %4631 = call ptr @strerror(i32 noundef %4630) #11
  %4632 = load i32, ptr %765, align 4, !tbaa !5
  %4633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4624, ptr noundef nonnull %.str.5.sink2836, i32 noundef %4625, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %4627, ptr noundef %4629, ptr noundef %4631, i32 noundef %4632) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4634:                                             ; preds = %4607
  %4635 = load i32, ptr @test_count, align 4, !tbaa !5
  %4636 = add nsw i32 %4635, 1
  store i32 %4636, ptr @test_count, align 4, !tbaa !5
  %4637 = load i32, ptr %711, align 4, !tbaa !5
  %4638 = icmp eq i32 %4637, 0
  br i1 %4638, label %4639, label %4661

4639:                                             ; preds = %4634
  %4640 = load i32, ptr %765, align 4, !tbaa !5
  %4641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4642 = call i32 @s2n_print_stacktrace(ptr noundef %4641) #11
  %4643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4644 = trunc nuw i8 %4643 to i1
  br i1 %4644, label %4645, label %4649

4645:                                             ; preds = %4639
  %4646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4647 = call i32 @fileno(ptr noundef %4646) #11
  %4648 = call i32 @isatty(i32 noundef %4647) #11
  %.not1088 = icmp eq i32 %4648, 0
  br i1 %.not1088, label %4649, label %4650

4649:                                             ; preds = %4645, %4639
  br label %4650

4650:                                             ; preds = %4645, %4649
  %.str.5.sink2845 = phi ptr [ @.str.5, %4649 ], [ @.str.2, %4645 ]
  store i32 %4640, ptr %765, align 4, !tbaa !5
  %4651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4652 = load i32, ptr @test_count, align 4, !tbaa !5
  %4653 = load i32, ptr %711, align 4, !tbaa !5
  %4654 = call ptr @s2n_strerror(i32 noundef %4653, ptr noundef nonnull @.str.4) #11
  %4655 = load i32, ptr %711, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror_debug(i32 noundef %4655, ptr noundef nonnull @.str.4) #11
  %4657 = load i32, ptr %765, align 4, !tbaa !5
  %4658 = call ptr @strerror(i32 noundef %4657) #11
  %4659 = load i32, ptr %765, align 4, !tbaa !5
  %4660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4651, ptr noundef nonnull %.str.5.sink2845, i32 noundef %4652, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %4654, ptr noundef %4656, ptr noundef %4658, i32 noundef %4659) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4661:                                             ; preds = %4634
  %4662 = add nsw i32 %4635, 2
  store i32 %4662, ptr @test_count, align 4, !tbaa !5
  %4663 = call ptr @s2n_strerror_debug(i32 noundef %4637, ptr noundef nonnull @.str.4) #11
  %4664 = icmp eq ptr %4663, null
  br i1 %4664, label %4665, label %4687

4665:                                             ; preds = %4661
  %4666 = load i32, ptr %765, align 4, !tbaa !5
  %4667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4668 = call i32 @s2n_print_stacktrace(ptr noundef %4667) #11
  %4669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4670 = trunc nuw i8 %4669 to i1
  br i1 %4670, label %4671, label %4675

4671:                                             ; preds = %4665
  %4672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4673 = call i32 @fileno(ptr noundef %4672) #11
  %4674 = call i32 @isatty(i32 noundef %4673) #11
  %.not1087 = icmp eq i32 %4674, 0
  br i1 %.not1087, label %4675, label %4676

4675:                                             ; preds = %4671, %4665
  br label %4676

4676:                                             ; preds = %4671, %4675
  %.str.5.sink2854 = phi ptr [ @.str.5, %4675 ], [ @.str.2, %4671 ]
  store i32 %4666, ptr %765, align 4, !tbaa !5
  %4677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4678 = load i32, ptr @test_count, align 4, !tbaa !5
  %4679 = load i32, ptr %711, align 4, !tbaa !5
  %4680 = call ptr @s2n_strerror(i32 noundef %4679, ptr noundef nonnull @.str.4) #11
  %4681 = load i32, ptr %711, align 4, !tbaa !5
  %4682 = call ptr @s2n_strerror_debug(i32 noundef %4681, ptr noundef nonnull @.str.4) #11
  %4683 = load i32, ptr %765, align 4, !tbaa !5
  %4684 = call ptr @strerror(i32 noundef %4683) #11
  %4685 = load i32, ptr %765, align 4, !tbaa !5
  %4686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4677, ptr noundef nonnull %.str.5.sink2854, i32 noundef %4678, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %4680, ptr noundef %4682, ptr noundef %4684, i32 noundef %4685) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4687:                                             ; preds = %4661
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %4688 = load i32, ptr @test_count, align 4, !tbaa !5
  %4689 = add nsw i32 %4688, 1
  store i32 %4689, ptr @test_count, align 4, !tbaa !5
  %4690 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2955, ptr noundef nonnull @.str.132) #11
  %4691 = icmp eq i32 %4690, -1
  br i1 %4691, label %4714, label %4692

4692:                                             ; preds = %4687
  %4693 = load i32, ptr %765, align 4, !tbaa !5
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = call i32 @s2n_print_stacktrace(ptr noundef %4694) #11
  %4696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4697 = trunc nuw i8 %4696 to i1
  br i1 %4697, label %4698, label %4702

4698:                                             ; preds = %4692
  %4699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4700 = call i32 @fileno(ptr noundef %4699) #11
  %4701 = call i32 @isatty(i32 noundef %4700) #11
  %.not954 = icmp eq i32 %4701, 0
  br i1 %.not954, label %4702, label %4703

4702:                                             ; preds = %4698, %4692
  br label %4703

4703:                                             ; preds = %4698, %4702
  %.str.5.sink2863 = phi ptr [ @.str.5, %4702 ], [ @.str.2, %4698 ]
  store i32 %4693, ptr %765, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = load i32, ptr %711, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror(i32 noundef %4706, ptr noundef nonnull @.str.4) #11
  %4708 = load i32, ptr %711, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror_debug(i32 noundef %4708, ptr noundef nonnull @.str.4) #11
  %4710 = load i32, ptr %765, align 4, !tbaa !5
  %4711 = call ptr @strerror(i32 noundef %4710) #11
  %4712 = load i32, ptr %765, align 4, !tbaa !5
  %4713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4704, ptr noundef nonnull %.str.5.sink2863, i32 noundef %4705, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %4707, ptr noundef %4709, ptr noundef %4711, i32 noundef %4712) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4714:                                             ; preds = %4687
  %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 i32, ptr %711, align 4, !tbaa !5
  %4718 = icmp eq i32 %4717, 469762101
  br i1 %4718, label %4741, label %4719

4719:                                             ; preds = %4714
  %4720 = load i32, ptr %765, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = call i32 @s2n_print_stacktrace(ptr noundef %4721) #11
  %4723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4724 = trunc nuw i8 %4723 to i1
  br i1 %4724, label %4725, label %4729

4725:                                             ; preds = %4719
  %4726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4727 = call i32 @fileno(ptr noundef %4726) #11
  %4728 = call i32 @isatty(i32 noundef %4727) #11
  %.not955 = icmp eq i32 %4728, 0
  br i1 %.not955, label %4729, label %4730

4729:                                             ; preds = %4725, %4719
  br label %4730

4730:                                             ; preds = %4725, %4729
  %.str.5.sink2872 = phi ptr [ @.str.5, %4729 ], [ @.str.2, %4725 ]
  store i32 %4720, ptr %765, align 4, !tbaa !5
  %4731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4732 = load i32, ptr @test_count, align 4, !tbaa !5
  %4733 = load i32, ptr %711, align 4, !tbaa !5
  %4734 = call ptr @s2n_strerror(i32 noundef %4733, ptr noundef nonnull @.str.4) #11
  %4735 = load i32, ptr %711, align 4, !tbaa !5
  %4736 = call ptr @s2n_strerror_debug(i32 noundef %4735, ptr noundef nonnull @.str.4) #11
  %4737 = load i32, ptr %765, align 4, !tbaa !5
  %4738 = call ptr @strerror(i32 noundef %4737) #11
  %4739 = load i32, ptr %765, align 4, !tbaa !5
  %4740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4731, ptr noundef nonnull %.str.5.sink2872, i32 noundef %4732, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %4734, ptr noundef %4736, ptr noundef %4738, i32 noundef %4739) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4741:                                             ; preds = %4714
  %4742 = add nsw i32 %4715, 2
  store i32 %4742, ptr @test_count, align 4, !tbaa !5
  %4743 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %4744 = icmp eq ptr %4743, null
  br i1 %4744, label %4745, label %4767

4745:                                             ; preds = %4741
  %4746 = load i32, ptr %765, align 4, !tbaa !5
  %4747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4748 = call i32 @s2n_print_stacktrace(ptr noundef %4747) #11
  %4749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4750 = trunc nuw i8 %4749 to i1
  br i1 %4750, label %4751, label %4755

4751:                                             ; preds = %4745
  %4752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4753 = call i32 @fileno(ptr noundef %4752) #11
  %4754 = call i32 @isatty(i32 noundef %4753) #11
  %.not1086 = icmp eq i32 %4754, 0
  br i1 %.not1086, label %4755, label %4756

4755:                                             ; preds = %4751, %4745
  br label %4756

4756:                                             ; preds = %4751, %4755
  %.str.5.sink2881 = phi ptr [ @.str.5, %4755 ], [ @.str.2, %4751 ]
  store i32 %4746, ptr %765, align 4, !tbaa !5
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = load i32, ptr @test_count, align 4, !tbaa !5
  %4759 = load i32, ptr %711, align 4, !tbaa !5
  %4760 = call ptr @s2n_strerror(i32 noundef %4759, ptr noundef nonnull @.str.4) #11
  %4761 = load i32, ptr %711, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror_debug(i32 noundef %4761, ptr noundef nonnull @.str.4) #11
  %4763 = load i32, ptr %765, align 4, !tbaa !5
  %4764 = call ptr @strerror(i32 noundef %4763) #11
  %4765 = load i32, ptr %765, align 4, !tbaa !5
  %4766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4757, ptr noundef nonnull %.str.5.sink2881, i32 noundef %4758, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %4760, ptr noundef %4762, ptr noundef %4764, i32 noundef %4765) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4767:                                             ; preds = %4741
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %4768 = call i32 @s2n_config_free(ptr noundef nonnull %2955) #11
  %4769 = call ptr @s2n_config_new() #11
  %4770 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %4771 = call i32 @s2n_connection_set_config(ptr noundef %4770, ptr noundef %4769) #11
  %4772 = load i32, ptr @test_count, align 4, !tbaa !5
  %4773 = add nsw i32 %4772, 1
  store i32 %4773, ptr @test_count, align 4, !tbaa !5
  %4774 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4770, ptr noundef nonnull @.str.79) #11
  %4775 = icmp eq i32 %4774, -1
  br i1 %4775, label %4776, label %4798

4776:                                             ; preds = %4767
  %4777 = load i32, ptr %765, align 4, !tbaa !5
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = call i32 @s2n_print_stacktrace(ptr noundef %4778) #11
  %4780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4781 = trunc nuw i8 %4780 to i1
  br i1 %4781, label %4782, label %4786

4782:                                             ; preds = %4776
  %4783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4784 = call i32 @fileno(ptr noundef %4783) #11
  %4785 = call i32 @isatty(i32 noundef %4784) #11
  %.not1085 = icmp eq i32 %4785, 0
  br i1 %.not1085, label %4786, label %4787

4786:                                             ; preds = %4782, %4776
  br label %4787

4787:                                             ; preds = %4782, %4786
  %.str.5.sink2890 = phi ptr [ @.str.5, %4786 ], [ @.str.2, %4782 ]
  store i32 %4777, ptr %765, align 4, !tbaa !5
  %4788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4789 = load i32, ptr @test_count, align 4, !tbaa !5
  %4790 = load i32, ptr %711, align 4, !tbaa !5
  %4791 = call ptr @s2n_strerror(i32 noundef %4790, ptr noundef nonnull @.str.4) #11
  %4792 = load i32, ptr %711, align 4, !tbaa !5
  %4793 = call ptr @s2n_strerror_debug(i32 noundef %4792, ptr noundef nonnull @.str.4) #11
  %4794 = load i32, ptr %765, align 4, !tbaa !5
  %4795 = call ptr @strerror(i32 noundef %4794) #11
  %4796 = load i32, ptr %765, align 4, !tbaa !5
  %4797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4788, ptr noundef nonnull %.str.5.sink2890, i32 noundef %4789, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 548, ptr noundef %4791, ptr noundef %4793, ptr noundef %4795, i32 noundef %4796) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4798:                                             ; preds = %4767
  %4799 = load i32, ptr @test_count, align 4, !tbaa !5
  %4800 = add nsw i32 %4799, 1
  store i32 %4800, ptr @test_count, align 4, !tbaa !5
  %4801 = call i32 @s2n_connection_get_security_policy(ptr noundef %4770, ptr noundef nonnull %8) #11
  %4802 = icmp eq i32 %4801, -1
  br i1 %4802, label %4803, label %4825

4803:                                             ; preds = %4798
  %4804 = load i32, ptr %765, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = call i32 @s2n_print_stacktrace(ptr noundef %4805) #11
  %4807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4808 = trunc nuw i8 %4807 to i1
  br i1 %4808, label %4809, label %4813

4809:                                             ; preds = %4803
  %4810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4811 = call i32 @fileno(ptr noundef %4810) #11
  %4812 = call i32 @isatty(i32 noundef %4811) #11
  %.not1084 = icmp eq i32 %4812, 0
  br i1 %.not1084, label %4813, label %4814

4813:                                             ; preds = %4809, %4803
  br label %4814

4814:                                             ; preds = %4809, %4813
  %.str.5.sink2899 = phi ptr [ @.str.5, %4813 ], [ @.str.2, %4809 ]
  store i32 %4804, ptr %765, align 4, !tbaa !5
  %4815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4816 = load i32, ptr @test_count, align 4, !tbaa !5
  %4817 = load i32, ptr %711, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror(i32 noundef %4817, ptr noundef nonnull @.str.4) #11
  %4819 = load i32, ptr %711, align 4, !tbaa !5
  %4820 = call ptr @s2n_strerror_debug(i32 noundef %4819, ptr noundef nonnull @.str.4) #11
  %4821 = load i32, ptr %765, align 4, !tbaa !5
  %4822 = call ptr @strerror(i32 noundef %4821) #11
  %4823 = load i32, ptr %765, align 4, !tbaa !5
  %4824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4815, ptr noundef nonnull %.str.5.sink2899, i32 noundef %4816, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 549, ptr noundef %4818, ptr noundef %4820, ptr noundef %4822, i32 noundef %4823) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4825:                                             ; preds = %4798
  %4826 = load i32, ptr @test_count, align 4, !tbaa !5
  %4827 = add nsw i32 %4826, 1
  store i32 %4827, ptr @test_count, align 4, !tbaa !5
  %4828 = load ptr, ptr %8, align 8, !tbaa !9
  %4829 = icmp eq ptr %4828, @security_policy_20170210
  br i1 %4829, label %4852, label %4830

4830:                                             ; preds = %4825
  %4831 = load i32, ptr %765, align 4, !tbaa !5
  %4832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4833 = call i32 @s2n_print_stacktrace(ptr noundef %4832) #11
  %4834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4835 = trunc nuw i8 %4834 to i1
  br i1 %4835, label %4836, label %4840

4836:                                             ; preds = %4830
  %4837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4838 = call i32 @fileno(ptr noundef %4837) #11
  %4839 = call i32 @isatty(i32 noundef %4838) #11
  %.not956 = icmp eq i32 %4839, 0
  br i1 %.not956, label %4840, label %4841

4840:                                             ; preds = %4836, %4830
  br label %4841

4841:                                             ; preds = %4836, %4840
  %.str.5.sink2908 = phi ptr [ @.str.5, %4840 ], [ @.str.2, %4836 ]
  store i32 %4831, ptr %765, align 4, !tbaa !5
  %4842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4843 = load i32, ptr @test_count, align 4, !tbaa !5
  %4844 = load i32, ptr %711, align 4, !tbaa !5
  %4845 = call ptr @s2n_strerror(i32 noundef %4844, ptr noundef nonnull @.str.4) #11
  %4846 = load i32, ptr %711, align 4, !tbaa !5
  %4847 = call ptr @s2n_strerror_debug(i32 noundef %4846, ptr noundef nonnull @.str.4) #11
  %4848 = load i32, ptr %765, align 4, !tbaa !5
  %4849 = call ptr @strerror(i32 noundef %4848) #11
  %4850 = load i32, ptr %765, align 4, !tbaa !5
  %4851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4842, ptr noundef nonnull %.str.5.sink2908, i32 noundef %4843, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %4845, ptr noundef %4847, ptr noundef %4849, i32 noundef %4850) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4852:                                             ; preds = %4825
  %4853 = add nsw i32 %4826, 6
  store i32 %4853, ptr @test_count, align 4, !tbaa !5
  %4854 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4770, ptr noundef nonnull @.str.86) #11
  %4855 = icmp eq i32 %4854, -1
  br i1 %4855, label %4856, label %4878

4856:                                             ; preds = %4852
  %4857 = load i32, ptr %765, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = call i32 @s2n_print_stacktrace(ptr noundef %4858) #11
  %4860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4861 = trunc nuw i8 %4860 to i1
  br i1 %4861, label %4862, label %4866

4862:                                             ; preds = %4856
  %4863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4864 = call i32 @fileno(ptr noundef %4863) #11
  %4865 = call i32 @isatty(i32 noundef %4864) #11
  %.not1083 = icmp eq i32 %4865, 0
  br i1 %.not1083, label %4866, label %4867

4866:                                             ; preds = %4862, %4856
  br label %4867

4867:                                             ; preds = %4862, %4866
  %.str.5.sink2917 = phi ptr [ @.str.5, %4866 ], [ @.str.2, %4862 ]
  store i32 %4857, ptr %765, align 4, !tbaa !5
  %4868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4869 = load i32, ptr @test_count, align 4, !tbaa !5
  %4870 = load i32, ptr %711, align 4, !tbaa !5
  %4871 = call ptr @s2n_strerror(i32 noundef %4870, ptr noundef nonnull @.str.4) #11
  %4872 = load i32, ptr %711, align 4, !tbaa !5
  %4873 = call ptr @s2n_strerror_debug(i32 noundef %4872, ptr noundef nonnull @.str.4) #11
  %4874 = load i32, ptr %765, align 4, !tbaa !5
  %4875 = call ptr @strerror(i32 noundef %4874) #11
  %4876 = load i32, ptr %765, align 4, !tbaa !5
  %4877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4868, ptr noundef nonnull %.str.5.sink2917, i32 noundef %4869, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 556, ptr noundef %4871, ptr noundef %4873, ptr noundef %4875, i32 noundef %4876) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4878:                                             ; preds = %4852
  %4879 = load i32, ptr @test_count, align 4, !tbaa !5
  %4880 = add nsw i32 %4879, 1
  store i32 %4880, ptr @test_count, align 4, !tbaa !5
  %4881 = call i32 @s2n_connection_get_security_policy(ptr noundef %4770, ptr noundef nonnull %8) #11
  %4882 = icmp eq i32 %4881, -1
  br i1 %4882, label %4883, label %4905

4883:                                             ; preds = %4878
  %4884 = load i32, ptr %765, align 4, !tbaa !5
  %4885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4886 = call i32 @s2n_print_stacktrace(ptr noundef %4885) #11
  %4887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4888 = trunc nuw i8 %4887 to i1
  br i1 %4888, label %4889, label %4893

4889:                                             ; preds = %4883
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = call i32 @fileno(ptr noundef %4890) #11
  %4892 = call i32 @isatty(i32 noundef %4891) #11
  %.not1082 = icmp eq i32 %4892, 0
  br i1 %.not1082, label %4893, label %4894

4893:                                             ; preds = %4889, %4883
  br label %4894

4894:                                             ; preds = %4889, %4893
  %.str.5.sink2926 = phi ptr [ @.str.5, %4893 ], [ @.str.2, %4889 ]
  store i32 %4884, ptr %765, align 4, !tbaa !5
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = load i32, ptr %711, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror(i32 noundef %4897, ptr noundef nonnull @.str.4) #11
  %4899 = load i32, ptr %711, align 4, !tbaa !5
  %4900 = call ptr @s2n_strerror_debug(i32 noundef %4899, ptr noundef nonnull @.str.4) #11
  %4901 = load i32, ptr %765, align 4, !tbaa !5
  %4902 = call ptr @strerror(i32 noundef %4901) #11
  %4903 = load i32, ptr %765, align 4, !tbaa !5
  %4904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4895, ptr noundef nonnull %.str.5.sink2926, i32 noundef %4896, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 557, ptr noundef %4898, ptr noundef %4900, ptr noundef %4902, i32 noundef %4903) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4905:                                             ; preds = %4878
  %4906 = load i32, ptr @test_count, align 4, !tbaa !5
  %4907 = add nsw i32 %4906, 1
  store i32 %4907, ptr @test_count, align 4, !tbaa !5
  %4908 = load ptr, ptr %8, align 8, !tbaa !9
  %4909 = icmp eq ptr %4908, @security_policy_20190801
  br i1 %4909, label %4932, label %4910

4910:                                             ; preds = %4905
  %4911 = load i32, ptr %765, align 4, !tbaa !5
  %4912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4913 = call i32 @s2n_print_stacktrace(ptr noundef %4912) #11
  %4914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4915 = trunc nuw i8 %4914 to i1
  br i1 %4915, label %4916, label %4920

4916:                                             ; preds = %4910
  %4917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4918 = call i32 @fileno(ptr noundef %4917) #11
  %4919 = call i32 @isatty(i32 noundef %4918) #11
  %.not961 = icmp eq i32 %4919, 0
  br i1 %.not961, label %4920, label %4921

4920:                                             ; preds = %4916, %4910
  br label %4921

4921:                                             ; preds = %4916, %4920
  %.str.5.sink2935 = phi ptr [ @.str.5, %4920 ], [ @.str.2, %4916 ]
  store i32 %4911, ptr %765, align 4, !tbaa !5
  %4922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4923 = load i32, ptr @test_count, align 4, !tbaa !5
  %4924 = load i32, ptr %711, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror(i32 noundef %4924, ptr noundef nonnull @.str.4) #11
  %4926 = load i32, ptr %711, align 4, !tbaa !5
  %4927 = call ptr @s2n_strerror_debug(i32 noundef %4926, ptr noundef nonnull @.str.4) #11
  %4928 = load i32, ptr %765, align 4, !tbaa !5
  %4929 = call ptr @strerror(i32 noundef %4928) #11
  %4930 = load i32, ptr %765, align 4, !tbaa !5
  %4931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4922, ptr noundef nonnull %.str.5.sink2935, i32 noundef %4923, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 558, ptr noundef %4925, ptr noundef %4927, ptr noundef %4929, i32 noundef %4930) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4932:                                             ; preds = %4905
  %4933 = add nsw i32 %4906, 6
  store i32 %4933, ptr @test_count, align 4, !tbaa !5
  %4934 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4770, ptr noundef nonnull @.str.50) #11
  %4935 = icmp eq i32 %4934, -1
  br i1 %4935, label %4936, label %4958

4936:                                             ; preds = %4932
  %4937 = load i32, ptr %765, align 4, !tbaa !5
  %4938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4939 = call i32 @s2n_print_stacktrace(ptr noundef %4938) #11
  %4940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4941 = trunc nuw i8 %4940 to i1
  br i1 %4941, label %4942, label %4946

4942:                                             ; preds = %4936
  %4943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4944 = call i32 @fileno(ptr noundef %4943) #11
  %4945 = call i32 @isatty(i32 noundef %4944) #11
  %.not1081 = icmp eq i32 %4945, 0
  br i1 %.not1081, label %4946, label %4947

4946:                                             ; preds = %4942, %4936
  br label %4947

4947:                                             ; preds = %4942, %4946
  %.str.5.sink2944 = phi ptr [ @.str.5, %4946 ], [ @.str.2, %4942 ]
  store i32 %4937, ptr %765, align 4, !tbaa !5
  %4948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4949 = load i32, ptr @test_count, align 4, !tbaa !5
  %4950 = load i32, ptr %711, align 4, !tbaa !5
  %4951 = call ptr @s2n_strerror(i32 noundef %4950, ptr noundef nonnull @.str.4) #11
  %4952 = load i32, ptr %711, align 4, !tbaa !5
  %4953 = call ptr @s2n_strerror_debug(i32 noundef %4952, ptr noundef nonnull @.str.4) #11
  %4954 = load i32, ptr %765, align 4, !tbaa !5
  %4955 = call ptr @strerror(i32 noundef %4954) #11
  %4956 = load i32, ptr %765, align 4, !tbaa !5
  %4957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4948, ptr noundef nonnull %.str.5.sink2944, i32 noundef %4949, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 564, ptr noundef %4951, ptr noundef %4953, ptr noundef %4955, i32 noundef %4956) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4958:                                             ; preds = %4932
  %4959 = load i32, ptr @test_count, align 4, !tbaa !5
  %4960 = add nsw i32 %4959, 1
  store i32 %4960, ptr @test_count, align 4, !tbaa !5
  %4961 = call i32 @s2n_connection_get_security_policy(ptr noundef %4770, ptr noundef nonnull %8) #11
  %4962 = icmp eq i32 %4961, -1
  br i1 %4962, label %4963, label %4985

4963:                                             ; preds = %4958
  %4964 = load i32, ptr %765, align 4, !tbaa !5
  %4965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4966 = call i32 @s2n_print_stacktrace(ptr noundef %4965) #11
  %4967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4968 = trunc nuw i8 %4967 to i1
  br i1 %4968, label %4969, label %4973

4969:                                             ; preds = %4963
  %4970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4971 = call i32 @fileno(ptr noundef %4970) #11
  %4972 = call i32 @isatty(i32 noundef %4971) #11
  %.not1080 = icmp eq i32 %4972, 0
  br i1 %.not1080, label %4973, label %4974

4973:                                             ; preds = %4969, %4963
  br label %4974

4974:                                             ; preds = %4969, %4973
  %.str.5.sink2953 = phi ptr [ @.str.5, %4973 ], [ @.str.2, %4969 ]
  store i32 %4964, ptr %765, align 4, !tbaa !5
  %4975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4976 = load i32, ptr @test_count, align 4, !tbaa !5
  %4977 = load i32, ptr %711, align 4, !tbaa !5
  %4978 = call ptr @s2n_strerror(i32 noundef %4977, ptr noundef nonnull @.str.4) #11
  %4979 = load i32, ptr %711, align 4, !tbaa !5
  %4980 = call ptr @s2n_strerror_debug(i32 noundef %4979, ptr noundef nonnull @.str.4) #11
  %4981 = load i32, ptr %765, align 4, !tbaa !5
  %4982 = call ptr @strerror(i32 noundef %4981) #11
  %4983 = load i32, ptr %765, align 4, !tbaa !5
  %4984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4975, ptr noundef nonnull %.str.5.sink2953, i32 noundef %4976, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 565, ptr noundef %4978, ptr noundef %4980, ptr noundef %4982, i32 noundef %4983) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4985:                                             ; preds = %4958
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = add nsw i32 %4986, 1
  store i32 %4987, ptr @test_count, align 4, !tbaa !5
  %4988 = load ptr, ptr %8, align 8, !tbaa !9
  %4989 = icmp eq ptr %4988, @security_policy_test_all
  br i1 %4989, label %5012, label %4990

4990:                                             ; preds = %4985
  %4991 = load i32, ptr %765, align 4, !tbaa !5
  %4992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4993 = call i32 @s2n_print_stacktrace(ptr noundef %4992) #11
  %4994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4995 = trunc nuw i8 %4994 to i1
  br i1 %4995, label %4996, label %5000

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

5000:                                             ; preds = %4996, %4990
  br label %5001

5001:                                             ; preds = %4996, %5000
  %.str.5.sink2962 = phi ptr [ @.str.5, %5000 ], [ @.str.2, %4996 ]
  store i32 %4991, ptr %765, align 4, !tbaa !5
  %5002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5003 = load i32, ptr @test_count, align 4, !tbaa !5
  %5004 = load i32, ptr %711, align 4, !tbaa !5
  %5005 = call ptr @s2n_strerror(i32 noundef %5004, ptr noundef nonnull @.str.4) #11
  %5006 = load i32, ptr %711, align 4, !tbaa !5
  %5007 = call ptr @s2n_strerror_debug(i32 noundef %5006, ptr noundef nonnull @.str.4) #11
  %5008 = load i32, ptr %765, align 4, !tbaa !5
  %5009 = call ptr @strerror(i32 noundef %5008) #11
  %5010 = load i32, ptr %765, align 4, !tbaa !5
  %5011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5002, ptr noundef nonnull %.str.5.sink2962, i32 noundef %5003, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 566, ptr noundef %5005, ptr noundef %5007, ptr noundef %5009, i32 noundef %5010) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5012:                                             ; preds = %4985
  %5013 = add nsw i32 %4986, 6
  store i32 %5013, ptr @test_count, align 4, !tbaa !5
  %5014 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4770, ptr noundef nonnull @.str.104) #11
  %5015 = icmp eq i32 %5014, -1
  br i1 %5015, label %5016, label %5038

5016:                                             ; preds = %5012
  %5017 = load i32, ptr %765, align 4, !tbaa !5
  %5018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5019 = call i32 @s2n_print_stacktrace(ptr noundef %5018) #11
  %5020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5021 = trunc nuw i8 %5020 to i1
  br i1 %5021, label %5022, label %5026

5022:                                             ; preds = %5016
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = call i32 @fileno(ptr noundef %5023) #11
  %5025 = call i32 @isatty(i32 noundef %5024) #11
  %.not1079 = icmp eq i32 %5025, 0
  br i1 %.not1079, label %5026, label %5027

5026:                                             ; preds = %5022, %5016
  br label %5027

5027:                                             ; preds = %5022, %5026
  %.str.5.sink2971 = phi ptr [ @.str.5, %5026 ], [ @.str.2, %5022 ]
  store i32 %5017, ptr %765, align 4, !tbaa !5
  %5028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5029 = load i32, ptr @test_count, align 4, !tbaa !5
  %5030 = load i32, ptr %711, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror(i32 noundef %5030, ptr noundef nonnull @.str.4) #11
  %5032 = load i32, ptr %711, align 4, !tbaa !5
  %5033 = call ptr @s2n_strerror_debug(i32 noundef %5032, ptr noundef nonnull @.str.4) #11
  %5034 = load i32, ptr %765, align 4, !tbaa !5
  %5035 = call ptr @strerror(i32 noundef %5034) #11
  %5036 = load i32, ptr %765, align 4, !tbaa !5
  %5037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5028, ptr noundef nonnull %.str.5.sink2971, i32 noundef %5029, ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.1, i32 noundef 572, ptr noundef %5031, ptr noundef %5033, ptr noundef %5035, i32 noundef %5036) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5038:                                             ; preds = %5012
  %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 = call i32 @s2n_connection_get_security_policy(ptr noundef %4770, ptr noundef nonnull %8) #11
  %5042 = icmp eq i32 %5041, -1
  br i1 %5042, label %5043, label %5065

5043:                                             ; preds = %5038
  %5044 = load i32, ptr %765, align 4, !tbaa !5
  %5045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5046 = call i32 @s2n_print_stacktrace(ptr noundef %5045) #11
  %5047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5048 = trunc nuw i8 %5047 to i1
  br i1 %5048, label %5049, label %5053

5049:                                             ; preds = %5043
  %5050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5051 = call i32 @fileno(ptr noundef %5050) #11
  %5052 = call i32 @isatty(i32 noundef %5051) #11
  %.not1078 = icmp eq i32 %5052, 0
  br i1 %.not1078, label %5053, label %5054

5053:                                             ; preds = %5049, %5043
  br label %5054

5054:                                             ; preds = %5049, %5053
  %.str.5.sink2980 = phi ptr [ @.str.5, %5053 ], [ @.str.2, %5049 ]
  store i32 %5044, ptr %765, align 4, !tbaa !5
  %5055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5056 = load i32, ptr @test_count, align 4, !tbaa !5
  %5057 = load i32, ptr %711, align 4, !tbaa !5
  %5058 = call ptr @s2n_strerror(i32 noundef %5057, ptr noundef nonnull @.str.4) #11
  %5059 = load i32, ptr %711, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror_debug(i32 noundef %5059, ptr noundef nonnull @.str.4) #11
  %5061 = load i32, ptr %765, align 4, !tbaa !5
  %5062 = call ptr @strerror(i32 noundef %5061) #11
  %5063 = load i32, ptr %765, align 4, !tbaa !5
  %5064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5055, ptr noundef nonnull %.str.5.sink2980, i32 noundef %5056, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 573, ptr noundef %5058, ptr noundef %5060, ptr noundef %5062, i32 noundef %5063) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5065:                                             ; preds = %5038
  %5066 = load i32, ptr @test_count, align 4, !tbaa !5
  %5067 = add nsw i32 %5066, 1
  store i32 %5067, ptr @test_count, align 4, !tbaa !5
  %5068 = load ptr, ptr %8, align 8, !tbaa !9
  %5069 = icmp eq ptr %5068, @security_policy_test_all_tls12
  br i1 %5069, label %5092, label %5070

5070:                                             ; preds = %5065
  %5071 = load i32, ptr %765, align 4, !tbaa !5
  %5072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5073 = call i32 @s2n_print_stacktrace(ptr noundef %5072) #11
  %5074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5075 = trunc nuw i8 %5074 to i1
  br i1 %5075, label %5076, label %5080

5076:                                             ; preds = %5070
  %5077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5078 = call i32 @fileno(ptr noundef %5077) #11
  %5079 = call i32 @isatty(i32 noundef %5078) #11
  %.not971 = icmp eq i32 %5079, 0
  br i1 %.not971, label %5080, label %5081

5080:                                             ; preds = %5076, %5070
  br label %5081

5081:                                             ; preds = %5076, %5080
  %.str.5.sink2989 = phi ptr [ @.str.5, %5080 ], [ @.str.2, %5076 ]
  store i32 %5071, ptr %765, align 4, !tbaa !5
  %5082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5083 = load i32, ptr @test_count, align 4, !tbaa !5
  %5084 = load i32, ptr %711, align 4, !tbaa !5
  %5085 = call ptr @s2n_strerror(i32 noundef %5084, ptr noundef nonnull @.str.4) #11
  %5086 = load i32, ptr %711, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror_debug(i32 noundef %5086, ptr noundef nonnull @.str.4) #11
  %5088 = load i32, ptr %765, align 4, !tbaa !5
  %5089 = call ptr @strerror(i32 noundef %5088) #11
  %5090 = load i32, ptr %765, align 4, !tbaa !5
  %5091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5082, ptr noundef nonnull %.str.5.sink2989, i32 noundef %5083, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.1, i32 noundef 574, ptr noundef %5085, ptr noundef %5087, ptr noundef %5089, i32 noundef %5090) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5092:                                             ; preds = %5065
  %5093 = add nsw i32 %5066, 6
  store i32 %5093, ptr @test_count, align 4, !tbaa !5
  %5094 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4770, ptr noundef nonnull @.str.132) #11
  %5095 = icmp eq i32 %5094, -1
  br i1 %5095, label %5118, label %5096

5096:                                             ; preds = %5092
  %5097 = load i32, ptr %765, align 4, !tbaa !5
  %5098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5099 = call i32 @s2n_print_stacktrace(ptr noundef %5098) #11
  %5100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5101 = trunc nuw i8 %5100 to i1
  br i1 %5101, label %5102, label %5106

5102:                                             ; preds = %5096
  %5103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5104 = call i32 @fileno(ptr noundef %5103) #11
  %5105 = call i32 @isatty(i32 noundef %5104) #11
  %.not976 = icmp eq i32 %5105, 0
  br i1 %.not976, label %5106, label %5107

5106:                                             ; preds = %5102, %5096
  br label %5107

5107:                                             ; preds = %5102, %5106
  %.str.5.sink2998 = phi ptr [ @.str.5, %5106 ], [ @.str.2, %5102 ]
  store i32 %5097, ptr %765, align 4, !tbaa !5
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = load i32, ptr @test_count, align 4, !tbaa !5
  %5110 = load i32, ptr %711, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror(i32 noundef %5110, ptr noundef nonnull @.str.4) #11
  %5112 = load i32, ptr %711, align 4, !tbaa !5
  %5113 = call ptr @s2n_strerror_debug(i32 noundef %5112, ptr noundef nonnull @.str.4) #11
  %5114 = load i32, ptr %765, align 4, !tbaa !5
  %5115 = call ptr @strerror(i32 noundef %5114) #11
  %5116 = load i32, ptr %765, align 4, !tbaa !5
  %5117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5108, ptr noundef nonnull %.str.5.sink2998, i32 noundef %5109, ptr noundef nonnull @.str.159, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %5111, ptr noundef %5113, ptr noundef %5115, i32 noundef %5116) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5118:                                             ; preds = %5092
  %5119 = load i32, ptr @test_count, align 4, !tbaa !5
  %5120 = add nsw i32 %5119, 1
  store i32 %5120, ptr @test_count, align 4, !tbaa !5
  %5121 = load i32, ptr %711, align 4, !tbaa !5
  %5122 = icmp eq i32 %5121, 469762101
  br i1 %5122, label %5145, label %5123

5123:                                             ; preds = %5118
  %5124 = load i32, ptr %765, align 4, !tbaa !5
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = call i32 @s2n_print_stacktrace(ptr noundef %5125) #11
  %5127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5128 = trunc nuw i8 %5127 to i1
  br i1 %5128, label %5129, label %5133

5129:                                             ; preds = %5123
  %5130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5131 = call i32 @fileno(ptr noundef %5130) #11
  %5132 = call i32 @isatty(i32 noundef %5131) #11
  %.not977 = icmp eq i32 %5132, 0
  br i1 %.not977, label %5133, label %5134

5133:                                             ; preds = %5129, %5123
  br label %5134

5134:                                             ; preds = %5129, %5133
  %.str.5.sink3007 = phi ptr [ @.str.5, %5133 ], [ @.str.2, %5129 ]
  store i32 %5124, ptr %765, align 4, !tbaa !5
  %5135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5136 = load i32, ptr @test_count, align 4, !tbaa !5
  %5137 = load i32, ptr %711, align 4, !tbaa !5
  %5138 = call ptr @s2n_strerror(i32 noundef %5137, ptr noundef nonnull @.str.4) #11
  %5139 = load i32, ptr %711, align 4, !tbaa !5
  %5140 = call ptr @s2n_strerror_debug(i32 noundef %5139, ptr noundef nonnull @.str.4) #11
  %5141 = load i32, ptr %765, align 4, !tbaa !5
  %5142 = call ptr @strerror(i32 noundef %5141) #11
  %5143 = load i32, ptr %765, align 4, !tbaa !5
  %5144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5135, ptr noundef nonnull %.str.5.sink3007, i32 noundef %5136, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %5138, ptr noundef %5140, ptr noundef %5142, i32 noundef %5143) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5145:                                             ; preds = %5118
  %5146 = add nsw i32 %5119, 2
  store i32 %5146, ptr @test_count, align 4, !tbaa !5
  %5147 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %5148 = icmp eq ptr %5147, null
  br i1 %5148, label %5149, label %5171

5149:                                             ; preds = %5145
  %5150 = load i32, ptr %765, align 4, !tbaa !5
  %5151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5152 = call i32 @s2n_print_stacktrace(ptr noundef %5151) #11
  %5153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5154 = trunc nuw i8 %5153 to i1
  br i1 %5154, label %5155, label %5159

5155:                                             ; preds = %5149
  %5156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5157 = call i32 @fileno(ptr noundef %5156) #11
  %5158 = call i32 @isatty(i32 noundef %5157) #11
  %.not1077 = icmp eq i32 %5158, 0
  br i1 %.not1077, label %5159, label %5160

5159:                                             ; preds = %5155, %5149
  br label %5160

5160:                                             ; preds = %5155, %5159
  %.str.5.sink3016 = phi ptr [ @.str.5, %5159 ], [ @.str.2, %5155 ]
  store i32 %5150, ptr %765, align 4, !tbaa !5
  %5161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5162 = load i32, ptr @test_count, align 4, !tbaa !5
  %5163 = load i32, ptr %711, align 4, !tbaa !5
  %5164 = call ptr @s2n_strerror(i32 noundef %5163, ptr noundef nonnull @.str.4) #11
  %5165 = load i32, ptr %711, align 4, !tbaa !5
  %5166 = call ptr @s2n_strerror_debug(i32 noundef %5165, ptr noundef nonnull @.str.4) #11
  %5167 = load i32, ptr %765, align 4, !tbaa !5
  %5168 = call ptr @strerror(i32 noundef %5167) #11
  %5169 = load i32, ptr %765, align 4, !tbaa !5
  %5170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5161, ptr noundef nonnull %.str.5.sink3016, i32 noundef %5162, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %5164, ptr noundef %5166, ptr noundef %5168, i32 noundef %5169) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5171:                                             ; preds = %5145
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %5172 = call i32 @s2n_config_free(ptr noundef %4769) #11
  %5173 = call i32 @s2n_connection_free(ptr noundef %4770) #11
  %test_count.promoted1205 = load i32, ptr @test_count, align 4, !tbaa !5
  %5174 = load ptr, ptr @security_policy_selection, align 8, !tbaa !15
  %.not9781208 = icmp eq ptr %5174, null
  br i1 %.not9781208, label %._crit_edge1213, label %.lr.ph1212

._crit_edge1213:                                  ; preds = %._crit_edge1197, %5171
  %5175 = phi i32 [ %test_count.promoted1205, %5171 ], [ %.lcssa12041207, %._crit_edge1197 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) @__const.main.test_curve, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  store ptr %16, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #11
  store i8 1, ptr %18, align 8, !tbaa !65
  %5176 = getelementptr inbounds i8, ptr %18, i64 8
  store ptr %17, ptr %5176, align 8, !tbaa !67
  %5177 = add nsw i32 %5175, 1
  store i32 %5177, ptr @test_count, align 4, !tbaa !5
  %5178 = call i32 @s2n_check_ecc_preferences_curves_list(ptr noundef nonnull %18) #11
  %5179 = icmp eq i32 %5178, -1
  br i1 %5179, label %5432, label %5410

.lr.ph1212:                                       ; preds = %5171, %._crit_edge1197
  %indvars.iv1293 = phi i64 [ %indvars.iv.next1294, %._crit_edge1197 ], [ 0, %5171 ]
  %5180 = phi ptr [ %5237, %._crit_edge1197 ], [ @security_policy_selection, %5171 ]
  %.lcssa120412061209 = phi i32 [ %.lcssa12041207, %._crit_edge1197 ], [ %test_count.promoted1205, %5171 ]
  %5181 = getelementptr inbounds i8, ptr %5180, i64 8
  %5182 = load ptr, ptr %5181, align 8, !tbaa !19
  store ptr %5182, ptr %8, align 8, !tbaa !9
  %5183 = icmp eq ptr %5182, null
  br i1 %5183, label %5184, label %5207

5184:                                             ; preds = %.lr.ph1212
  %5185 = add nsw i32 %.lcssa120412061209, 1
  store i32 %5185, ptr @test_count, align 4, !tbaa !5
  %5186 = load i32, ptr %765, align 4, !tbaa !5
  %5187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5188 = call i32 @s2n_print_stacktrace(ptr noundef %5187) #11
  %5189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5190 = trunc nuw i8 %5189 to i1
  br i1 %5190, label %5191, label %5195

5191:                                             ; preds = %5184
  %5192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5193 = call i32 @fileno(ptr noundef %5192) #11
  %5194 = call i32 @isatty(i32 noundef %5193) #11
  %.not1076 = icmp eq i32 %5194, 0
  br i1 %.not1076, label %5195, label %5196

5195:                                             ; preds = %5191, %5184
  br label %5196

5196:                                             ; preds = %5191, %5195
  %.str.5.sink3025 = phi ptr [ @.str.5, %5195 ], [ @.str.2, %5191 ]
  store i32 %5186, ptr %765, align 4, !tbaa !5
  %5197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5198 = load i32, ptr @test_count, align 4, !tbaa !5
  %5199 = load i32, ptr %711, align 4, !tbaa !5
  %5200 = call ptr @s2n_strerror(i32 noundef %5199, ptr noundef nonnull @.str.4) #11
  %5201 = load i32, ptr %711, align 4, !tbaa !5
  %5202 = call ptr @s2n_strerror_debug(i32 noundef %5201, ptr noundef nonnull @.str.4) #11
  %5203 = load i32, ptr %765, align 4, !tbaa !5
  %5204 = call ptr @strerror(i32 noundef %5203) #11
  %5205 = load i32, ptr %765, align 4, !tbaa !5
  %5206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5197, ptr noundef nonnull %.str.5.sink3025, i32 noundef %5198, ptr noundef nonnull @.str.160, ptr noundef nonnull @.str.1, i32 noundef 591, ptr noundef %5200, ptr noundef %5202, ptr noundef %5204, i32 noundef %5205) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5207:                                             ; preds = %.lr.ph1212
  %5208 = add nsw i32 %.lcssa120412061209, 2
  %5209 = getelementptr inbounds i8, ptr %5182, i64 24
  %5210 = load ptr, ptr %5209, align 8, !tbaa !38
  %5211 = icmp eq ptr %5210, null
  br i1 %5211, label %5215, label %.preheader1151

.preheader1151:                                   ; preds = %5207
  %5212 = load i8, ptr %5210, align 8, !tbaa !39
  %.not1242 = icmp eq i8 %5212, 0
  br i1 %.not1242, label %._crit_edge1197, label %.lr.ph1196

.lr.ph1196:                                       ; preds = %.preheader1151
  %5213 = getelementptr inbounds i8, ptr %5210, i64 8
  %5214 = load ptr, ptr %5213, align 8, !tbaa !41
  %wide.trip.count = zext i8 %5212 to i64
  br label %5239

5215:                                             ; preds = %5207
  store i32 %5208, ptr @test_count, align 4, !tbaa !5
  %5216 = load i32, ptr %765, align 4, !tbaa !5
  %5217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5218 = call i32 @s2n_print_stacktrace(ptr noundef %5217) #11
  %5219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5220 = trunc nuw i8 %5219 to i1
  br i1 %5220, label %5221, label %5225

5221:                                             ; preds = %5215
  %5222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5223 = call i32 @fileno(ptr noundef %5222) #11
  %5224 = call i32 @isatty(i32 noundef %5223) #11
  %.not1075 = icmp eq i32 %5224, 0
  br i1 %.not1075, label %5225, label %5226

5225:                                             ; preds = %5221, %5215
  br label %5226

5226:                                             ; preds = %5221, %5225
  %.str.5.sink3034 = phi ptr [ @.str.5, %5225 ], [ @.str.2, %5221 ]
  store i32 %5216, ptr %765, align 4, !tbaa !5
  %5227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5228 = load i32, ptr @test_count, align 4, !tbaa !5
  %5229 = load i32, ptr %711, align 4, !tbaa !5
  %5230 = call ptr @s2n_strerror(i32 noundef %5229, ptr noundef nonnull @.str.4) #11
  %5231 = load i32, ptr %711, align 4, !tbaa !5
  %5232 = call ptr @s2n_strerror_debug(i32 noundef %5231, ptr noundef nonnull @.str.4) #11
  %5233 = load i32, ptr %765, align 4, !tbaa !5
  %5234 = call ptr @strerror(i32 noundef %5233) #11
  %5235 = load i32, ptr %765, align 4, !tbaa !5
  %5236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5227, ptr noundef nonnull %.str.5.sink3034, i32 noundef %5228, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 592, ptr noundef %5230, ptr noundef %5232, ptr noundef %5234, i32 noundef %5235) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge1197:                                  ; preds = %5408, %.preheader1151
  %.lcssa12041207 = phi i32 [ %5208, %.preheader1151 ], [ %5409, %5408 ]
  %indvars.iv.next1294 = add nuw nsw i64 %indvars.iv1293, 1
  %5237 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %indvars.iv.next1294
  %5238 = load ptr, ptr %5237, align 8, !tbaa !15
  %.not978 = icmp eq ptr %5238, null
  br i1 %.not978, label %._crit_edge1213, label %.lr.ph1212, !llvm.loop !68

5239:                                             ; preds = %.lr.ph1196, %5408
  %indvars.iv = phi i64 [ 0, %.lr.ph1196 ], [ %indvars.iv.next, %5408 ]
  %5240 = phi i32 [ %5208, %.lr.ph1196 ], [ %5409, %5408 ]
  %5241 = getelementptr inbounds ptr, ptr %5214, i64 %indvars.iv
  %5242 = load ptr, ptr %5241, align 8, !tbaa !9
  %5243 = icmp eq ptr %5242, null
  br i1 %5243, label %5244, label %5267

5244:                                             ; preds = %5239
  %5245 = add nsw i32 %5240, 1
  store i32 %5245, ptr @test_count, align 4, !tbaa !5
  %5246 = load i32, ptr %765, align 4, !tbaa !5
  %5247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5248 = call i32 @s2n_print_stacktrace(ptr noundef %5247) #11
  %5249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5250 = trunc nuw i8 %5249 to i1
  br i1 %5250, label %5251, label %5255

5251:                                             ; preds = %5244
  %5252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5253 = call i32 @fileno(ptr noundef %5252) #11
  %5254 = call i32 @isatty(i32 noundef %5253) #11
  %.not1074 = icmp eq i32 %5254, 0
  br i1 %.not1074, label %5255, label %5256

5255:                                             ; preds = %5251, %5244
  br label %5256

5256:                                             ; preds = %5251, %5255
  %.str.5.sink3043 = phi ptr [ @.str.5, %5255 ], [ @.str.2, %5251 ]
  store i32 %5246, ptr %765, align 4, !tbaa !5
  %5257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5258 = load i32, ptr @test_count, align 4, !tbaa !5
  %5259 = load i32, ptr %711, align 4, !tbaa !5
  %5260 = call ptr @s2n_strerror(i32 noundef %5259, ptr noundef nonnull @.str.4) #11
  %5261 = load i32, ptr %711, align 4, !tbaa !5
  %5262 = call ptr @s2n_strerror_debug(i32 noundef %5261, ptr noundef nonnull @.str.4) #11
  %5263 = load i32, ptr %765, align 4, !tbaa !5
  %5264 = call ptr @strerror(i32 noundef %5263) #11
  %5265 = load i32, ptr %765, align 4, !tbaa !5
  %5266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5257, ptr noundef nonnull %.str.5.sink3043, i32 noundef %5258, ptr noundef nonnull @.str.162, ptr noundef nonnull @.str.1, i32 noundef 597, ptr noundef %5260, ptr noundef %5262, ptr noundef %5264, i32 noundef %5265) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5267:                                             ; preds = %5239
  %5268 = getelementptr inbounds i8, ptr %5242, i64 25
  %5269 = load i8, ptr %5268, align 1, !tbaa !44
  %5270 = getelementptr inbounds i8, ptr %5242, i64 24
  %5271 = load i8, ptr %5270, align 8, !tbaa !42
  %5272 = add nsw i32 %5240, 2
  %5273 = icmp ne i8 %5269, 0
  %.not1068 = icmp ugt i8 %5271, %5269
  %or.cond1149 = select i1 %5273, i1 %.not1068, i1 false
  br i1 %or.cond1149, label %5274, label %5296

5274:                                             ; preds = %5267
  store i32 %5272, ptr @test_count, align 4, !tbaa !5
  %5275 = load i32, ptr %765, align 4, !tbaa !5
  %5276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5277 = call i32 @s2n_print_stacktrace(ptr noundef %5276) #11
  %5278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5279 = trunc nuw i8 %5278 to i1
  br i1 %5279, label %5280, label %5284

5280:                                             ; preds = %5274
  %5281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5282 = call i32 @fileno(ptr noundef %5281) #11
  %5283 = call i32 @isatty(i32 noundef %5282) #11
  %.not1069 = icmp eq i32 %5283, 0
  br i1 %.not1069, label %5284, label %5285

5284:                                             ; preds = %5280, %5274
  br label %5285

5285:                                             ; preds = %5280, %5284
  %.str.5.sink3052 = phi ptr [ @.str.5, %5284 ], [ @.str.2, %5280 ]
  store i32 %5275, ptr %765, align 4, !tbaa !5
  %5286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5287 = load i32, ptr @test_count, align 4, !tbaa !5
  %5288 = load i32, ptr %711, align 4, !tbaa !5
  %5289 = call ptr @s2n_strerror(i32 noundef %5288, ptr noundef nonnull @.str.4) #11
  %5290 = load i32, ptr %711, align 4, !tbaa !5
  %5291 = call ptr @s2n_strerror_debug(i32 noundef %5290, ptr noundef nonnull @.str.4) #11
  %5292 = load i32, ptr %765, align 4, !tbaa !5
  %5293 = call ptr @strerror(i32 noundef %5292) #11
  %5294 = load i32, ptr %765, align 4, !tbaa !5
  %5295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5286, ptr noundef nonnull %.str.5.sink3052, i32 noundef %5287, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 602, ptr noundef %5289, ptr noundef %5291, ptr noundef %5293, i32 noundef %5294) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5296:                                             ; preds = %5267
  %5297 = add i8 %5269, -34
  %or.cond6 = icmp ult i8 %5297, -33
  br i1 %or.cond6, label %5298, label %5378

5298:                                             ; preds = %5296
  %5299 = getelementptr inbounds i8, ptr %5242, i64 16
  %5300 = load i32, ptr %5299, align 8, !tbaa !69
  %5301 = icmp eq i32 %5300, 2
  br i1 %5301, label %5302, label %5325

5302:                                             ; preds = %5298
  %5303 = add nsw i32 %5240, 3
  store i32 %5303, ptr @test_count, align 4, !tbaa !5
  %5304 = load i32, ptr %765, align 4, !tbaa !5
  %5305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5306 = call i32 @s2n_print_stacktrace(ptr noundef %5305) #11
  %5307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5308 = trunc nuw i8 %5307 to i1
  br i1 %5308, label %5309, label %5313

5309:                                             ; preds = %5302
  %5310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5311 = call i32 @fileno(ptr noundef %5310) #11
  %5312 = call i32 @isatty(i32 noundef %5311) #11
  %.not1073 = icmp eq i32 %5312, 0
  br i1 %.not1073, label %5313, label %5314

5313:                                             ; preds = %5309, %5302
  br label %5314

5314:                                             ; preds = %5309, %5313
  %.str.5.sink3061 = phi ptr [ @.str.5, %5313 ], [ @.str.2, %5309 ]
  store i32 %5304, ptr %765, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = load i32, ptr %711, align 4, !tbaa !5
  %5318 = call ptr @s2n_strerror(i32 noundef %5317, ptr noundef nonnull @.str.4) #11
  %5319 = load i32, ptr %711, align 4, !tbaa !5
  %5320 = call ptr @s2n_strerror_debug(i32 noundef %5319, ptr noundef nonnull @.str.4) #11
  %5321 = load i32, ptr %765, align 4, !tbaa !5
  %5322 = call ptr @strerror(i32 noundef %5321) #11
  %5323 = load i32, ptr %765, align 4, !tbaa !5
  %5324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5315, ptr noundef nonnull %.str.5.sink3061, i32 noundef %5316, ptr noundef nonnull @.str.164, ptr noundef nonnull @.str.1, i32 noundef 606, ptr noundef %5318, ptr noundef %5320, ptr noundef %5322, i32 noundef %5323) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5325:                                             ; preds = %5298
  %5326 = add nsw i32 %5240, 4
  %5327 = getelementptr inbounds i8, ptr %5242, i64 20
  %5328 = load i32, ptr %5327, align 4, !tbaa !45
  switch i32 %5328, label %5378 [
    i32 1, label %5329
    i32 3, label %5351
  ]

5329:                                             ; preds = %5325
  store i32 %5326, ptr @test_count, align 4, !tbaa !5
  %5330 = load i32, ptr %765, align 4, !tbaa !5
  %5331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5332 = call i32 @s2n_print_stacktrace(ptr noundef %5331) #11
  %5333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5334 = trunc nuw i8 %5333 to i1
  br i1 %5334, label %5335, label %5339

5335:                                             ; preds = %5329
  %5336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5337 = call i32 @fileno(ptr noundef %5336) #11
  %5338 = call i32 @isatty(i32 noundef %5337) #11
  %.not1072 = icmp eq i32 %5338, 0
  br i1 %.not1072, label %5339, label %5340

5339:                                             ; preds = %5335, %5329
  br label %5340

5340:                                             ; preds = %5335, %5339
  %.str.5.sink3070 = phi ptr [ @.str.5, %5339 ], [ @.str.2, %5335 ]
  store i32 %5330, ptr %765, align 4, !tbaa !5
  %5341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5342 = load i32, ptr @test_count, align 4, !tbaa !5
  %5343 = load i32, ptr %711, align 4, !tbaa !5
  %5344 = call ptr @s2n_strerror(i32 noundef %5343, ptr noundef nonnull @.str.4) #11
  %5345 = load i32, ptr %711, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror_debug(i32 noundef %5345, ptr noundef nonnull @.str.4) #11
  %5347 = load i32, ptr %765, align 4, !tbaa !5
  %5348 = call ptr @strerror(i32 noundef %5347) #11
  %5349 = load i32, ptr %765, align 4, !tbaa !5
  %5350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5341, ptr noundef nonnull %.str.5.sink3070, i32 noundef %5342, ptr noundef nonnull @.str.165, ptr noundef nonnull @.str.1, i32 noundef 607, ptr noundef %5344, ptr noundef %5346, ptr noundef %5348, i32 noundef %5349) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5351:                                             ; preds = %5325
  %5352 = add nsw i32 %5240, 5
  %5353 = getelementptr inbounds i8, ptr %5242, i64 32
  %5354 = load ptr, ptr %5353, align 8, !tbaa !70
  %5355 = icmp eq ptr %5354, null
  br i1 %5355, label %5356, label %5378

5356:                                             ; preds = %5351
  store i32 %5352, ptr @test_count, align 4, !tbaa !5
  %5357 = load i32, ptr %765, align 4, !tbaa !5
  %5358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5359 = call i32 @s2n_print_stacktrace(ptr noundef %5358) #11
  %5360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5361 = trunc nuw i8 %5360 to i1
  br i1 %5361, label %5362, label %5366

5362:                                             ; preds = %5356
  %5363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5364 = call i32 @fileno(ptr noundef %5363) #11
  %5365 = call i32 @isatty(i32 noundef %5364) #11
  %.not1071 = icmp eq i32 %5365, 0
  br i1 %.not1071, label %5366, label %5367

5366:                                             ; preds = %5362, %5356
  br label %5367

5367:                                             ; preds = %5362, %5366
  %.str.5.sink3079 = phi ptr [ @.str.5, %5366 ], [ @.str.2, %5362 ]
  store i32 %5357, ptr %765, align 4, !tbaa !5
  %5368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5369 = load i32, ptr @test_count, align 4, !tbaa !5
  %5370 = load i32, ptr %711, align 4, !tbaa !5
  %5371 = call ptr @s2n_strerror(i32 noundef %5370, ptr noundef nonnull @.str.4) #11
  %5372 = load i32, ptr %711, align 4, !tbaa !5
  %5373 = call ptr @s2n_strerror_debug(i32 noundef %5372, ptr noundef nonnull @.str.4) #11
  %5374 = load i32, ptr %765, align 4, !tbaa !5
  %5375 = call ptr @strerror(i32 noundef %5374) #11
  %5376 = load i32, ptr %765, align 4, !tbaa !5
  %5377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5368, ptr noundef nonnull %.str.5.sink3079, i32 noundef %5369, ptr noundef nonnull @.str.166, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %5371, ptr noundef %5373, ptr noundef %5375, i32 noundef %5376) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5378:                                             ; preds = %5325, %5351, %5296
  %5379 = phi i32 [ %5326, %5325 ], [ %5352, %5351 ], [ %5272, %5296 ]
  %5380 = icmp ult i8 %5271, 33
  br i1 %5380, label %5381, label %5408

5381:                                             ; preds = %5378
  %5382 = add nsw i32 %5379, 1
  %5383 = getelementptr inbounds i8, ptr %5242, i64 20
  %5384 = load i32, ptr %5383, align 4, !tbaa !45
  %5385 = icmp eq i32 %5384, 225
  br i1 %5385, label %5386, label %5408

5386:                                             ; preds = %5381
  store i32 %5382, ptr @test_count, align 4, !tbaa !5
  %5387 = load i32, ptr %765, align 4, !tbaa !5
  %5388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5389 = call i32 @s2n_print_stacktrace(ptr noundef %5388) #11
  %5390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5391 = trunc nuw i8 %5390 to i1
  br i1 %5391, label %5392, label %5396

5392:                                             ; preds = %5386
  %5393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5394 = call i32 @fileno(ptr noundef %5393) #11
  %5395 = call i32 @isatty(i32 noundef %5394) #11
  %.not1070 = icmp eq i32 %5395, 0
  br i1 %.not1070, label %5396, label %5397

5396:                                             ; preds = %5392, %5386
  br label %5397

5397:                                             ; preds = %5392, %5396
  %.str.5.sink3088 = phi ptr [ @.str.5, %5396 ], [ @.str.2, %5392 ]
  store i32 %5387, ptr %765, align 4, !tbaa !5
  %5398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5399 = load i32, ptr @test_count, align 4, !tbaa !5
  %5400 = load i32, ptr %711, align 4, !tbaa !5
  %5401 = call ptr @s2n_strerror(i32 noundef %5400, ptr noundef nonnull @.str.4) #11
  %5402 = load i32, ptr %711, align 4, !tbaa !5
  %5403 = call ptr @s2n_strerror_debug(i32 noundef %5402, ptr noundef nonnull @.str.4) #11
  %5404 = load i32, ptr %765, align 4, !tbaa !5
  %5405 = call ptr @strerror(i32 noundef %5404) #11
  %5406 = load i32, ptr %765, align 4, !tbaa !5
  %5407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5398, ptr noundef nonnull %.str.5.sink3088, i32 noundef %5399, ptr noundef nonnull @.str.167, ptr noundef nonnull @.str.1, i32 noundef 615, ptr noundef %5401, ptr noundef %5403, ptr noundef %5405, i32 noundef %5406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5408:                                             ; preds = %5381, %5378
  %5409 = phi i32 [ %5382, %5381 ], [ %5379, %5378 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond1292.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond1292.not, label %._crit_edge1197, label %5239, !llvm.loop !71

5410:                                             ; preds = %._crit_edge1213
  %5411 = load i32, ptr %765, align 4, !tbaa !5
  %5412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5413 = call i32 @s2n_print_stacktrace(ptr noundef %5412) #11
  %5414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5415 = trunc nuw i8 %5414 to i1
  br i1 %5415, label %5416, label %5420

5416:                                             ; preds = %5410
  %5417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5418 = call i32 @fileno(ptr noundef %5417) #11
  %5419 = call i32 @isatty(i32 noundef %5418) #11
  %.not979 = icmp eq i32 %5419, 0
  br i1 %.not979, label %5420, label %5421

5420:                                             ; preds = %5416, %5410
  br label %5421

5421:                                             ; preds = %5416, %5420
  %.str.5.sink3097 = phi ptr [ @.str.5, %5420 ], [ @.str.2, %5416 ]
  store i32 %5411, ptr %765, align 4, !tbaa !5
  %5422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = load i32, ptr %711, align 4, !tbaa !5
  %5425 = call ptr @s2n_strerror(i32 noundef %5424, ptr noundef nonnull @.str.4) #11
  %5426 = load i32, ptr %711, align 4, !tbaa !5
  %5427 = call ptr @s2n_strerror_debug(i32 noundef %5426, ptr noundef nonnull @.str.4) #11
  %5428 = load i32, ptr %765, align 4, !tbaa !5
  %5429 = call ptr @strerror(i32 noundef %5428) #11
  %5430 = load i32, ptr %765, align 4, !tbaa !5
  %5431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5422, ptr noundef nonnull %.str.5.sink3097, i32 noundef %5423, ptr noundef nonnull @.str.169, ptr noundef nonnull @.str.1, i32 noundef 639, ptr noundef %5425, ptr noundef %5427, ptr noundef %5429, i32 noundef %5430) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5432:                                             ; preds = %._crit_edge1213
  %5433 = load i32, ptr @test_count, align 4, !tbaa !5
  %5434 = add nsw i32 %5433, 1
  store i32 %5434, ptr @test_count, align 4, !tbaa !5
  %5435 = load i32, ptr %711, align 4, !tbaa !5
  %5436 = icmp eq i32 %5435, 0
  br i1 %5436, label %5437, label %5459

5437:                                             ; preds = %5432
  %5438 = load i32, ptr %765, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = call i32 @s2n_print_stacktrace(ptr noundef %5439) #11
  %5441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5442 = trunc nuw i8 %5441 to i1
  br i1 %5442, label %5443, label %5447

5443:                                             ; preds = %5437
  %5444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5445 = call i32 @fileno(ptr noundef %5444) #11
  %5446 = call i32 @isatty(i32 noundef %5445) #11
  %.not1067 = icmp eq i32 %5446, 0
  br i1 %.not1067, label %5447, label %5448

5447:                                             ; preds = %5443, %5437
  br label %5448

5448:                                             ; preds = %5443, %5447
  %.str.5.sink3106 = phi ptr [ @.str.5, %5447 ], [ @.str.2, %5443 ]
  store i32 %5438, ptr %765, align 4, !tbaa !5
  %5449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5450 = load i32, ptr @test_count, align 4, !tbaa !5
  %5451 = load i32, ptr %711, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror(i32 noundef %5451, ptr noundef nonnull @.str.4) #11
  %5453 = load i32, ptr %711, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror_debug(i32 noundef %5453, ptr noundef nonnull @.str.4) #11
  %5455 = load i32, ptr %765, align 4, !tbaa !5
  %5456 = call ptr @strerror(i32 noundef %5455) #11
  %5457 = load i32, ptr %765, align 4, !tbaa !5
  %5458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5449, ptr noundef nonnull %.str.5.sink3106, i32 noundef %5450, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 639, ptr noundef %5452, ptr noundef %5454, ptr noundef %5456, i32 noundef %5457) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5459:                                             ; preds = %5432
  %5460 = add nsw i32 %5433, 2
  store i32 %5460, ptr @test_count, align 4, !tbaa !5
  %5461 = call ptr @s2n_strerror_debug(i32 noundef %5435, ptr noundef nonnull @.str.4) #11
  %5462 = icmp eq ptr %5461, null
  br i1 %5462, label %5463, label %5485

5463:                                             ; preds = %5459
  %5464 = load i32, ptr %765, align 4, !tbaa !5
  %5465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5466 = call i32 @s2n_print_stacktrace(ptr noundef %5465) #11
  %5467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5468 = trunc nuw i8 %5467 to i1
  br i1 %5468, label %5469, label %5473

5469:                                             ; preds = %5463
  %5470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5471 = call i32 @fileno(ptr noundef %5470) #11
  %5472 = call i32 @isatty(i32 noundef %5471) #11
  %.not1066 = icmp eq i32 %5472, 0
  br i1 %.not1066, label %5473, label %5474

5473:                                             ; preds = %5469, %5463
  br label %5474

5474:                                             ; preds = %5469, %5473
  %.str.5.sink3115 = phi ptr [ @.str.5, %5473 ], [ @.str.2, %5469 ]
  store i32 %5464, ptr %765, align 4, !tbaa !5
  %5475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5476 = load i32, ptr @test_count, align 4, !tbaa !5
  %5477 = load i32, ptr %711, align 4, !tbaa !5
  %5478 = call ptr @s2n_strerror(i32 noundef %5477, ptr noundef nonnull @.str.4) #11
  %5479 = load i32, ptr %711, align 4, !tbaa !5
  %5480 = call ptr @s2n_strerror_debug(i32 noundef %5479, ptr noundef nonnull @.str.4) #11
  %5481 = load i32, ptr %765, align 4, !tbaa !5
  %5482 = call ptr @strerror(i32 noundef %5481) #11
  %5483 = load i32, ptr %765, align 4, !tbaa !5
  %5484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5475, ptr noundef nonnull %.str.5.sink3115, i32 noundef %5476, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 639, ptr noundef %5478, ptr noundef %5480, ptr noundef %5482, i32 noundef %5483) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5485:                                             ; preds = %5459
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #11
  %5486 = load i32, ptr @test_count, align 4, !tbaa !5
  %5487 = add nsw i32 %5486, 1
  store i32 %5487, ptr @test_count, align 4, !tbaa !5
  %5488 = call i32 @s2n_validate_kem_preferences(ptr noundef null, i1 noundef zeroext false) #11
  %5489 = icmp eq i32 %5488, -1
  br i1 %5489, label %5512, label %5490

5490:                                             ; preds = %5485
  %5491 = load i32, ptr %765, align 4, !tbaa !5
  %5492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5493 = call i32 @s2n_print_stacktrace(ptr noundef %5492) #11
  %5494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5495 = trunc nuw i8 %5494 to i1
  br i1 %5495, label %5496, label %5500

5496:                                             ; preds = %5490
  %5497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5498 = call i32 @fileno(ptr noundef %5497) #11
  %5499 = call i32 @isatty(i32 noundef %5498) #11
  %.not980 = icmp eq i32 %5499, 0
  br i1 %.not980, label %5500, label %5501

5500:                                             ; preds = %5496, %5490
  br label %5501

5501:                                             ; preds = %5496, %5500
  %.str.5.sink3124 = phi ptr [ @.str.5, %5500 ], [ @.str.2, %5496 ]
  store i32 %5491, ptr %765, align 4, !tbaa !5
  %5502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5503 = load i32, ptr @test_count, align 4, !tbaa !5
  %5504 = load i32, ptr %711, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror(i32 noundef %5504, ptr noundef nonnull @.str.4) #11
  %5506 = load i32, ptr %711, align 4, !tbaa !5
  %5507 = call ptr @s2n_strerror_debug(i32 noundef %5506, ptr noundef nonnull @.str.4) #11
  %5508 = load i32, ptr %765, align 4, !tbaa !5
  %5509 = call ptr @strerror(i32 noundef %5508) #11
  %5510 = load i32, ptr %765, align 4, !tbaa !5
  %5511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5502, ptr noundef nonnull %.str.5.sink3124, i32 noundef %5503, ptr noundef nonnull @.str.170, ptr noundef nonnull @.str.1, i32 noundef 644, ptr noundef %5505, ptr noundef %5507, ptr noundef %5509, i32 noundef %5510) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5512:                                             ; preds = %5485
  %5513 = load i32, ptr @test_count, align 4, !tbaa !5
  %5514 = add nsw i32 %5513, 1
  store i32 %5514, ptr @test_count, align 4, !tbaa !5
  %5515 = load i32, ptr %711, align 4, !tbaa !5
  %5516 = icmp eq i32 %5515, 402653193
  br i1 %5516, label %5539, label %5517

5517:                                             ; preds = %5512
  %5518 = load i32, ptr %765, align 4, !tbaa !5
  %5519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5520 = call i32 @s2n_print_stacktrace(ptr noundef %5519) #11
  %5521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5522 = trunc nuw i8 %5521 to i1
  br i1 %5522, label %5523, label %5527

5523:                                             ; preds = %5517
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = call i32 @fileno(ptr noundef %5524) #11
  %5526 = call i32 @isatty(i32 noundef %5525) #11
  %.not981 = icmp eq i32 %5526, 0
  br i1 %.not981, label %5527, label %5528

5527:                                             ; preds = %5523, %5517
  br label %5528

5528:                                             ; preds = %5523, %5527
  %.str.5.sink3133 = phi ptr [ @.str.5, %5527 ], [ @.str.2, %5523 ]
  store i32 %5518, ptr %765, align 4, !tbaa !5
  %5529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5530 = load i32, ptr @test_count, align 4, !tbaa !5
  %5531 = load i32, ptr %711, align 4, !tbaa !5
  %5532 = call ptr @s2n_strerror(i32 noundef %5531, ptr noundef nonnull @.str.4) #11
  %5533 = load i32, ptr %711, align 4, !tbaa !5
  %5534 = call ptr @s2n_strerror_debug(i32 noundef %5533, ptr noundef nonnull @.str.4) #11
  %5535 = load i32, ptr %765, align 4, !tbaa !5
  %5536 = call ptr @strerror(i32 noundef %5535) #11
  %5537 = load i32, ptr %765, align 4, !tbaa !5
  %5538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5529, ptr noundef nonnull %.str.5.sink3133, i32 noundef %5530, ptr noundef nonnull @.str.171, ptr noundef nonnull @.str.1, i32 noundef 644, ptr noundef %5532, ptr noundef %5534, ptr noundef %5536, i32 noundef %5537) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5539:                                             ; preds = %5512
  %5540 = add nsw i32 %5513, 2
  store i32 %5540, ptr @test_count, align 4, !tbaa !5
  %5541 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #11
  %5542 = icmp eq ptr %5541, null
  br i1 %5542, label %5543, label %5565

5543:                                             ; preds = %5539
  %5544 = load i32, ptr %765, align 4, !tbaa !5
  %5545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5546 = call i32 @s2n_print_stacktrace(ptr noundef %5545) #11
  %5547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5548 = trunc nuw i8 %5547 to i1
  br i1 %5548, label %5549, label %5553

5549:                                             ; preds = %5543
  %5550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5551 = call i32 @fileno(ptr noundef %5550) #11
  %5552 = call i32 @isatty(i32 noundef %5551) #11
  %.not1065 = icmp eq i32 %5552, 0
  br i1 %.not1065, label %5553, label %5554

5553:                                             ; preds = %5549, %5543
  br label %5554

5554:                                             ; preds = %5549, %5553
  %.str.5.sink3142 = phi ptr [ @.str.5, %5553 ], [ @.str.2, %5549 ]
  store i32 %5544, ptr %765, align 4, !tbaa !5
  %5555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5556 = load i32, ptr @test_count, align 4, !tbaa !5
  %5557 = load i32, ptr %711, align 4, !tbaa !5
  %5558 = call ptr @s2n_strerror(i32 noundef %5557, ptr noundef nonnull @.str.4) #11
  %5559 = load i32, ptr %711, align 4, !tbaa !5
  %5560 = call ptr @s2n_strerror_debug(i32 noundef %5559, ptr noundef nonnull @.str.4) #11
  %5561 = load i32, ptr %765, align 4, !tbaa !5
  %5562 = call ptr @strerror(i32 noundef %5561) #11
  %5563 = load i32, ptr %765, align 4, !tbaa !5
  %5564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5555, ptr noundef nonnull %.str.5.sink3142, i32 noundef %5556, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 644, ptr noundef %5558, ptr noundef %5560, ptr noundef %5562, i32 noundef %5563) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5565:                                             ; preds = %5539
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %5566 = load i32, ptr @test_count, align 4, !tbaa !5
  %5567 = add nsw i32 %5566, 1
  store i32 %5567, ptr @test_count, align 4, !tbaa !5
  %5568 = call i32 @s2n_validate_kem_preferences(ptr noundef nonnull @kem_preferences_null, i1 noundef zeroext true) #11
  %5569 = icmp eq i32 %5568, -1
  br i1 %5569, label %5592, label %5570

5570:                                             ; preds = %5565
  %5571 = load i32, ptr %765, align 4, !tbaa !5
  %5572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5573 = call i32 @s2n_print_stacktrace(ptr noundef %5572) #11
  %5574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5575 = trunc nuw i8 %5574 to i1
  br i1 %5575, label %5576, label %5580

5576:                                             ; preds = %5570
  %5577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5578 = call i32 @fileno(ptr noundef %5577) #11
  %5579 = call i32 @isatty(i32 noundef %5578) #11
  %.not982 = icmp eq i32 %5579, 0
  br i1 %.not982, label %5580, label %5581

5580:                                             ; preds = %5576, %5570
  br label %5581

5581:                                             ; preds = %5576, %5580
  %.str.5.sink3151 = phi ptr [ @.str.5, %5580 ], [ @.str.2, %5576 ]
  store i32 %5571, ptr %765, align 4, !tbaa !5
  %5582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5583 = load i32, ptr @test_count, align 4, !tbaa !5
  %5584 = load i32, ptr %711, align 4, !tbaa !5
  %5585 = call ptr @s2n_strerror(i32 noundef %5584, ptr noundef nonnull @.str.4) #11
  %5586 = load i32, ptr %711, align 4, !tbaa !5
  %5587 = call ptr @s2n_strerror_debug(i32 noundef %5586, ptr noundef nonnull @.str.4) #11
  %5588 = load i32, ptr %765, align 4, !tbaa !5
  %5589 = call ptr @strerror(i32 noundef %5588) #11
  %5590 = load i32, ptr %765, align 4, !tbaa !5
  %5591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5582, ptr noundef nonnull %.str.5.sink3151, i32 noundef %5583, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.1, i32 noundef 645, ptr noundef %5585, ptr noundef %5587, ptr noundef %5589, i32 noundef %5590) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5592:                                             ; preds = %5565
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = add nsw i32 %5593, 1
  store i32 %5594, ptr @test_count, align 4, !tbaa !5
  %5595 = load i32, ptr %711, align 4, !tbaa !5
  %5596 = icmp eq i32 %5595, 469762101
  br i1 %5596, label %5619, label %5597

5597:                                             ; preds = %5592
  %5598 = load i32, ptr %765, align 4, !tbaa !5
  %5599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5600 = call i32 @s2n_print_stacktrace(ptr noundef %5599) #11
  %5601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5602 = trunc nuw i8 %5601 to i1
  br i1 %5602, label %5603, label %5607

5603:                                             ; preds = %5597
  %5604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5605 = call i32 @fileno(ptr noundef %5604) #11
  %5606 = call i32 @isatty(i32 noundef %5605) #11
  %.not983 = icmp eq i32 %5606, 0
  br i1 %.not983, label %5607, label %5608

5607:                                             ; preds = %5603, %5597
  br label %5608

5608:                                             ; preds = %5603, %5607
  %.str.5.sink3160 = phi ptr [ @.str.5, %5607 ], [ @.str.2, %5603 ]
  store i32 %5598, ptr %765, align 4, !tbaa !5
  %5609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5610 = load i32, ptr @test_count, align 4, !tbaa !5
  %5611 = load i32, ptr %711, align 4, !tbaa !5
  %5612 = call ptr @s2n_strerror(i32 noundef %5611, ptr noundef nonnull @.str.4) #11
  %5613 = load i32, ptr %711, align 4, !tbaa !5
  %5614 = call ptr @s2n_strerror_debug(i32 noundef %5613, ptr noundef nonnull @.str.4) #11
  %5615 = load i32, ptr %765, align 4, !tbaa !5
  %5616 = call ptr @strerror(i32 noundef %5615) #11
  %5617 = load i32, ptr %765, align 4, !tbaa !5
  %5618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5609, ptr noundef nonnull %.str.5.sink3160, i32 noundef %5610, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 645, ptr noundef %5612, ptr noundef %5614, ptr noundef %5616, i32 noundef %5617) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5619:                                             ; preds = %5592
  %5620 = add nsw i32 %5593, 2
  store i32 %5620, ptr @test_count, align 4, !tbaa !5
  %5621 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %5622 = icmp eq ptr %5621, null
  br i1 %5622, label %5623, label %5645

5623:                                             ; preds = %5619
  %5624 = load i32, ptr %765, align 4, !tbaa !5
  %5625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5626 = call i32 @s2n_print_stacktrace(ptr noundef %5625) #11
  %5627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5628 = trunc nuw i8 %5627 to i1
  br i1 %5628, label %5629, label %5633

5629:                                             ; preds = %5623
  %5630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5631 = call i32 @fileno(ptr noundef %5630) #11
  %5632 = call i32 @isatty(i32 noundef %5631) #11
  %.not1064 = icmp eq i32 %5632, 0
  br i1 %.not1064, label %5633, label %5634

5633:                                             ; preds = %5629, %5623
  br label %5634

5634:                                             ; preds = %5629, %5633
  %.str.5.sink3169 = phi ptr [ @.str.5, %5633 ], [ @.str.2, %5629 ]
  store i32 %5624, ptr %765, align 4, !tbaa !5
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = load i32, ptr @test_count, align 4, !tbaa !5
  %5637 = load i32, ptr %711, align 4, !tbaa !5
  %5638 = call ptr @s2n_strerror(i32 noundef %5637, ptr noundef nonnull @.str.4) #11
  %5639 = load i32, ptr %711, align 4, !tbaa !5
  %5640 = call ptr @s2n_strerror_debug(i32 noundef %5639, ptr noundef nonnull @.str.4) #11
  %5641 = load i32, ptr %765, align 4, !tbaa !5
  %5642 = call ptr @strerror(i32 noundef %5641) #11
  %5643 = load i32, ptr %765, align 4, !tbaa !5
  %5644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5635, ptr noundef nonnull %.str.5.sink3169, i32 noundef %5636, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 645, ptr noundef %5638, ptr noundef %5640, ptr noundef %5642, i32 noundef %5643) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5645:                                             ; preds = %5619
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %5646 = load i32, ptr @test_count, align 4, !tbaa !5
  %5647 = add nsw i32 %5646, 1
  store i32 %5647, ptr @test_count, align 4, !tbaa !5
  %5648 = call i32 @s2n_validate_kem_preferences(ptr noundef nonnull @kem_preferences_null, i1 noundef zeroext false) #11
  %5649 = icmp eq i32 %5648, -1
  br i1 %5649, label %5650, label %5672

5650:                                             ; preds = %5645
  %5651 = load i32, ptr %765, align 4, !tbaa !5
  %5652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5653 = call i32 @s2n_print_stacktrace(ptr noundef %5652) #11
  %5654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5655 = trunc nuw i8 %5654 to i1
  br i1 %5655, label %5656, label %5660

5656:                                             ; preds = %5650
  %5657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5658 = call i32 @fileno(ptr noundef %5657) #11
  %5659 = call i32 @isatty(i32 noundef %5658) #11
  %.not1063 = icmp eq i32 %5659, 0
  br i1 %.not1063, label %5660, label %5661

5660:                                             ; preds = %5656, %5650
  br label %5661

5661:                                             ; preds = %5656, %5660
  %.str.5.sink3178 = phi ptr [ @.str.5, %5660 ], [ @.str.2, %5656 ]
  store i32 %5651, ptr %765, align 4, !tbaa !5
  %5662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5663 = load i32, ptr @test_count, align 4, !tbaa !5
  %5664 = load i32, ptr %711, align 4, !tbaa !5
  %5665 = call ptr @s2n_strerror(i32 noundef %5664, ptr noundef nonnull @.str.4) #11
  %5666 = load i32, ptr %711, align 4, !tbaa !5
  %5667 = call ptr @s2n_strerror_debug(i32 noundef %5666, ptr noundef nonnull @.str.4) #11
  %5668 = load i32, ptr %765, align 4, !tbaa !5
  %5669 = call ptr @strerror(i32 noundef %5668) #11
  %5670 = load i32, ptr %765, align 4, !tbaa !5
  %5671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5662, ptr noundef nonnull %.str.5.sink3178, i32 noundef %5663, ptr noundef nonnull @.str.173, ptr noundef nonnull @.str.1, i32 noundef 646, ptr noundef %5665, ptr noundef %5667, ptr noundef %5669, i32 noundef %5670) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5672:                                             ; preds = %5645
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %19) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(160) %19, i8 0, i64 160, i1 false)
  store i8 1, ptr %19, align 16, !tbaa !50
  %5673 = getelementptr inbounds i8, ptr %19, i64 56
  store i8 1, ptr %5673, align 8, !tbaa !22
  %5674 = getelementptr inbounds i8, ptr %19, i64 88
  store ptr @pq_kems_r3_2021_05, ptr %5674, align 8, !tbaa !49
  %5675 = getelementptr inbounds i8, ptr %19, i64 144
  %5676 = load ptr, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 24), align 8, !tbaa !24
  store ptr %5676, ptr %5675, align 16, !tbaa !24
  %5677 = load i32, ptr @test_count, align 4, !tbaa !5
  %5678 = add nsw i32 %5677, 1
  store i32 %5678, ptr @test_count, align 4, !tbaa !5
  %5679 = call i32 @s2n_validate_kem_preferences(ptr noundef nonnull %19, i1 noundef zeroext true) #11
  %5680 = icmp eq i32 %5679, -1
  br i1 %5680, label %5703, label %5681

5681:                                             ; preds = %5786, %5771, %5756, %5672
  %5682 = load i32, ptr %765, align 4, !tbaa !5
  %5683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5684 = call i32 @s2n_print_stacktrace(ptr noundef %5683) #11
  %5685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5686 = trunc nuw i8 %5685 to i1
  br i1 %5686, label %5687, label %5691

5687:                                             ; preds = %5681
  %5688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5689 = call i32 @fileno(ptr noundef %5688) #11
  %5690 = call i32 @isatty(i32 noundef %5689) #11
  %.not1060 = icmp eq i32 %5690, 0
  br i1 %.not1060, label %5691, label %5692

5691:                                             ; preds = %5687, %5681
  br label %5692

5692:                                             ; preds = %5687, %5691
  %.str.5.sink3187 = phi ptr [ @.str.5, %5691 ], [ @.str.2, %5687 ]
  store i32 %5682, ptr %765, align 4, !tbaa !5
  %5693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5694 = load i32, ptr @test_count, align 4, !tbaa !5
  %5695 = load i32, ptr %711, align 4, !tbaa !5
  %5696 = call ptr @s2n_strerror(i32 noundef %5695, ptr noundef nonnull @.str.4) #11
  %5697 = load i32, ptr %711, align 4, !tbaa !5
  %5698 = call ptr @s2n_strerror_debug(i32 noundef %5697, ptr noundef nonnull @.str.4) #11
  %5699 = load i32, ptr %765, align 4, !tbaa !5
  %5700 = call ptr @strerror(i32 noundef %5699) #11
  %5701 = load i32, ptr %765, align 4, !tbaa !5
  %5702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5693, ptr noundef nonnull %.str.5.sink3187, i32 noundef %5694, ptr noundef nonnull @.str.174, ptr noundef nonnull @.str.1, i32 noundef 676, ptr noundef %5696, ptr noundef %5698, ptr noundef %5700, i32 noundef %5701) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5703:                                             ; preds = %5672
  %5704 = load i32, ptr @test_count, align 4, !tbaa !5
  %5705 = add nsw i32 %5704, 1
  store i32 %5705, ptr @test_count, align 4, !tbaa !5
  %5706 = load i32, ptr %711, align 4, !tbaa !5
  %5707 = icmp eq i32 %5706, 469762101
  br i1 %5707, label %5730, label %5708

5708:                                             ; preds = %5792, %5777, %5762, %5703
  %5709 = load i32, ptr %765, align 4, !tbaa !5
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = call i32 @s2n_print_stacktrace(ptr noundef %5710) #11
  %5712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5713 = trunc nuw i8 %5712 to i1
  br i1 %5713, label %5714, label %5718

5714:                                             ; preds = %5708
  %5715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5716 = call i32 @fileno(ptr noundef %5715) #11
  %5717 = call i32 @isatty(i32 noundef %5716) #11
  %.not1061 = icmp eq i32 %5717, 0
  br i1 %.not1061, label %5718, label %5719

5718:                                             ; preds = %5714, %5708
  br label %5719

5719:                                             ; preds = %5714, %5718
  %.str.5.sink3196 = phi ptr [ @.str.5, %5718 ], [ @.str.2, %5714 ]
  store i32 %5709, ptr %765, align 4, !tbaa !5
  %5720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5721 = load i32, ptr @test_count, align 4, !tbaa !5
  %5722 = load i32, ptr %711, align 4, !tbaa !5
  %5723 = call ptr @s2n_strerror(i32 noundef %5722, ptr noundef nonnull @.str.4) #11
  %5724 = load i32, ptr %711, align 4, !tbaa !5
  %5725 = call ptr @s2n_strerror_debug(i32 noundef %5724, ptr noundef nonnull @.str.4) #11
  %5726 = load i32, ptr %765, align 4, !tbaa !5
  %5727 = call ptr @strerror(i32 noundef %5726) #11
  %5728 = load i32, ptr %765, align 4, !tbaa !5
  %5729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5720, ptr noundef nonnull %.str.5.sink3196, i32 noundef %5721, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 676, ptr noundef %5723, ptr noundef %5725, ptr noundef %5727, i32 noundef %5728) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5730:                                             ; preds = %5703
  %5731 = add nsw i32 %5704, 2
  store i32 %5731, ptr @test_count, align 4, !tbaa !5
  %5732 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %5733 = icmp eq ptr %5732, null
  br i1 %5733, label %5734, label %5756

5734:                                             ; preds = %5797, %5782, %5767, %5730
  %5735 = load i32, ptr %765, align 4, !tbaa !5
  %5736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5737 = call i32 @s2n_print_stacktrace(ptr noundef %5736) #11
  %5738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5739 = trunc nuw i8 %5738 to i1
  br i1 %5739, label %5740, label %5744

5740:                                             ; preds = %5734
  %5741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5742 = call i32 @fileno(ptr noundef %5741) #11
  %5743 = call i32 @isatty(i32 noundef %5742) #11
  %.not1062 = icmp eq i32 %5743, 0
  br i1 %.not1062, label %5744, label %5745

5744:                                             ; preds = %5740, %5734
  br label %5745

5745:                                             ; preds = %5740, %5744
  %.str.5.sink3205 = phi ptr [ @.str.5, %5744 ], [ @.str.2, %5740 ]
  store i32 %5735, ptr %765, align 4, !tbaa !5
  %5746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5747 = load i32, ptr @test_count, align 4, !tbaa !5
  %5748 = load i32, ptr %711, align 4, !tbaa !5
  %5749 = call ptr @s2n_strerror(i32 noundef %5748, ptr noundef nonnull @.str.4) #11
  %5750 = load i32, ptr %711, align 4, !tbaa !5
  %5751 = call ptr @s2n_strerror_debug(i32 noundef %5750, ptr noundef nonnull @.str.4) #11
  %5752 = load i32, ptr %765, align 4, !tbaa !5
  %5753 = call ptr @strerror(i32 noundef %5752) #11
  %5754 = load i32, ptr %765, align 4, !tbaa !5
  %5755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5746, ptr noundef nonnull %.str.5.sink3205, i32 noundef %5747, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 676, ptr noundef %5749, ptr noundef %5751, ptr noundef %5753, i32 noundef %5754) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5756:                                             ; preds = %5730
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %5757 = load i32, ptr @test_count, align 4, !tbaa !5
  %5758 = add nsw i32 %5757, 1
  store i32 %5758, ptr @test_count, align 4, !tbaa !5
  %5759 = getelementptr inbounds i8, ptr %19, i64 40
  %5760 = call i32 @s2n_validate_kem_preferences(ptr noundef nonnull %5759, i1 noundef zeroext true) #11
  %5761 = icmp eq i32 %5760, -1
  br i1 %5761, label %5762, label %5681

5762:                                             ; preds = %5756
  %5763 = load i32, ptr @test_count, align 4, !tbaa !5
  %5764 = add nsw i32 %5763, 1
  store i32 %5764, ptr @test_count, align 4, !tbaa !5
  %5765 = load i32, ptr %711, align 4, !tbaa !5
  %5766 = icmp eq i32 %5765, 469762101
  br i1 %5766, label %5767, label %5708

5767:                                             ; preds = %5762
  %5768 = add nsw i32 %5763, 2
  store i32 %5768, ptr @test_count, align 4, !tbaa !5
  %5769 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %5770 = icmp eq ptr %5769, null
  br i1 %5770, label %5734, label %5771

5771:                                             ; preds = %5767
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %5772 = load i32, ptr @test_count, align 4, !tbaa !5
  %5773 = add nsw i32 %5772, 1
  store i32 %5773, ptr @test_count, align 4, !tbaa !5
  %5774 = getelementptr inbounds i8, ptr %19, i64 80
  %5775 = call i32 @s2n_validate_kem_preferences(ptr noundef nonnull %5774, i1 noundef zeroext true) #11
  %5776 = icmp eq i32 %5775, -1
  br i1 %5776, label %5777, label %5681

5777:                                             ; preds = %5771
  %5778 = load i32, ptr @test_count, align 4, !tbaa !5
  %5779 = add nsw i32 %5778, 1
  store i32 %5779, ptr @test_count, align 4, !tbaa !5
  %5780 = load i32, ptr %711, align 4, !tbaa !5
  %5781 = icmp eq i32 %5780, 469762101
  br i1 %5781, label %5782, label %5708

5782:                                             ; preds = %5777
  %5783 = add nsw i32 %5778, 2
  store i32 %5783, ptr @test_count, align 4, !tbaa !5
  %5784 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %5785 = icmp eq ptr %5784, null
  br i1 %5785, label %5734, label %5786

5786:                                             ; preds = %5782
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %5787 = load i32, ptr @test_count, align 4, !tbaa !5
  %5788 = add nsw i32 %5787, 1
  store i32 %5788, ptr @test_count, align 4, !tbaa !5
  %5789 = getelementptr inbounds i8, ptr %19, i64 120
  %5790 = call i32 @s2n_validate_kem_preferences(ptr noundef nonnull %5789, i1 noundef zeroext true) #11
  %5791 = icmp eq i32 %5790, -1
  br i1 %5791, label %5792, label %5681

5792:                                             ; preds = %5786
  %5793 = load i32, ptr @test_count, align 4, !tbaa !5
  %5794 = add nsw i32 %5793, 1
  store i32 %5794, ptr @test_count, align 4, !tbaa !5
  %5795 = load i32, ptr %711, align 4, !tbaa !5
  %5796 = icmp eq i32 %5795, 469762101
  br i1 %5796, label %5797, label %5708

5797:                                             ; preds = %5792
  %5798 = add nsw i32 %5793, 2
  store i32 %5798, ptr @test_count, align 4, !tbaa !5
  %5799 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %5800 = icmp eq ptr %5799, null
  br i1 %5800, label %5734, label %5801

5801:                                             ; preds = %5797
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %5802 = load i32, ptr @test_count, align 4, !tbaa !5
  %5803 = add nsw i32 %5802, 1
  store i32 %5803, ptr @test_count, align 4, !tbaa !5
  %5804 = call i32 @s2n_validate_kem_preferences(ptr noundef nonnull @kem_preferences_pq_tls_1_0_2021_05, i1 noundef zeroext false) #11
  %5805 = icmp eq i32 %5804, -1
  br i1 %5805, label %5806, label %5828

5806:                                             ; preds = %5801
  %5807 = load i32, ptr %765, align 4, !tbaa !5
  %5808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5809 = call i32 @s2n_print_stacktrace(ptr noundef %5808) #11
  %5810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5811 = trunc nuw i8 %5810 to i1
  br i1 %5811, label %5812, label %5816

5812:                                             ; preds = %5806
  %5813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5814 = call i32 @fileno(ptr noundef %5813) #11
  %5815 = call i32 @isatty(i32 noundef %5814) #11
  %.not1059 = icmp eq i32 %5815, 0
  br i1 %.not1059, label %5816, label %5817

5816:                                             ; preds = %5812, %5806
  br label %5817

5817:                                             ; preds = %5812, %5816
  %.str.5.sink3214 = phi ptr [ @.str.5, %5816 ], [ @.str.2, %5812 ]
  store i32 %5807, ptr %765, align 4, !tbaa !5
  %5818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5819 = load i32, ptr @test_count, align 4, !tbaa !5
  %5820 = load i32, ptr %711, align 4, !tbaa !5
  %5821 = call ptr @s2n_strerror(i32 noundef %5820, ptr noundef nonnull @.str.4) #11
  %5822 = load i32, ptr %711, align 4, !tbaa !5
  %5823 = call ptr @s2n_strerror_debug(i32 noundef %5822, ptr noundef nonnull @.str.4) #11
  %5824 = load i32, ptr %765, align 4, !tbaa !5
  %5825 = call ptr @strerror(i32 noundef %5824) #11
  %5826 = load i32, ptr %765, align 4, !tbaa !5
  %5827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5818, ptr noundef nonnull %.str.5.sink3214, i32 noundef %5819, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 679, ptr noundef %5821, ptr noundef %5823, ptr noundef %5825, i32 noundef %5826) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5828:                                             ; preds = %5801
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %19) #11
  %test_count.promoted = load i32, ptr @test_count, align 4, !tbaa !5
  %5829 = load ptr, ptr @security_policy_selection, align 8, !tbaa !15
  %.not9841228 = icmp eq ptr %5829, null
  br i1 %.not9841228, label %._crit_edge1232, label %.lr.ph1231

._crit_edge1232:                                  ; preds = %5933, %5828
  %5830 = phi i32 [ %test_count.promoted, %5828 ], [ %5934, %5933 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %5831 = load i64, ptr @__const.main.test_sig_scheme_pref_list, align 8
  store i64 %5831, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #11
  store i8 1, ptr %21, align 8, !tbaa !39
  %5832 = getelementptr inbounds i8, ptr %21, i64 8
  store ptr %20, ptr %5832, align 8, !tbaa !41
  %5833 = add nsw i32 %5830, 1
  store i32 %5833, ptr @test_count, align 4, !tbaa !5
  %5834 = call i32 @s2n_validate_certificate_signature_preferences(ptr noundef nonnull %21) #11
  %5835 = call zeroext i1 @s2n_result_is_ok(i32 %5834)
  br i1 %5835, label %5960, label %5938

.lr.ph1231:                                       ; preds = %5828, %5933
  %5836 = phi ptr [ %5936, %5933 ], [ @security_policy_selection, %5828 ]
  %.08301229 = phi i64 [ %5935, %5933 ], [ 0, %5828 ]
  %5837 = phi i32 [ %5934, %5933 ], [ %test_count.promoted, %5828 ]
  %5838 = getelementptr inbounds i8, ptr %5836, i64 8
  %5839 = load ptr, ptr %5838, align 8, !tbaa !19
  store ptr %5839, ptr %8, align 8, !tbaa !9
  %5840 = add nsw i32 %5837, 1
  %5841 = icmp eq ptr %5839, null
  br i1 %5841, label %5842, label %5864

5842:                                             ; preds = %.lr.ph1231
  store i32 %5840, ptr @test_count, align 4, !tbaa !5
  %5843 = load i32, ptr %765, align 4, !tbaa !5
  %5844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5845 = call i32 @s2n_print_stacktrace(ptr noundef %5844) #11
  %5846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5847 = trunc nuw i8 %5846 to i1
  br i1 %5847, label %5848, label %5852

5848:                                             ; preds = %5842
  %5849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5850 = call i32 @fileno(ptr noundef %5849) #11
  %5851 = call i32 @isatty(i32 noundef %5850) #11
  %.not1058 = icmp eq i32 %5851, 0
  br i1 %.not1058, label %5852, label %5853

5852:                                             ; preds = %5848, %5842
  br label %5853

5853:                                             ; preds = %5848, %5852
  %.str.5.sink3223 = phi ptr [ @.str.5, %5852 ], [ @.str.2, %5848 ]
  store i32 %5843, ptr %765, align 4, !tbaa !5
  %5854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5855 = load i32, ptr @test_count, align 4, !tbaa !5
  %5856 = load i32, ptr %711, align 4, !tbaa !5
  %5857 = call ptr @s2n_strerror(i32 noundef %5856, ptr noundef nonnull @.str.4) #11
  %5858 = load i32, ptr %711, align 4, !tbaa !5
  %5859 = call ptr @s2n_strerror_debug(i32 noundef %5858, ptr noundef nonnull @.str.4) #11
  %5860 = load i32, ptr %765, align 4, !tbaa !5
  %5861 = call ptr @strerror(i32 noundef %5860) #11
  %5862 = load i32, ptr %765, align 4, !tbaa !5
  %5863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5854, ptr noundef nonnull %.str.5.sink3223, i32 noundef %5855, ptr noundef nonnull @.str.160, ptr noundef nonnull @.str.1, i32 noundef 687, ptr noundef %5857, ptr noundef %5859, ptr noundef %5861, i32 noundef %5862) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5864:                                             ; preds = %.lr.ph1231
  %5865 = getelementptr inbounds i8, ptr %5839, i64 32
  %5866 = load ptr, ptr %5865, align 8, !tbaa !72
  %.not1056 = icmp eq ptr %5866, null
  br i1 %.not1056, label %5933, label %.preheader

.preheader:                                       ; preds = %5864
  %5867 = load i8, ptr %5866, align 8, !tbaa !39
  %5868 = zext i8 %5867 to i64
  %.not1243 = icmp eq i8 %5867, 0
  br i1 %.not1243, label %._crit_edge1226.thread, label %.lr.ph1225

._crit_edge1226.thread:                           ; preds = %.preheader
  %5869 = add nsw i32 %5837, 2
  br label %5933

.lr.ph1225:                                       ; preds = %.preheader
  %5870 = getelementptr inbounds i8, ptr %5866, i64 8
  %5871 = load ptr, ptr %5870, align 8, !tbaa !41
  %xtraiter3980 = and i64 %5868, 3
  %5872 = icmp ult i8 %5867, 4
  br i1 %5872, label %._crit_edge1226.unr-lcssa, label %.lr.ph1225.new

.lr.ph1225.new:                                   ; preds = %.lr.ph1225
  %unroll_iter3983 = and i64 %5868, 252
  br label %5882

._crit_edge1226.unr-lcssa:                        ; preds = %5882, %.lr.ph1225
  %spec.select1150.lcssa.ph = phi i64 [ poison, %.lr.ph1225 ], [ %spec.select1150.3, %5882 ]
  %.08311224.unr = phi i64 [ 0, %.lr.ph1225 ], [ %spec.select1150.3, %5882 ]
  %.08331223.unr = phi i64 [ 0, %.lr.ph1225 ], [ %5910, %5882 ]
  %lcmp.mod3981.not = icmp eq i64 %xtraiter3980, 0
  br i1 %lcmp.mod3981.not, label %._crit_edge1226, label %.epil.preheader3979

.epil.preheader3979:                              ; preds = %._crit_edge1226.unr-lcssa, %.epil.preheader3979
  %.08311224.epil = phi i64 [ %spec.select1150.epil, %.epil.preheader3979 ], [ %.08311224.unr, %._crit_edge1226.unr-lcssa ]
  %.08331223.epil = phi i64 [ %5879, %.epil.preheader3979 ], [ %.08331223.unr, %._crit_edge1226.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader3979 ], [ 0, %._crit_edge1226.unr-lcssa ]
  %5873 = getelementptr inbounds ptr, ptr %5871, i64 %.08331223.epil
  %5874 = load ptr, ptr %5873, align 8, !tbaa !9
  %5875 = getelementptr inbounds i8, ptr %5874, i64 26
  %5876 = load i16, ptr %5875, align 2, !tbaa !73
  %5877 = icmp eq i16 %5876, 912
  %5878 = zext i1 %5877 to i64
  %spec.select1150.epil = add i64 %.08311224.epil, %5878
  %5879 = add nuw nsw i64 %.08331223.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter3980
  br i1 %epil.iter.cmp.not, label %._crit_edge1226, label %.epil.preheader3979, !llvm.loop !74

._crit_edge1226:                                  ; preds = %.epil.preheader3979, %._crit_edge1226.unr-lcssa
  %spec.select1150.lcssa = phi i64 [ %spec.select1150.lcssa.ph, %._crit_edge1226.unr-lcssa ], [ %spec.select1150.epil, %.epil.preheader3979 ]
  %5880 = add nsw i32 %5837, 2
  %5881 = icmp ult i64 %spec.select1150.lcssa, 7
  br i1 %5881, label %5933, label %5911

5882:                                             ; preds = %5882, %.lr.ph1225.new
  %.08311224 = phi i64 [ 0, %.lr.ph1225.new ], [ %spec.select1150.3, %5882 ]
  %.08331223 = phi i64 [ 0, %.lr.ph1225.new ], [ %5910, %5882 ]
  %niter3984 = phi i64 [ 0, %.lr.ph1225.new ], [ %niter3984.next.3, %5882 ]
  %5883 = getelementptr inbounds ptr, ptr %5871, i64 %.08331223
  %5884 = load ptr, ptr %5883, align 8, !tbaa !9
  %5885 = getelementptr inbounds i8, ptr %5884, i64 26
  %5886 = load i16, ptr %5885, align 2, !tbaa !73
  %5887 = icmp eq i16 %5886, 912
  %5888 = zext i1 %5887 to i64
  %spec.select1150 = add i64 %.08311224, %5888
  %5889 = or disjoint i64 %.08331223, 1
  %5890 = getelementptr inbounds ptr, ptr %5871, i64 %5889
  %5891 = load ptr, ptr %5890, align 8, !tbaa !9
  %5892 = getelementptr inbounds i8, ptr %5891, i64 26
  %5893 = load i16, ptr %5892, align 2, !tbaa !73
  %5894 = icmp eq i16 %5893, 912
  %5895 = zext i1 %5894 to i64
  %spec.select1150.1 = add i64 %spec.select1150, %5895
  %5896 = or disjoint i64 %.08331223, 2
  %5897 = getelementptr inbounds ptr, ptr %5871, i64 %5896
  %5898 = load ptr, ptr %5897, align 8, !tbaa !9
  %5899 = getelementptr inbounds i8, ptr %5898, i64 26
  %5900 = load i16, ptr %5899, align 2, !tbaa !73
  %5901 = icmp eq i16 %5900, 912
  %5902 = zext i1 %5901 to i64
  %spec.select1150.2 = add i64 %spec.select1150.1, %5902
  %5903 = or disjoint i64 %.08331223, 3
  %5904 = getelementptr inbounds ptr, ptr %5871, i64 %5903
  %5905 = load ptr, ptr %5904, align 8, !tbaa !9
  %5906 = getelementptr inbounds i8, ptr %5905, i64 26
  %5907 = load i16, ptr %5906, align 2, !tbaa !73
  %5908 = icmp eq i16 %5907, 912
  %5909 = zext i1 %5908 to i64
  %spec.select1150.3 = add i64 %spec.select1150.2, %5909
  %5910 = add nuw nsw i64 %.08331223, 4
  %niter3984.next.3 = add i64 %niter3984, 4
  %niter3984.ncmp.3 = icmp eq i64 %niter3984.next.3, %unroll_iter3983
  br i1 %niter3984.ncmp.3, label %._crit_edge1226.unr-lcssa, label %5882, !llvm.loop !76

5911:                                             ; preds = %._crit_edge1226
  store i32 %5880, ptr @test_count, align 4, !tbaa !5
  %5912 = load i32, ptr %765, align 4, !tbaa !5
  %5913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5914 = call i32 @s2n_print_stacktrace(ptr noundef %5913) #11
  %5915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5916 = trunc nuw i8 %5915 to i1
  br i1 %5916, label %5917, label %5921

5917:                                             ; preds = %5911
  %5918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5919 = call i32 @fileno(ptr noundef %5918) #11
  %5920 = call i32 @isatty(i32 noundef %5919) #11
  %.not1057 = icmp eq i32 %5920, 0
  br i1 %.not1057, label %5921, label %5922

5921:                                             ; preds = %5917, %5911
  br label %5922

5922:                                             ; preds = %5917, %5921
  %.str.5.sink3232 = phi ptr [ @.str.5, %5921 ], [ @.str.2, %5917 ]
  store i32 %5912, ptr %765, align 4, !tbaa !5
  %5923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5924 = load i32, ptr @test_count, align 4, !tbaa !5
  %5925 = load i32, ptr %711, align 4, !tbaa !5
  %5926 = call ptr @s2n_strerror(i32 noundef %5925, ptr noundef nonnull @.str.4) #11
  %5927 = load i32, ptr %711, align 4, !tbaa !5
  %5928 = call ptr @s2n_strerror_debug(i32 noundef %5927, ptr noundef nonnull @.str.4) #11
  %5929 = load i32, ptr %765, align 4, !tbaa !5
  %5930 = call ptr @strerror(i32 noundef %5929) #11
  %5931 = load i32, ptr %765, align 4, !tbaa !5
  %5932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5923, ptr noundef nonnull %.str.5.sink3232, i32 noundef %5924, ptr noundef nonnull @.str.176, ptr noundef nonnull @.str.1, i32 noundef 696, ptr noundef %5926, ptr noundef %5928, ptr noundef %5930, i32 noundef %5931) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5933:                                             ; preds = %._crit_edge1226.thread, %._crit_edge1226, %5864
  %5934 = phi i32 [ %5880, %._crit_edge1226 ], [ %5840, %5864 ], [ %5869, %._crit_edge1226.thread ]
  %5935 = add i64 %.08301229, 1
  %5936 = getelementptr inbounds [0 x %struct.s2n_security_policy_selection], ptr @security_policy_selection, i64 0, i64 %5935
  %5937 = load ptr, ptr %5936, align 8, !tbaa !15
  %.not984 = icmp eq ptr %5937, null
  br i1 %.not984, label %._crit_edge1232, label %.lr.ph1231, !llvm.loop !77

5938:                                             ; preds = %._crit_edge1232
  %5939 = load i32, ptr %765, align 4, !tbaa !5
  %5940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5941 = call i32 @s2n_print_stacktrace(ptr noundef %5940) #11
  %5942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5943 = trunc nuw i8 %5942 to i1
  br i1 %5943, label %5944, label %5948

5944:                                             ; preds = %5938
  %5945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5946 = call i32 @fileno(ptr noundef %5945) #11
  %5947 = call i32 @isatty(i32 noundef %5946) #11
  %.not985 = icmp eq i32 %5947, 0
  br i1 %.not985, label %5948, label %5949

5948:                                             ; preds = %5944, %5938
  br label %5949

5949:                                             ; preds = %5944, %5948
  %.str.5.sink3241 = phi ptr [ @.str.5, %5948 ], [ @.str.2, %5944 ]
  store i32 %5939, ptr %765, align 4, !tbaa !5
  %5950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5951 = load i32, ptr @test_count, align 4, !tbaa !5
  %5952 = load i32, ptr %711, align 4, !tbaa !5
  %5953 = call ptr @s2n_strerror(i32 noundef %5952, ptr noundef nonnull @.str.4) #11
  %5954 = load i32, ptr %711, align 4, !tbaa !5
  %5955 = call ptr @s2n_strerror_debug(i32 noundef %5954, ptr noundef nonnull @.str.4) #11
  %5956 = load i32, ptr %765, align 4, !tbaa !5
  %5957 = call ptr @strerror(i32 noundef %5956) #11
  %5958 = load i32, ptr %765, align 4, !tbaa !5
  %5959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5950, ptr noundef nonnull %.str.5.sink3241, i32 noundef %5951, ptr noundef nonnull @.str.177, ptr noundef nonnull @.str.1, i32 noundef 712, ptr noundef %5953, ptr noundef %5955, ptr noundef %5957, i32 noundef %5958) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5960:                                             ; preds = %._crit_edge1232
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %22, ptr noundef nonnull align 16 dereferenceable(48) @__const.main.test_sig_scheme_pref_list.178, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #11
  store i8 6, ptr %23, align 8, !tbaa !39
  %5961 = getelementptr inbounds i8, ptr %23, i64 8
  store ptr %22, ptr %5961, align 8, !tbaa !41
  %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_validate_certificate_signature_preferences(ptr noundef nonnull %23) #11
  %5965 = call zeroext i1 @s2n_result_is_ok(i32 %5964)
  br i1 %5965, label %5988, label %5966

5966:                                             ; preds = %5960
  %5967 = load i32, ptr %765, align 4, !tbaa !5
  %5968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5969 = call i32 @s2n_print_stacktrace(ptr noundef %5968) #11
  %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) #11
  %5975 = call i32 @isatty(i32 noundef %5974) #11
  %.not986 = icmp eq i32 %5975, 0
  br i1 %.not986, label %5976, label %5977

5976:                                             ; preds = %5972, %5966
  br label %5977

5977:                                             ; preds = %5972, %5976
  %.str.5.sink3250 = phi ptr [ @.str.5, %5976 ], [ @.str.2, %5972 ]
  store i32 %5967, ptr %765, 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 %711, align 4, !tbaa !5
  %5981 = call ptr @s2n_strerror(i32 noundef %5980, ptr noundef nonnull @.str.4) #11
  %5982 = load i32, ptr %711, align 4, !tbaa !5
  %5983 = call ptr @s2n_strerror_debug(i32 noundef %5982, ptr noundef nonnull @.str.4) #11
  %5984 = load i32, ptr %765, align 4, !tbaa !5
  %5985 = call ptr @strerror(i32 noundef %5984) #11
  %5986 = load i32, ptr %765, align 4, !tbaa !5
  %5987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5978, ptr noundef nonnull %.str.5.sink3250, i32 noundef %5979, ptr noundef nonnull @.str.177, ptr noundef nonnull @.str.1, i32 noundef 731, ptr noundef %5981, ptr noundef %5983, ptr noundef %5985, i32 noundef %5986) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5988:                                             ; preds = %5960
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %24, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.test_sig_scheme_pref_list.179, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #11
  store i8 2, ptr %25, align 8, !tbaa !39
  %5989 = getelementptr inbounds i8, ptr %25, i64 8
  store ptr %24, ptr %5989, align 8, !tbaa !41
  %5990 = load i32, ptr @test_count, align 4, !tbaa !5
  %5991 = add nsw i32 %5990, 1
  store i32 %5991, ptr @test_count, align 4, !tbaa !5
  %5992 = call i32 @s2n_validate_certificate_signature_preferences(ptr noundef nonnull %25) #11
  %5993 = call zeroext i1 @s2n_result_is_error(i32 %5992)
  br i1 %5993, label %6016, label %5994

5994:                                             ; preds = %5988
  %5995 = load i32, ptr %765, align 4, !tbaa !5
  %5996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5997 = call i32 @s2n_print_stacktrace(ptr noundef %5996) #11
  %5998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5999 = trunc nuw i8 %5998 to i1
  br i1 %5999, label %6000, label %6004

6000:                                             ; preds = %5994
  %6001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6002 = call i32 @fileno(ptr noundef %6001) #11
  %6003 = call i32 @isatty(i32 noundef %6002) #11
  %.not987 = icmp eq i32 %6003, 0
  br i1 %.not987, label %6004, label %6005

6004:                                             ; preds = %6000, %5994
  br label %6005

6005:                                             ; preds = %6000, %6004
  %.str.5.sink3259 = phi ptr [ @.str.5, %6004 ], [ @.str.2, %6000 ]
  store i32 %5995, ptr %765, align 4, !tbaa !5
  %6006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6007 = load i32, ptr @test_count, align 4, !tbaa !5
  %6008 = load i32, ptr %711, align 4, !tbaa !5
  %6009 = call ptr @s2n_strerror(i32 noundef %6008, ptr noundef nonnull @.str.4) #11
  %6010 = load i32, ptr %711, align 4, !tbaa !5
  %6011 = call ptr @s2n_strerror_debug(i32 noundef %6010, ptr noundef nonnull @.str.4) #11
  %6012 = load i32, ptr %765, align 4, !tbaa !5
  %6013 = call ptr @strerror(i32 noundef %6012) #11
  %6014 = load i32, ptr %765, align 4, !tbaa !5
  %6015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6006, ptr noundef nonnull %.str.5.sink3259, i32 noundef %6007, ptr noundef nonnull @.str.180, ptr noundef nonnull @.str.1, i32 noundef 746, ptr noundef %6009, ptr noundef %6011, ptr noundef %6013, i32 noundef %6014) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6016:                                             ; preds = %5988
  %6017 = load i32, ptr @test_count, align 4, !tbaa !5
  %6018 = add nsw i32 %6017, 1
  store i32 %6018, ptr @test_count, align 4, !tbaa !5
  %6019 = load i32, ptr %711, align 4, !tbaa !5
  %6020 = icmp eq i32 %6019, 469762101
  br i1 %6020, label %6043, label %6021

6021:                                             ; preds = %6016
  %6022 = load i32, ptr %765, align 4, !tbaa !5
  %6023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6024 = call i32 @s2n_print_stacktrace(ptr noundef %6023) #11
  %6025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6026 = trunc nuw i8 %6025 to i1
  br i1 %6026, label %6027, label %6031

6027:                                             ; preds = %6021
  %6028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6029 = call i32 @fileno(ptr noundef %6028) #11
  %6030 = call i32 @isatty(i32 noundef %6029) #11
  %.not988 = icmp eq i32 %6030, 0
  br i1 %.not988, label %6031, label %6032

6031:                                             ; preds = %6027, %6021
  br label %6032

6032:                                             ; preds = %6027, %6031
  %.str.5.sink3268 = phi ptr [ @.str.5, %6031 ], [ @.str.2, %6027 ]
  store i32 %6022, ptr %765, align 4, !tbaa !5
  %6033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6034 = load i32, ptr @test_count, align 4, !tbaa !5
  %6035 = load i32, ptr %711, align 4, !tbaa !5
  %6036 = call ptr @s2n_strerror(i32 noundef %6035, ptr noundef nonnull @.str.4) #11
  %6037 = load i32, ptr %711, align 4, !tbaa !5
  %6038 = call ptr @s2n_strerror_debug(i32 noundef %6037, ptr noundef nonnull @.str.4) #11
  %6039 = load i32, ptr %765, align 4, !tbaa !5
  %6040 = call ptr @strerror(i32 noundef %6039) #11
  %6041 = load i32, ptr %765, align 4, !tbaa !5
  %6042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6033, ptr noundef nonnull %.str.5.sink3268, i32 noundef %6034, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 746, ptr noundef %6036, ptr noundef %6038, ptr noundef %6040, i32 noundef %6041) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6043:                                             ; preds = %6016
  %6044 = add nsw i32 %6017, 2
  store i32 %6044, ptr @test_count, align 4, !tbaa !5
  %6045 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #11
  %6046 = icmp eq ptr %6045, null
  br i1 %6046, label %6047, label %6069

6047:                                             ; preds = %6043
  %6048 = load i32, ptr %765, align 4, !tbaa !5
  %6049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6050 = call i32 @s2n_print_stacktrace(ptr noundef %6049) #11
  %6051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6052 = trunc nuw i8 %6051 to i1
  br i1 %6052, label %6053, label %6057

6053:                                             ; preds = %6047
  %6054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6055 = call i32 @fileno(ptr noundef %6054) #11
  %6056 = call i32 @isatty(i32 noundef %6055) #11
  %.not1055 = icmp eq i32 %6056, 0
  br i1 %.not1055, label %6057, label %6058

6057:                                             ; preds = %6053, %6047
  br label %6058

6058:                                             ; preds = %6053, %6057
  %.str.5.sink3277 = phi ptr [ @.str.5, %6057 ], [ @.str.2, %6053 ]
  store i32 %6048, ptr %765, align 4, !tbaa !5
  %6059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6060 = load i32, ptr @test_count, align 4, !tbaa !5
  %6061 = load i32, ptr %711, align 4, !tbaa !5
  %6062 = call ptr @s2n_strerror(i32 noundef %6061, ptr noundef nonnull @.str.4) #11
  %6063 = load i32, ptr %711, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror_debug(i32 noundef %6063, ptr noundef nonnull @.str.4) #11
  %6065 = load i32, ptr %765, align 4, !tbaa !5
  %6066 = call ptr @strerror(i32 noundef %6065) #11
  %6067 = load i32, ptr %765, align 4, !tbaa !5
  %6068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6059, ptr noundef nonnull %.str.5.sink3277, i32 noundef %6060, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 746, ptr noundef %6062, ptr noundef %6064, ptr noundef %6066, i32 noundef %6067) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6069:                                             ; preds = %6043
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #11
  %6070 = load i32, ptr @test_count, align 4, !tbaa !5
  %6071 = add nsw i32 %6070, 1
  store i32 %6071, ptr @test_count, align 4, !tbaa !5
  %6072 = call i32 (...) @s2n_reset_tls13_in_test() #11
  %6073 = icmp eq i32 %6072, -1
  br i1 %6073, label %6074, label %6096

6074:                                             ; preds = %6069
  %6075 = load i32, ptr %765, align 4, !tbaa !5
  %6076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6077 = call i32 @s2n_print_stacktrace(ptr noundef %6076) #11
  %6078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6079 = trunc nuw i8 %6078 to i1
  br i1 %6079, label %6080, label %6084

6080:                                             ; preds = %6074
  %6081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6082 = call i32 @fileno(ptr noundef %6081) #11
  %6083 = call i32 @isatty(i32 noundef %6082) #11
  %.not1054 = icmp eq i32 %6083, 0
  br i1 %.not1054, label %6084, label %6085

6084:                                             ; preds = %6080, %6074
  br label %6085

6085:                                             ; preds = %6080, %6084
  %.str.5.sink3286 = phi ptr [ @.str.5, %6084 ], [ @.str.2, %6080 ]
  store i32 %6075, ptr %765, align 4, !tbaa !5
  %6086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6087 = load i32, ptr @test_count, align 4, !tbaa !5
  %6088 = load i32, ptr %711, align 4, !tbaa !5
  %6089 = call ptr @s2n_strerror(i32 noundef %6088, ptr noundef nonnull @.str.4) #11
  %6090 = load i32, ptr %711, align 4, !tbaa !5
  %6091 = call ptr @s2n_strerror_debug(i32 noundef %6090, ptr noundef nonnull @.str.4) #11
  %6092 = load i32, ptr %765, align 4, !tbaa !5
  %6093 = call ptr @strerror(i32 noundef %6092) #11
  %6094 = load i32, ptr %765, align 4, !tbaa !5
  %6095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6086, ptr noundef nonnull %.str.5.sink3286, i32 noundef %6087, ptr noundef nonnull @.str.181, ptr noundef nonnull @.str.1, i32 noundef 749, ptr noundef %6089, ptr noundef %6091, ptr noundef %6093, i32 noundef %6094) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6096:                                             ; preds = %6069
  %6097 = load i32, ptr @test_count, align 4, !tbaa !5
  %6098 = add nsw i32 %6097, 1
  store i32 %6098, ptr @test_count, align 4, !tbaa !5
  %6099 = load ptr, ptr %3, align 8, !tbaa !9
  %6100 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.37, ptr noundef %6099)
  %6101 = call zeroext i1 @s2n_result_is_ok(i32 %6100)
  br i1 %6101, label %6124, label %6102

6102:                                             ; preds = %6096
  %6103 = load i32, ptr %765, align 4, !tbaa !5
  %6104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6105 = call i32 @s2n_print_stacktrace(ptr noundef %6104) #11
  %6106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6107 = trunc nuw i8 %6106 to i1
  br i1 %6107, label %6108, label %6112

6108:                                             ; preds = %6102
  %6109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6110 = call i32 @fileno(ptr noundef %6109) #11
  %6111 = call i32 @isatty(i32 noundef %6110) #11
  %.not989 = icmp eq i32 %6111, 0
  br i1 %.not989, label %6112, label %6113

6112:                                             ; preds = %6108, %6102
  br label %6113

6113:                                             ; preds = %6108, %6112
  %.str.5.sink3295 = phi ptr [ @.str.5, %6112 ], [ @.str.2, %6108 ]
  store i32 %6103, ptr %765, align 4, !tbaa !5
  %6114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6115 = load i32, ptr @test_count, align 4, !tbaa !5
  %6116 = load i32, ptr %711, align 4, !tbaa !5
  %6117 = call ptr @s2n_strerror(i32 noundef %6116, ptr noundef nonnull @.str.4) #11
  %6118 = load i32, ptr %711, align 4, !tbaa !5
  %6119 = call ptr @s2n_strerror_debug(i32 noundef %6118, ptr noundef nonnull @.str.4) #11
  %6120 = load i32, ptr %765, align 4, !tbaa !5
  %6121 = call ptr @strerror(i32 noundef %6120) #11
  %6122 = load i32, ptr %765, align 4, !tbaa !5
  %6123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6114, ptr noundef nonnull %.str.5.sink3295, i32 noundef %6115, ptr noundef nonnull @.str.182, ptr noundef nonnull @.str.1, i32 noundef 755, ptr noundef %6117, ptr noundef %6119, ptr noundef %6121, i32 noundef %6122) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6124:                                             ; preds = %6096
  %6125 = load i32, ptr @test_count, align 4, !tbaa !5
  %6126 = add nsw i32 %6125, 1
  store i32 %6126, ptr @test_count, align 4, !tbaa !5
  %6127 = load ptr, ptr %3, align 8, !tbaa !9
  %6128 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.46, ptr noundef %6127)
  %6129 = call zeroext i1 @s2n_result_is_ok(i32 %6128)
  br i1 %6129, label %6152, label %6130

6130:                                             ; preds = %6124
  %6131 = load i32, ptr %765, align 4, !tbaa !5
  %6132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6133 = call i32 @s2n_print_stacktrace(ptr noundef %6132) #11
  %6134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6135 = trunc nuw i8 %6134 to i1
  br i1 %6135, label %6136, label %6140

6136:                                             ; preds = %6130
  %6137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6138 = call i32 @fileno(ptr noundef %6137) #11
  %6139 = call i32 @isatty(i32 noundef %6138) #11
  %.not990 = icmp eq i32 %6139, 0
  br i1 %.not990, label %6140, label %6141

6140:                                             ; preds = %6136, %6130
  br label %6141

6141:                                             ; preds = %6136, %6140
  %.str.5.sink3304 = phi ptr [ @.str.5, %6140 ], [ @.str.2, %6136 ]
  store i32 %6131, ptr %765, align 4, !tbaa !5
  %6142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6143 = load i32, ptr @test_count, align 4, !tbaa !5
  %6144 = load i32, ptr %711, align 4, !tbaa !5
  %6145 = call ptr @s2n_strerror(i32 noundef %6144, ptr noundef nonnull @.str.4) #11
  %6146 = load i32, ptr %711, align 4, !tbaa !5
  %6147 = call ptr @s2n_strerror_debug(i32 noundef %6146, ptr noundef nonnull @.str.4) #11
  %6148 = load i32, ptr %765, align 4, !tbaa !5
  %6149 = call ptr @strerror(i32 noundef %6148) #11
  %6150 = load i32, ptr %765, align 4, !tbaa !5
  %6151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6142, ptr noundef nonnull %.str.5.sink3304, i32 noundef %6143, ptr noundef nonnull @.str.183, ptr noundef nonnull @.str.1, i32 noundef 756, ptr noundef %6145, ptr noundef %6147, ptr noundef %6149, i32 noundef %6150) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6152:                                             ; preds = %6124
  %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 %3, align 8, !tbaa !9
  %6156 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.184, ptr noundef %6155)
  %6157 = call zeroext i1 @s2n_result_is_ok(i32 %6156)
  br i1 %6157, label %6180, label %6158

6158:                                             ; preds = %6152
  %6159 = load i32, ptr %765, align 4, !tbaa !5
  %6160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6161 = call i32 @s2n_print_stacktrace(ptr noundef %6160) #11
  %6162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6163 = trunc nuw i8 %6162 to i1
  br i1 %6163, label %6164, label %6168

6164:                                             ; preds = %6158
  %6165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6166 = call i32 @fileno(ptr noundef %6165) #11
  %6167 = call i32 @isatty(i32 noundef %6166) #11
  %.not991 = icmp eq i32 %6167, 0
  br i1 %.not991, label %6168, label %6169

6168:                                             ; preds = %6164, %6158
  br label %6169

6169:                                             ; preds = %6164, %6168
  %.str.5.sink3313 = phi ptr [ @.str.5, %6168 ], [ @.str.2, %6164 ]
  store i32 %6159, ptr %765, align 4, !tbaa !5
  %6170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6171 = load i32, ptr @test_count, align 4, !tbaa !5
  %6172 = load i32, ptr %711, align 4, !tbaa !5
  %6173 = call ptr @s2n_strerror(i32 noundef %6172, ptr noundef nonnull @.str.4) #11
  %6174 = load i32, ptr %711, align 4, !tbaa !5
  %6175 = call ptr @s2n_strerror_debug(i32 noundef %6174, ptr noundef nonnull @.str.4) #11
  %6176 = load i32, ptr %765, align 4, !tbaa !5
  %6177 = call ptr @strerror(i32 noundef %6176) #11
  %6178 = load i32, ptr %765, align 4, !tbaa !5
  %6179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6170, ptr noundef nonnull %.str.5.sink3313, i32 noundef %6171, ptr noundef nonnull @.str.185, ptr noundef nonnull @.str.1, i32 noundef 757, ptr noundef %6173, ptr noundef %6175, ptr noundef %6177, i32 noundef %6178) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6180:                                             ; preds = %6152
  %6181 = load i32, ptr @test_count, align 4, !tbaa !5
  %6182 = add nsw i32 %6181, 1
  store i32 %6182, ptr @test_count, align 4, !tbaa !5
  %6183 = load ptr, ptr %3, align 8, !tbaa !9
  %6184 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.186, ptr noundef %6183)
  %6185 = call zeroext i1 @s2n_result_is_ok(i32 %6184)
  br i1 %6185, label %6208, label %6186

6186:                                             ; preds = %6180
  %6187 = load i32, ptr %765, align 4, !tbaa !5
  %6188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6189 = call i32 @s2n_print_stacktrace(ptr noundef %6188) #11
  %6190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6191 = trunc nuw i8 %6190 to i1
  br i1 %6191, label %6192, label %6196

6192:                                             ; preds = %6186
  %6193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6194 = call i32 @fileno(ptr noundef %6193) #11
  %6195 = call i32 @isatty(i32 noundef %6194) #11
  %.not992 = icmp eq i32 %6195, 0
  br i1 %.not992, label %6196, label %6197

6196:                                             ; preds = %6192, %6186
  br label %6197

6197:                                             ; preds = %6192, %6196
  %.str.5.sink3322 = phi ptr [ @.str.5, %6196 ], [ @.str.2, %6192 ]
  store i32 %6187, ptr %765, align 4, !tbaa !5
  %6198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6199 = load i32, ptr @test_count, align 4, !tbaa !5
  %6200 = load i32, ptr %711, align 4, !tbaa !5
  %6201 = call ptr @s2n_strerror(i32 noundef %6200, ptr noundef nonnull @.str.4) #11
  %6202 = load i32, ptr %711, align 4, !tbaa !5
  %6203 = call ptr @s2n_strerror_debug(i32 noundef %6202, ptr noundef nonnull @.str.4) #11
  %6204 = load i32, ptr %765, align 4, !tbaa !5
  %6205 = call ptr @strerror(i32 noundef %6204) #11
  %6206 = load i32, ptr %765, align 4, !tbaa !5
  %6207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6198, ptr noundef nonnull %.str.5.sink3322, i32 noundef %6199, ptr noundef nonnull @.str.187, ptr noundef nonnull @.str.1, i32 noundef 758, ptr noundef %6201, ptr noundef %6203, ptr noundef %6205, i32 noundef %6206) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6208:                                             ; preds = %6180
  %6209 = load i32, ptr @test_count, align 4, !tbaa !5
  %6210 = add nsw i32 %6209, 1
  store i32 %6210, ptr @test_count, align 4, !tbaa !5
  %6211 = load ptr, ptr %4, align 8, !tbaa !9
  %6212 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.46, ptr noundef %6211)
  %6213 = call zeroext i1 @s2n_result_is_ok(i32 %6212)
  br i1 %6213, label %6236, label %6214

6214:                                             ; preds = %6208
  %6215 = load i32, ptr %765, align 4, !tbaa !5
  %6216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6217 = call i32 @s2n_print_stacktrace(ptr noundef %6216) #11
  %6218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6219 = trunc nuw i8 %6218 to i1
  br i1 %6219, label %6220, label %6224

6220:                                             ; preds = %6214
  %6221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6222 = call i32 @fileno(ptr noundef %6221) #11
  %6223 = call i32 @isatty(i32 noundef %6222) #11
  %.not993 = icmp eq i32 %6223, 0
  br i1 %.not993, label %6224, label %6225

6224:                                             ; preds = %6220, %6214
  br label %6225

6225:                                             ; preds = %6220, %6224
  %.str.5.sink3331 = phi ptr [ @.str.5, %6224 ], [ @.str.2, %6220 ]
  store i32 %6215, ptr %765, align 4, !tbaa !5
  %6226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6227 = load i32, ptr @test_count, align 4, !tbaa !5
  %6228 = load i32, ptr %711, align 4, !tbaa !5
  %6229 = call ptr @s2n_strerror(i32 noundef %6228, ptr noundef nonnull @.str.4) #11
  %6230 = load i32, ptr %711, align 4, !tbaa !5
  %6231 = call ptr @s2n_strerror_debug(i32 noundef %6230, ptr noundef nonnull @.str.4) #11
  %6232 = load i32, ptr %765, align 4, !tbaa !5
  %6233 = call ptr @strerror(i32 noundef %6232) #11
  %6234 = load i32, ptr %765, align 4, !tbaa !5
  %6235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6226, ptr noundef nonnull %.str.5.sink3331, i32 noundef %6227, ptr noundef nonnull @.str.188, ptr noundef nonnull @.str.1, i32 noundef 760, ptr noundef %6229, ptr noundef %6231, ptr noundef %6233, i32 noundef %6234) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6236:                                             ; preds = %6208
  %6237 = load i32, ptr @test_count, align 4, !tbaa !5
  %6238 = add nsw i32 %6237, 1
  store i32 %6238, ptr @test_count, align 4, !tbaa !5
  %6239 = load ptr, ptr %4, align 8, !tbaa !9
  %6240 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.184, ptr noundef %6239)
  %6241 = call zeroext i1 @s2n_result_is_ok(i32 %6240)
  br i1 %6241, label %6264, label %6242

6242:                                             ; preds = %6236
  %6243 = load i32, ptr %765, align 4, !tbaa !5
  %6244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6245 = call i32 @s2n_print_stacktrace(ptr noundef %6244) #11
  %6246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6247 = trunc nuw i8 %6246 to i1
  br i1 %6247, label %6248, label %6252

6248:                                             ; preds = %6242
  %6249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6250 = call i32 @fileno(ptr noundef %6249) #11
  %6251 = call i32 @isatty(i32 noundef %6250) #11
  %.not994 = icmp eq i32 %6251, 0
  br i1 %.not994, label %6252, label %6253

6252:                                             ; preds = %6248, %6242
  br label %6253

6253:                                             ; preds = %6248, %6252
  %.str.5.sink3340 = phi ptr [ @.str.5, %6252 ], [ @.str.2, %6248 ]
  store i32 %6243, ptr %765, align 4, !tbaa !5
  %6254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6255 = load i32, ptr @test_count, align 4, !tbaa !5
  %6256 = load i32, ptr %711, align 4, !tbaa !5
  %6257 = call ptr @s2n_strerror(i32 noundef %6256, ptr noundef nonnull @.str.4) #11
  %6258 = load i32, ptr %711, align 4, !tbaa !5
  %6259 = call ptr @s2n_strerror_debug(i32 noundef %6258, ptr noundef nonnull @.str.4) #11
  %6260 = load i32, ptr %765, align 4, !tbaa !5
  %6261 = call ptr @strerror(i32 noundef %6260) #11
  %6262 = load i32, ptr %765, align 4, !tbaa !5
  %6263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6254, ptr noundef nonnull %.str.5.sink3340, i32 noundef %6255, ptr noundef nonnull @.str.189, ptr noundef nonnull @.str.1, i32 noundef 761, ptr noundef %6257, ptr noundef %6259, ptr noundef %6261, i32 noundef %6262) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6264:                                             ; preds = %6236
  %6265 = load i32, ptr @test_count, align 4, !tbaa !5
  %6266 = add nsw i32 %6265, 1
  store i32 %6266, ptr @test_count, align 4, !tbaa !5
  %6267 = load ptr, ptr %4, align 8, !tbaa !9
  %6268 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.186, ptr noundef %6267)
  %6269 = call zeroext i1 @s2n_result_is_ok(i32 %6268)
  br i1 %6269, label %6292, label %6270

6270:                                             ; preds = %6264
  %6271 = load i32, ptr %765, align 4, !tbaa !5
  %6272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6273 = call i32 @s2n_print_stacktrace(ptr noundef %6272) #11
  %6274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6275 = trunc nuw i8 %6274 to i1
  br i1 %6275, label %6276, label %6280

6276:                                             ; preds = %6270
  %6277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6278 = call i32 @fileno(ptr noundef %6277) #11
  %6279 = call i32 @isatty(i32 noundef %6278) #11
  %.not995 = icmp eq i32 %6279, 0
  br i1 %.not995, label %6280, label %6281

6280:                                             ; preds = %6276, %6270
  br label %6281

6281:                                             ; preds = %6276, %6280
  %.str.5.sink3349 = phi ptr [ @.str.5, %6280 ], [ @.str.2, %6276 ]
  store i32 %6271, ptr %765, align 4, !tbaa !5
  %6282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6283 = load i32, ptr @test_count, align 4, !tbaa !5
  %6284 = load i32, ptr %711, align 4, !tbaa !5
  %6285 = call ptr @s2n_strerror(i32 noundef %6284, ptr noundef nonnull @.str.4) #11
  %6286 = load i32, ptr %711, align 4, !tbaa !5
  %6287 = call ptr @s2n_strerror_debug(i32 noundef %6286, ptr noundef nonnull @.str.4) #11
  %6288 = load i32, ptr %765, align 4, !tbaa !5
  %6289 = call ptr @strerror(i32 noundef %6288) #11
  %6290 = load i32, ptr %765, align 4, !tbaa !5
  %6291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6282, ptr noundef nonnull %.str.5.sink3349, i32 noundef %6283, ptr noundef nonnull @.str.190, ptr noundef nonnull @.str.1, i32 noundef 762, ptr noundef %6285, ptr noundef %6287, ptr noundef %6289, i32 noundef %6290) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6292:                                             ; preds = %6264
  %6293 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #11
  br i1 %6293, label %6294, label %6350

6294:                                             ; preds = %6292
  %6295 = load i32, ptr @test_count, align 4, !tbaa !5
  %6296 = add nsw i32 %6295, 1
  store i32 %6296, ptr @test_count, align 4, !tbaa !5
  %6297 = load ptr, ptr %7, align 8, !tbaa !9
  %6298 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.46, ptr noundef %6297)
  %6299 = call zeroext i1 @s2n_result_is_ok(i32 %6298)
  br i1 %6299, label %6322, label %6300

6300:                                             ; preds = %6294
  %6301 = load i32, ptr %765, align 4, !tbaa !5
  %6302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6303 = call i32 @s2n_print_stacktrace(ptr noundef %6302) #11
  %6304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6305 = trunc nuw i8 %6304 to i1
  br i1 %6305, label %6306, label %6310

6306:                                             ; preds = %6300
  %6307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6308 = call i32 @fileno(ptr noundef %6307) #11
  %6309 = call i32 @isatty(i32 noundef %6308) #11
  %.not996 = icmp eq i32 %6309, 0
  br i1 %.not996, label %6310, label %6311

6310:                                             ; preds = %6306, %6300
  br label %6311

6311:                                             ; preds = %6306, %6310
  %.str.5.sink3358 = phi ptr [ @.str.5, %6310 ], [ @.str.2, %6306 ]
  store i32 %6301, ptr %765, align 4, !tbaa !5
  %6312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6313 = load i32, ptr @test_count, align 4, !tbaa !5
  %6314 = load i32, ptr %711, align 4, !tbaa !5
  %6315 = call ptr @s2n_strerror(i32 noundef %6314, ptr noundef nonnull @.str.4) #11
  %6316 = load i32, ptr %711, align 4, !tbaa !5
  %6317 = call ptr @s2n_strerror_debug(i32 noundef %6316, ptr noundef nonnull @.str.4) #11
  %6318 = load i32, ptr %765, align 4, !tbaa !5
  %6319 = call ptr @strerror(i32 noundef %6318) #11
  %6320 = load i32, ptr %765, align 4, !tbaa !5
  %6321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6312, ptr noundef nonnull %.str.5.sink3358, i32 noundef %6313, ptr noundef nonnull @.str.191, ptr noundef nonnull @.str.1, i32 noundef 765, ptr noundef %6315, ptr noundef %6317, ptr noundef %6319, i32 noundef %6320) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6322:                                             ; preds = %6294
  %6323 = load i32, ptr @test_count, align 4, !tbaa !5
  %6324 = add nsw i32 %6323, 1
  store i32 %6324, ptr @test_count, align 4, !tbaa !5
  %6325 = load ptr, ptr %7, align 8, !tbaa !9
  %6326 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.186, ptr noundef %6325)
  %6327 = call zeroext i1 @s2n_result_is_ok(i32 %6326)
  br i1 %6327, label %6350, label %6328

6328:                                             ; preds = %6322
  %6329 = load i32, ptr %765, align 4, !tbaa !5
  %6330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6331 = call i32 @s2n_print_stacktrace(ptr noundef %6330) #11
  %6332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6333 = trunc nuw i8 %6332 to i1
  br i1 %6333, label %6334, label %6338

6334:                                             ; preds = %6328
  %6335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6336 = call i32 @fileno(ptr noundef %6335) #11
  %6337 = call i32 @isatty(i32 noundef %6336) #11
  %.not997 = icmp eq i32 %6337, 0
  br i1 %.not997, label %6338, label %6339

6338:                                             ; preds = %6334, %6328
  br label %6339

6339:                                             ; preds = %6334, %6338
  %.str.5.sink3367 = phi ptr [ @.str.5, %6338 ], [ @.str.2, %6334 ]
  store i32 %6329, ptr %765, align 4, !tbaa !5
  %6340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6341 = load i32, ptr @test_count, align 4, !tbaa !5
  %6342 = load i32, ptr %711, align 4, !tbaa !5
  %6343 = call ptr @s2n_strerror(i32 noundef %6342, ptr noundef nonnull @.str.4) #11
  %6344 = load i32, ptr %711, align 4, !tbaa !5
  %6345 = call ptr @s2n_strerror_debug(i32 noundef %6344, ptr noundef nonnull @.str.4) #11
  %6346 = load i32, ptr %765, align 4, !tbaa !5
  %6347 = call ptr @strerror(i32 noundef %6346) #11
  %6348 = load i32, ptr %765, align 4, !tbaa !5
  %6349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6340, ptr noundef nonnull %.str.5.sink3367, i32 noundef %6341, ptr noundef nonnull @.str.192, ptr noundef nonnull @.str.1, i32 noundef 766, ptr noundef %6343, ptr noundef %6345, ptr noundef %6347, i32 noundef %6348) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6350:                                             ; preds = %6322, %6292
  %6351 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %6351, label %6352, label %6436

6352:                                             ; preds = %6350
  %6353 = load i32, ptr @test_count, align 4, !tbaa !5
  %6354 = add nsw i32 %6353, 1
  store i32 %6354, ptr @test_count, align 4, !tbaa !5
  %6355 = load ptr, ptr %3, align 8, !tbaa !9
  %6356 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.193, ptr noundef %6355)
  %6357 = call zeroext i1 @s2n_result_is_ok(i32 %6356)
  br i1 %6357, label %6380, label %6358

6358:                                             ; preds = %6352
  %6359 = load i32, ptr %765, align 4, !tbaa !5
  %6360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6361 = call i32 @s2n_print_stacktrace(ptr noundef %6360) #11
  %6362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6363 = trunc nuw i8 %6362 to i1
  br i1 %6363, label %6364, label %6368

6364:                                             ; preds = %6358
  %6365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6366 = call i32 @fileno(ptr noundef %6365) #11
  %6367 = call i32 @isatty(i32 noundef %6366) #11
  %.not998 = icmp eq i32 %6367, 0
  br i1 %.not998, label %6368, label %6369

6368:                                             ; preds = %6364, %6358
  br label %6369

6369:                                             ; preds = %6364, %6368
  %.str.5.sink3376 = phi ptr [ @.str.5, %6368 ], [ @.str.2, %6364 ]
  store i32 %6359, ptr %765, align 4, !tbaa !5
  %6370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6371 = load i32, ptr @test_count, align 4, !tbaa !5
  %6372 = load i32, ptr %711, align 4, !tbaa !5
  %6373 = call ptr @s2n_strerror(i32 noundef %6372, ptr noundef nonnull @.str.4) #11
  %6374 = load i32, ptr %711, align 4, !tbaa !5
  %6375 = call ptr @s2n_strerror_debug(i32 noundef %6374, ptr noundef nonnull @.str.4) #11
  %6376 = load i32, ptr %765, align 4, !tbaa !5
  %6377 = call ptr @strerror(i32 noundef %6376) #11
  %6378 = load i32, ptr %765, align 4, !tbaa !5
  %6379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6370, ptr noundef nonnull %.str.5.sink3376, i32 noundef %6371, ptr noundef nonnull @.str.194, ptr noundef nonnull @.str.1, i32 noundef 771, ptr noundef %6373, ptr noundef %6375, ptr noundef %6377, i32 noundef %6378) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6380:                                             ; preds = %6352
  %6381 = load i32, ptr @test_count, align 4, !tbaa !5
  %6382 = add nsw i32 %6381, 1
  store i32 %6382, ptr @test_count, align 4, !tbaa !5
  %6383 = load ptr, ptr %7, align 8, !tbaa !9
  %6384 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.193, ptr noundef %6383)
  %6385 = call zeroext i1 @s2n_result_is_ok(i32 %6384)
  br i1 %6385, label %6408, label %6386

6386:                                             ; preds = %6380
  %6387 = load i32, ptr %765, align 4, !tbaa !5
  %6388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6389 = call i32 @s2n_print_stacktrace(ptr noundef %6388) #11
  %6390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6391 = trunc nuw i8 %6390 to i1
  br i1 %6391, label %6392, label %6396

6392:                                             ; preds = %6386
  %6393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6394 = call i32 @fileno(ptr noundef %6393) #11
  %6395 = call i32 @isatty(i32 noundef %6394) #11
  %.not999 = icmp eq i32 %6395, 0
  br i1 %.not999, label %6396, label %6397

6396:                                             ; preds = %6392, %6386
  br label %6397

6397:                                             ; preds = %6392, %6396
  %.str.5.sink3385 = phi ptr [ @.str.5, %6396 ], [ @.str.2, %6392 ]
  store i32 %6387, ptr %765, align 4, !tbaa !5
  %6398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6399 = load i32, ptr @test_count, align 4, !tbaa !5
  %6400 = load i32, ptr %711, align 4, !tbaa !5
  %6401 = call ptr @s2n_strerror(i32 noundef %6400, ptr noundef nonnull @.str.4) #11
  %6402 = load i32, ptr %711, align 4, !tbaa !5
  %6403 = call ptr @s2n_strerror_debug(i32 noundef %6402, ptr noundef nonnull @.str.4) #11
  %6404 = load i32, ptr %765, align 4, !tbaa !5
  %6405 = call ptr @strerror(i32 noundef %6404) #11
  %6406 = load i32, ptr %765, align 4, !tbaa !5
  %6407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6398, ptr noundef nonnull %.str.5.sink3385, i32 noundef %6399, ptr noundef nonnull @.str.195, ptr noundef nonnull @.str.1, i32 noundef 773, ptr noundef %6401, ptr noundef %6403, ptr noundef %6405, i32 noundef %6406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6408:                                             ; preds = %6380
  %6409 = load i32, ptr @test_count, align 4, !tbaa !5
  %6410 = add nsw i32 %6409, 1
  store i32 %6410, ptr @test_count, align 4, !tbaa !5
  %6411 = load ptr, ptr %4, align 8, !tbaa !9
  %6412 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20230317, ptr noundef nonnull @.str.193, ptr noundef %6411)
  %6413 = call zeroext i1 @s2n_result_is_ok(i32 %6412)
  br i1 %6413, label %6436, label %6414

6414:                                             ; preds = %6408
  %6415 = load i32, ptr %765, align 4, !tbaa !5
  %6416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6417 = call i32 @s2n_print_stacktrace(ptr noundef %6416) #11
  %6418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6419 = trunc nuw i8 %6418 to i1
  br i1 %6419, label %6420, label %6424

6420:                                             ; preds = %6414
  %6421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6422 = call i32 @fileno(ptr noundef %6421) #11
  %6423 = call i32 @isatty(i32 noundef %6422) #11
  %.not1000 = icmp eq i32 %6423, 0
  br i1 %.not1000, label %6424, label %6425

6424:                                             ; preds = %6420, %6414
  br label %6425

6425:                                             ; preds = %6420, %6424
  %.str.5.sink3394 = phi ptr [ @.str.5, %6424 ], [ @.str.2, %6420 ]
  store i32 %6415, ptr %765, align 4, !tbaa !5
  %6426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6427 = load i32, ptr @test_count, align 4, !tbaa !5
  %6428 = load i32, ptr %711, align 4, !tbaa !5
  %6429 = call ptr @s2n_strerror(i32 noundef %6428, ptr noundef nonnull @.str.4) #11
  %6430 = load i32, ptr %711, align 4, !tbaa !5
  %6431 = call ptr @s2n_strerror_debug(i32 noundef %6430, ptr noundef nonnull @.str.4) #11
  %6432 = load i32, ptr %765, align 4, !tbaa !5
  %6433 = call ptr @strerror(i32 noundef %6432) #11
  %6434 = load i32, ptr %765, align 4, !tbaa !5
  %6435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6426, ptr noundef nonnull %.str.5.sink3394, i32 noundef %6427, ptr noundef nonnull @.str.196, ptr noundef nonnull @.str.1, i32 noundef 775, ptr noundef %6429, ptr noundef %6431, ptr noundef %6433, i32 noundef %6434) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6436:                                             ; preds = %6350, %6408
  %6437 = load i32, ptr @test_count, align 4, !tbaa !5
  %6438 = add nsw i32 %6437, 1
  store i32 %6438, ptr @test_count, align 4, !tbaa !5
  %6439 = load ptr, ptr %3, align 8, !tbaa !9
  %6440 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.37, ptr noundef %6439)
  %6441 = call zeroext i1 @s2n_result_is_ok(i32 %6440)
  br i1 %6441, label %6464, label %6442

6442:                                             ; preds = %6436
  %6443 = load i32, ptr %765, align 4, !tbaa !5
  %6444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6445 = call i32 @s2n_print_stacktrace(ptr noundef %6444) #11
  %6446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6447 = trunc nuw i8 %6446 to i1
  br i1 %6447, label %6448, label %6452

6448:                                             ; preds = %6442
  %6449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6450 = call i32 @fileno(ptr noundef %6449) #11
  %6451 = call i32 @isatty(i32 noundef %6450) #11
  %.not1001 = icmp eq i32 %6451, 0
  br i1 %.not1001, label %6452, label %6453

6452:                                             ; preds = %6448, %6442
  br label %6453

6453:                                             ; preds = %6448, %6452
  %.str.5.sink3403 = phi ptr [ @.str.5, %6452 ], [ @.str.2, %6448 ]
  store i32 %6443, ptr %765, align 4, !tbaa !5
  %6454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6455 = load i32, ptr @test_count, align 4, !tbaa !5
  %6456 = load i32, ptr %711, align 4, !tbaa !5
  %6457 = call ptr @s2n_strerror(i32 noundef %6456, ptr noundef nonnull @.str.4) #11
  %6458 = load i32, ptr %711, align 4, !tbaa !5
  %6459 = call ptr @s2n_strerror_debug(i32 noundef %6458, ptr noundef nonnull @.str.4) #11
  %6460 = load i32, ptr %765, align 4, !tbaa !5
  %6461 = call ptr @strerror(i32 noundef %6460) #11
  %6462 = load i32, ptr %765, align 4, !tbaa !5
  %6463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6454, ptr noundef nonnull %.str.5.sink3403, i32 noundef %6455, ptr noundef nonnull @.str.197, ptr noundef nonnull @.str.1, i32 noundef 782, ptr noundef %6457, ptr noundef %6459, ptr noundef %6461, i32 noundef %6462) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6464:                                             ; preds = %6436
  %6465 = load i32, ptr @test_count, align 4, !tbaa !5
  %6466 = add nsw i32 %6465, 1
  store i32 %6466, ptr @test_count, align 4, !tbaa !5
  %6467 = load ptr, ptr %3, align 8, !tbaa !9
  %6468 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.46, ptr noundef %6467)
  %6469 = call zeroext i1 @s2n_result_is_ok(i32 %6468)
  br i1 %6469, label %6492, label %6470

6470:                                             ; preds = %6464
  %6471 = load i32, ptr %765, align 4, !tbaa !5
  %6472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6473 = call i32 @s2n_print_stacktrace(ptr noundef %6472) #11
  %6474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6475 = trunc nuw i8 %6474 to i1
  br i1 %6475, label %6476, label %6480

6476:                                             ; preds = %6470
  %6477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6478 = call i32 @fileno(ptr noundef %6477) #11
  %6479 = call i32 @isatty(i32 noundef %6478) #11
  %.not1002 = icmp eq i32 %6479, 0
  br i1 %.not1002, label %6480, label %6481

6480:                                             ; preds = %6476, %6470
  br label %6481

6481:                                             ; preds = %6476, %6480
  %.str.5.sink3412 = phi ptr [ @.str.5, %6480 ], [ @.str.2, %6476 ]
  store i32 %6471, ptr %765, align 4, !tbaa !5
  %6482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6483 = load i32, ptr @test_count, align 4, !tbaa !5
  %6484 = load i32, ptr %711, align 4, !tbaa !5
  %6485 = call ptr @s2n_strerror(i32 noundef %6484, ptr noundef nonnull @.str.4) #11
  %6486 = load i32, ptr %711, align 4, !tbaa !5
  %6487 = call ptr @s2n_strerror_debug(i32 noundef %6486, ptr noundef nonnull @.str.4) #11
  %6488 = load i32, ptr %765, align 4, !tbaa !5
  %6489 = call ptr @strerror(i32 noundef %6488) #11
  %6490 = load i32, ptr %765, align 4, !tbaa !5
  %6491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6482, ptr noundef nonnull %.str.5.sink3412, i32 noundef %6483, ptr noundef nonnull @.str.198, ptr noundef nonnull @.str.1, i32 noundef 784, ptr noundef %6485, ptr noundef %6487, ptr noundef %6489, i32 noundef %6490) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6492:                                             ; preds = %6464
  %6493 = load i32, ptr @test_count, align 4, !tbaa !5
  %6494 = add nsw i32 %6493, 1
  store i32 %6494, ptr @test_count, align 4, !tbaa !5
  %6495 = load ptr, ptr %3, align 8, !tbaa !9
  %6496 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.184, ptr noundef %6495)
  %6497 = call zeroext i1 @s2n_result_is_ok(i32 %6496)
  br i1 %6497, label %6520, label %6498

6498:                                             ; preds = %6492
  %6499 = load i32, ptr %765, align 4, !tbaa !5
  %6500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6501 = call i32 @s2n_print_stacktrace(ptr noundef %6500) #11
  %6502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6503 = trunc nuw i8 %6502 to i1
  br i1 %6503, label %6504, label %6508

6504:                                             ; preds = %6498
  %6505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6506 = call i32 @fileno(ptr noundef %6505) #11
  %6507 = call i32 @isatty(i32 noundef %6506) #11
  %.not1003 = icmp eq i32 %6507, 0
  br i1 %.not1003, label %6508, label %6509

6508:                                             ; preds = %6504, %6498
  br label %6509

6509:                                             ; preds = %6504, %6508
  %.str.5.sink3421 = phi ptr [ @.str.5, %6508 ], [ @.str.2, %6504 ]
  store i32 %6499, ptr %765, align 4, !tbaa !5
  %6510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6511 = load i32, ptr @test_count, align 4, !tbaa !5
  %6512 = load i32, ptr %711, align 4, !tbaa !5
  %6513 = call ptr @s2n_strerror(i32 noundef %6512, ptr noundef nonnull @.str.4) #11
  %6514 = load i32, ptr %711, align 4, !tbaa !5
  %6515 = call ptr @s2n_strerror_debug(i32 noundef %6514, ptr noundef nonnull @.str.4) #11
  %6516 = load i32, ptr %765, align 4, !tbaa !5
  %6517 = call ptr @strerror(i32 noundef %6516) #11
  %6518 = load i32, ptr %765, align 4, !tbaa !5
  %6519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6510, ptr noundef nonnull %.str.5.sink3421, i32 noundef %6511, ptr noundef nonnull @.str.199, ptr noundef nonnull @.str.1, i32 noundef 786, ptr noundef %6513, ptr noundef %6515, ptr noundef %6517, i32 noundef %6518) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6520:                                             ; preds = %6492
  %6521 = load i32, ptr @test_count, align 4, !tbaa !5
  %6522 = add nsw i32 %6521, 1
  store i32 %6522, ptr @test_count, align 4, !tbaa !5
  %6523 = load ptr, ptr %3, align 8, !tbaa !9
  %6524 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.186, ptr noundef %6523)
  %6525 = call zeroext i1 @s2n_result_is_ok(i32 %6524)
  br i1 %6525, label %6548, label %6526

6526:                                             ; preds = %6520
  %6527 = load i32, ptr %765, align 4, !tbaa !5
  %6528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6529 = call i32 @s2n_print_stacktrace(ptr noundef %6528) #11
  %6530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6531 = trunc nuw i8 %6530 to i1
  br i1 %6531, label %6532, label %6536

6532:                                             ; preds = %6526
  %6533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6534 = call i32 @fileno(ptr noundef %6533) #11
  %6535 = call i32 @isatty(i32 noundef %6534) #11
  %.not1004 = icmp eq i32 %6535, 0
  br i1 %.not1004, label %6536, label %6537

6536:                                             ; preds = %6532, %6526
  br label %6537

6537:                                             ; preds = %6532, %6536
  %.str.5.sink3430 = phi ptr [ @.str.5, %6536 ], [ @.str.2, %6532 ]
  store i32 %6527, ptr %765, align 4, !tbaa !5
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = load i32, ptr @test_count, align 4, !tbaa !5
  %6540 = load i32, ptr %711, align 4, !tbaa !5
  %6541 = call ptr @s2n_strerror(i32 noundef %6540, ptr noundef nonnull @.str.4) #11
  %6542 = load i32, ptr %711, align 4, !tbaa !5
  %6543 = call ptr @s2n_strerror_debug(i32 noundef %6542, ptr noundef nonnull @.str.4) #11
  %6544 = load i32, ptr %765, align 4, !tbaa !5
  %6545 = call ptr @strerror(i32 noundef %6544) #11
  %6546 = load i32, ptr %765, align 4, !tbaa !5
  %6547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6538, ptr noundef nonnull %.str.5.sink3430, i32 noundef %6539, ptr noundef nonnull @.str.200, ptr noundef nonnull @.str.1, i32 noundef 788, ptr noundef %6541, ptr noundef %6543, ptr noundef %6545, i32 noundef %6546) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6548:                                             ; preds = %6520
  %6549 = load i32, ptr @test_count, align 4, !tbaa !5
  %6550 = add nsw i32 %6549, 1
  store i32 %6550, ptr @test_count, align 4, !tbaa !5
  %6551 = load ptr, ptr %3, align 8, !tbaa !9
  %6552 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.201, ptr noundef %6551)
  %6553 = call zeroext i1 @s2n_result_is_ok(i32 %6552)
  br i1 %6553, label %6576, label %6554

6554:                                             ; preds = %6548
  %6555 = load i32, ptr %765, align 4, !tbaa !5
  %6556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6557 = call i32 @s2n_print_stacktrace(ptr noundef %6556) #11
  %6558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6559 = trunc nuw i8 %6558 to i1
  br i1 %6559, label %6560, label %6564

6560:                                             ; preds = %6554
  %6561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6562 = call i32 @fileno(ptr noundef %6561) #11
  %6563 = call i32 @isatty(i32 noundef %6562) #11
  %.not1005 = icmp eq i32 %6563, 0
  br i1 %.not1005, label %6564, label %6565

6564:                                             ; preds = %6560, %6554
  br label %6565

6565:                                             ; preds = %6560, %6564
  %.str.5.sink3439 = phi ptr [ @.str.5, %6564 ], [ @.str.2, %6560 ]
  store i32 %6555, ptr %765, align 4, !tbaa !5
  %6566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6567 = load i32, ptr @test_count, align 4, !tbaa !5
  %6568 = load i32, ptr %711, align 4, !tbaa !5
  %6569 = call ptr @s2n_strerror(i32 noundef %6568, ptr noundef nonnull @.str.4) #11
  %6570 = load i32, ptr %711, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror_debug(i32 noundef %6570, ptr noundef nonnull @.str.4) #11
  %6572 = load i32, ptr %765, align 4, !tbaa !5
  %6573 = call ptr @strerror(i32 noundef %6572) #11
  %6574 = load i32, ptr %765, align 4, !tbaa !5
  %6575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6566, ptr noundef nonnull %.str.5.sink3439, i32 noundef %6567, ptr noundef nonnull @.str.202, ptr noundef nonnull @.str.1, i32 noundef 790, ptr noundef %6569, ptr noundef %6571, ptr noundef %6573, i32 noundef %6574) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6576:                                             ; preds = %6548
  %6577 = load i32, ptr @test_count, align 4, !tbaa !5
  %6578 = add nsw i32 %6577, 1
  store i32 %6578, ptr @test_count, align 4, !tbaa !5
  %6579 = load ptr, ptr %4, align 8, !tbaa !9
  %6580 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.46, ptr noundef %6579)
  %6581 = call zeroext i1 @s2n_result_is_ok(i32 %6580)
  br i1 %6581, label %6604, label %6582

6582:                                             ; preds = %6576
  %6583 = load i32, ptr %765, align 4, !tbaa !5
  %6584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6585 = call i32 @s2n_print_stacktrace(ptr noundef %6584) #11
  %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) #11
  %6591 = call i32 @isatty(i32 noundef %6590) #11
  %.not1006 = icmp eq i32 %6591, 0
  br i1 %.not1006, label %6592, label %6593

6592:                                             ; preds = %6588, %6582
  br label %6593

6593:                                             ; preds = %6588, %6592
  %.str.5.sink3448 = phi ptr [ @.str.5, %6592 ], [ @.str.2, %6588 ]
  store i32 %6583, ptr %765, 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 %711, align 4, !tbaa !5
  %6597 = call ptr @s2n_strerror(i32 noundef %6596, ptr noundef nonnull @.str.4) #11
  %6598 = load i32, ptr %711, align 4, !tbaa !5
  %6599 = call ptr @s2n_strerror_debug(i32 noundef %6598, ptr noundef nonnull @.str.4) #11
  %6600 = load i32, ptr %765, align 4, !tbaa !5
  %6601 = call ptr @strerror(i32 noundef %6600) #11
  %6602 = load i32, ptr %765, align 4, !tbaa !5
  %6603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6594, ptr noundef nonnull %.str.5.sink3448, i32 noundef %6595, ptr noundef nonnull @.str.203, ptr noundef nonnull @.str.1, i32 noundef 793, ptr noundef %6597, ptr noundef %6599, ptr noundef %6601, i32 noundef %6602) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6604:                                             ; preds = %6576
  %6605 = load i32, ptr @test_count, align 4, !tbaa !5
  %6606 = add nsw i32 %6605, 1
  store i32 %6606, ptr @test_count, align 4, !tbaa !5
  %6607 = load ptr, ptr %4, align 8, !tbaa !9
  %6608 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.184, ptr noundef %6607)
  %6609 = call zeroext i1 @s2n_result_is_ok(i32 %6608)
  br i1 %6609, label %6632, label %6610

6610:                                             ; preds = %6604
  %6611 = load i32, ptr %765, align 4, !tbaa !5
  %6612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6613 = call i32 @s2n_print_stacktrace(ptr noundef %6612) #11
  %6614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6615 = trunc nuw i8 %6614 to i1
  br i1 %6615, label %6616, label %6620

6616:                                             ; preds = %6610
  %6617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6618 = call i32 @fileno(ptr noundef %6617) #11
  %6619 = call i32 @isatty(i32 noundef %6618) #11
  %.not1007 = icmp eq i32 %6619, 0
  br i1 %.not1007, label %6620, label %6621

6620:                                             ; preds = %6616, %6610
  br label %6621

6621:                                             ; preds = %6616, %6620
  %.str.5.sink3457 = phi ptr [ @.str.5, %6620 ], [ @.str.2, %6616 ]
  store i32 %6611, ptr %765, align 4, !tbaa !5
  %6622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6623 = load i32, ptr @test_count, align 4, !tbaa !5
  %6624 = load i32, ptr %711, align 4, !tbaa !5
  %6625 = call ptr @s2n_strerror(i32 noundef %6624, ptr noundef nonnull @.str.4) #11
  %6626 = load i32, ptr %711, align 4, !tbaa !5
  %6627 = call ptr @s2n_strerror_debug(i32 noundef %6626, ptr noundef nonnull @.str.4) #11
  %6628 = load i32, ptr %765, align 4, !tbaa !5
  %6629 = call ptr @strerror(i32 noundef %6628) #11
  %6630 = load i32, ptr %765, align 4, !tbaa !5
  %6631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6622, ptr noundef nonnull %.str.5.sink3457, i32 noundef %6623, ptr noundef nonnull @.str.204, ptr noundef nonnull @.str.1, i32 noundef 795, ptr noundef %6625, ptr noundef %6627, ptr noundef %6629, i32 noundef %6630) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6632:                                             ; preds = %6604
  %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 %4, align 8, !tbaa !9
  %6636 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.186, ptr noundef %6635)
  %6637 = call zeroext i1 @s2n_result_is_ok(i32 %6636)
  br i1 %6637, label %6660, label %6638

6638:                                             ; preds = %6632
  %6639 = load i32, ptr %765, align 4, !tbaa !5
  %6640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6641 = call i32 @s2n_print_stacktrace(ptr noundef %6640) #11
  %6642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6643 = trunc nuw i8 %6642 to i1
  br i1 %6643, label %6644, label %6648

6644:                                             ; preds = %6638
  %6645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6646 = call i32 @fileno(ptr noundef %6645) #11
  %6647 = call i32 @isatty(i32 noundef %6646) #11
  %.not1008 = icmp eq i32 %6647, 0
  br i1 %.not1008, label %6648, label %6649

6648:                                             ; preds = %6644, %6638
  br label %6649

6649:                                             ; preds = %6644, %6648
  %.str.5.sink3466 = phi ptr [ @.str.5, %6648 ], [ @.str.2, %6644 ]
  store i32 %6639, ptr %765, align 4, !tbaa !5
  %6650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6651 = load i32, ptr @test_count, align 4, !tbaa !5
  %6652 = load i32, ptr %711, align 4, !tbaa !5
  %6653 = call ptr @s2n_strerror(i32 noundef %6652, ptr noundef nonnull @.str.4) #11
  %6654 = load i32, ptr %711, align 4, !tbaa !5
  %6655 = call ptr @s2n_strerror_debug(i32 noundef %6654, ptr noundef nonnull @.str.4) #11
  %6656 = load i32, ptr %765, align 4, !tbaa !5
  %6657 = call ptr @strerror(i32 noundef %6656) #11
  %6658 = load i32, ptr %765, align 4, !tbaa !5
  %6659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6650, ptr noundef nonnull %.str.5.sink3466, i32 noundef %6651, ptr noundef nonnull @.str.205, ptr noundef nonnull @.str.1, i32 noundef 797, ptr noundef %6653, ptr noundef %6655, ptr noundef %6657, i32 noundef %6658) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6660:                                             ; preds = %6632
  %6661 = load i32, ptr @test_count, align 4, !tbaa !5
  %6662 = add nsw i32 %6661, 1
  store i32 %6662, ptr @test_count, align 4, !tbaa !5
  %6663 = load ptr, ptr %4, align 8, !tbaa !9
  %6664 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.201, ptr noundef %6663)
  %6665 = call zeroext i1 @s2n_result_is_ok(i32 %6664)
  br i1 %6665, label %6688, label %6666

6666:                                             ; preds = %6660
  %6667 = load i32, ptr %765, align 4, !tbaa !5
  %6668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6669 = call i32 @s2n_print_stacktrace(ptr noundef %6668) #11
  %6670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6671 = trunc nuw i8 %6670 to i1
  br i1 %6671, label %6672, label %6676

6672:                                             ; preds = %6666
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = call i32 @fileno(ptr noundef %6673) #11
  %6675 = call i32 @isatty(i32 noundef %6674) #11
  %.not1009 = icmp eq i32 %6675, 0
  br i1 %.not1009, label %6676, label %6677

6676:                                             ; preds = %6672, %6666
  br label %6677

6677:                                             ; preds = %6672, %6676
  %.str.5.sink3475 = phi ptr [ @.str.5, %6676 ], [ @.str.2, %6672 ]
  store i32 %6667, ptr %765, align 4, !tbaa !5
  %6678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6679 = load i32, ptr @test_count, align 4, !tbaa !5
  %6680 = load i32, ptr %711, align 4, !tbaa !5
  %6681 = call ptr @s2n_strerror(i32 noundef %6680, ptr noundef nonnull @.str.4) #11
  %6682 = load i32, ptr %711, align 4, !tbaa !5
  %6683 = call ptr @s2n_strerror_debug(i32 noundef %6682, ptr noundef nonnull @.str.4) #11
  %6684 = load i32, ptr %765, align 4, !tbaa !5
  %6685 = call ptr @strerror(i32 noundef %6684) #11
  %6686 = load i32, ptr %765, align 4, !tbaa !5
  %6687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6678, ptr noundef nonnull %.str.5.sink3475, i32 noundef %6679, ptr noundef nonnull @.str.206, ptr noundef nonnull @.str.1, i32 noundef 799, ptr noundef %6681, ptr noundef %6683, ptr noundef %6685, i32 noundef %6686) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6688:                                             ; preds = %6660
  %6689 = load i32, ptr @test_count, align 4, !tbaa !5
  %6690 = add nsw i32 %6689, 1
  store i32 %6690, ptr @test_count, align 4, !tbaa !5
  %6691 = load ptr, ptr %3, align 8, !tbaa !9
  %6692 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.193, ptr noundef %6691)
  %6693 = call zeroext i1 @s2n_result_is_error(i32 %6692)
  br i1 %6693, label %6716, label %6694

6694:                                             ; preds = %6688
  %6695 = load i32, ptr %765, align 4, !tbaa !5
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = call i32 @s2n_print_stacktrace(ptr noundef %6696) #11
  %6698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6699 = trunc nuw i8 %6698 to i1
  br i1 %6699, label %6700, label %6704

6700:                                             ; preds = %6694
  %6701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6702 = call i32 @fileno(ptr noundef %6701) #11
  %6703 = call i32 @isatty(i32 noundef %6702) #11
  %.not1010 = icmp eq i32 %6703, 0
  br i1 %.not1010, label %6704, label %6705

6704:                                             ; preds = %6700, %6694
  br label %6705

6705:                                             ; preds = %6700, %6704
  %.str.5.sink3484 = phi ptr [ @.str.5, %6704 ], [ @.str.2, %6700 ]
  store i32 %6695, ptr %765, align 4, !tbaa !5
  %6706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6707 = load i32, ptr @test_count, align 4, !tbaa !5
  %6708 = load i32, ptr %711, align 4, !tbaa !5
  %6709 = call ptr @s2n_strerror(i32 noundef %6708, ptr noundef nonnull @.str.4) #11
  %6710 = load i32, ptr %711, align 4, !tbaa !5
  %6711 = call ptr @s2n_strerror_debug(i32 noundef %6710, ptr noundef nonnull @.str.4) #11
  %6712 = load i32, ptr %765, align 4, !tbaa !5
  %6713 = call ptr @strerror(i32 noundef %6712) #11
  %6714 = load i32, ptr %765, align 4, !tbaa !5
  %6715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6706, ptr noundef nonnull %.str.5.sink3484, i32 noundef %6707, ptr noundef nonnull @.str.207, ptr noundef nonnull @.str.1, i32 noundef 805, ptr noundef %6709, ptr noundef %6711, ptr noundef %6713, i32 noundef %6714) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6716:                                             ; preds = %6688
  %6717 = load i32, ptr @test_count, align 4, !tbaa !5
  %6718 = add nsw i32 %6717, 1
  store i32 %6718, ptr @test_count, align 4, !tbaa !5
  %6719 = load i32, ptr %711, align 4, !tbaa !5
  %6720 = icmp eq i32 %6719, 335544334
  br i1 %6720, label %6743, label %6721

6721:                                             ; preds = %6716
  %6722 = load i32, ptr %765, align 4, !tbaa !5
  %6723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6724 = call i32 @s2n_print_stacktrace(ptr noundef %6723) #11
  %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) #11
  %6730 = call i32 @isatty(i32 noundef %6729) #11
  %.not1011 = icmp eq i32 %6730, 0
  br i1 %.not1011, label %6731, label %6732

6731:                                             ; preds = %6727, %6721
  br label %6732

6732:                                             ; preds = %6727, %6731
  %.str.5.sink3493 = phi ptr [ @.str.5, %6731 ], [ @.str.2, %6727 ]
  store i32 %6722, ptr %765, 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 %711, align 4, !tbaa !5
  %6736 = call ptr @s2n_strerror(i32 noundef %6735, ptr noundef nonnull @.str.4) #11
  %6737 = load i32, ptr %711, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror_debug(i32 noundef %6737, ptr noundef nonnull @.str.4) #11
  %6739 = load i32, ptr %765, align 4, !tbaa !5
  %6740 = call ptr @strerror(i32 noundef %6739) #11
  %6741 = load i32, ptr %765, align 4, !tbaa !5
  %6742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6733, ptr noundef nonnull %.str.5.sink3493, i32 noundef %6734, ptr noundef nonnull @.str.208, ptr noundef nonnull @.str.1, i32 noundef 805, ptr noundef %6736, ptr noundef %6738, ptr noundef %6740, i32 noundef %6741) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6743:                                             ; preds = %6716
  %6744 = add nsw i32 %6717, 2
  store i32 %6744, ptr @test_count, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #11
  %6746 = icmp eq ptr %6745, null
  br i1 %6746, label %6747, label %6769

6747:                                             ; preds = %6743
  %6748 = load i32, ptr %765, align 4, !tbaa !5
  %6749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6750 = call i32 @s2n_print_stacktrace(ptr noundef %6749) #11
  %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) #11
  %6756 = call i32 @isatty(i32 noundef %6755) #11
  %.not1053 = icmp eq i32 %6756, 0
  br i1 %.not1053, label %6757, label %6758

6757:                                             ; preds = %6753, %6747
  br label %6758

6758:                                             ; preds = %6753, %6757
  %.str.5.sink3502 = phi ptr [ @.str.5, %6757 ], [ @.str.2, %6753 ]
  store i32 %6748, ptr %765, 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 %711, align 4, !tbaa !5
  %6762 = call ptr @s2n_strerror(i32 noundef %6761, ptr noundef nonnull @.str.4) #11
  %6763 = load i32, ptr %711, align 4, !tbaa !5
  %6764 = call ptr @s2n_strerror_debug(i32 noundef %6763, ptr noundef nonnull @.str.4) #11
  %6765 = load i32, ptr %765, align 4, !tbaa !5
  %6766 = call ptr @strerror(i32 noundef %6765) #11
  %6767 = load i32, ptr %765, align 4, !tbaa !5
  %6768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6759, ptr noundef nonnull %.str.5.sink3502, i32 noundef %6760, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 805, ptr noundef %6762, ptr noundef %6764, ptr noundef %6766, i32 noundef %6767) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6769:                                             ; preds = %6743
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %6770 = load i32, ptr @test_count, align 4, !tbaa !5
  %6771 = add nsw i32 %6770, 1
  store i32 %6771, ptr @test_count, align 4, !tbaa !5
  %6772 = load ptr, ptr %4, align 8, !tbaa !9
  %6773 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240331, ptr noundef nonnull @.str.193, ptr noundef %6772)
  %6774 = call zeroext i1 @s2n_result_is_error(i32 %6773)
  br i1 %6774, label %6797, label %6775

6775:                                             ; preds = %6769
  %6776 = load i32, ptr %765, align 4, !tbaa !5
  %6777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6778 = call i32 @s2n_print_stacktrace(ptr noundef %6777) #11
  %6779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6780 = trunc nuw i8 %6779 to i1
  br i1 %6780, label %6781, label %6785

6781:                                             ; preds = %6775
  %6782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6783 = call i32 @fileno(ptr noundef %6782) #11
  %6784 = call i32 @isatty(i32 noundef %6783) #11
  %.not1012 = icmp eq i32 %6784, 0
  br i1 %.not1012, label %6785, label %6786

6785:                                             ; preds = %6781, %6775
  br label %6786

6786:                                             ; preds = %6781, %6785
  %.str.5.sink3511 = phi ptr [ @.str.5, %6785 ], [ @.str.2, %6781 ]
  store i32 %6776, ptr %765, align 4, !tbaa !5
  %6787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6788 = load i32, ptr @test_count, align 4, !tbaa !5
  %6789 = load i32, ptr %711, align 4, !tbaa !5
  %6790 = call ptr @s2n_strerror(i32 noundef %6789, ptr noundef nonnull @.str.4) #11
  %6791 = load i32, ptr %711, align 4, !tbaa !5
  %6792 = call ptr @s2n_strerror_debug(i32 noundef %6791, ptr noundef nonnull @.str.4) #11
  %6793 = load i32, ptr %765, align 4, !tbaa !5
  %6794 = call ptr @strerror(i32 noundef %6793) #11
  %6795 = load i32, ptr %765, align 4, !tbaa !5
  %6796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6787, ptr noundef nonnull %.str.5.sink3511, i32 noundef %6788, ptr noundef nonnull @.str.209, ptr noundef nonnull @.str.1, i32 noundef 809, ptr noundef %6790, ptr noundef %6792, ptr noundef %6794, i32 noundef %6795) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6797:                                             ; preds = %6769
  %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 = load i32, ptr %711, align 4, !tbaa !5
  %6801 = icmp eq i32 %6800, 335544334
  br i1 %6801, label %6824, label %6802

6802:                                             ; preds = %6797
  %6803 = load i32, ptr %765, align 4, !tbaa !5
  %6804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6805 = call i32 @s2n_print_stacktrace(ptr noundef %6804) #11
  %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) #11
  %6811 = call i32 @isatty(i32 noundef %6810) #11
  %.not1013 = icmp eq i32 %6811, 0
  br i1 %.not1013, label %6812, label %6813

6812:                                             ; preds = %6808, %6802
  br label %6813

6813:                                             ; preds = %6808, %6812
  %.str.5.sink3520 = phi ptr [ @.str.5, %6812 ], [ @.str.2, %6808 ]
  store i32 %6803, ptr %765, 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 %711, align 4, !tbaa !5
  %6817 = call ptr @s2n_strerror(i32 noundef %6816, ptr noundef nonnull @.str.4) #11
  %6818 = load i32, ptr %711, align 4, !tbaa !5
  %6819 = call ptr @s2n_strerror_debug(i32 noundef %6818, ptr noundef nonnull @.str.4) #11
  %6820 = load i32, ptr %765, align 4, !tbaa !5
  %6821 = call ptr @strerror(i32 noundef %6820) #11
  %6822 = load i32, ptr %765, align 4, !tbaa !5
  %6823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6814, ptr noundef nonnull %.str.5.sink3520, i32 noundef %6815, ptr noundef nonnull @.str.208, ptr noundef nonnull @.str.1, i32 noundef 809, ptr noundef %6817, ptr noundef %6819, ptr noundef %6821, i32 noundef %6822) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6824:                                             ; preds = %6797
  %6825 = add nsw i32 %6798, 2
  store i32 %6825, ptr @test_count, align 4, !tbaa !5
  %6826 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #11
  %6827 = icmp eq ptr %6826, null
  br i1 %6827, label %6828, label %6850

6828:                                             ; preds = %6824
  %6829 = load i32, ptr %765, align 4, !tbaa !5
  %6830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6831 = call i32 @s2n_print_stacktrace(ptr noundef %6830) #11
  %6832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6833 = trunc nuw i8 %6832 to i1
  br i1 %6833, label %6834, label %6838

6834:                                             ; preds = %6828
  %6835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6836 = call i32 @fileno(ptr noundef %6835) #11
  %6837 = call i32 @isatty(i32 noundef %6836) #11
  %.not1052 = icmp eq i32 %6837, 0
  br i1 %.not1052, label %6838, label %6839

6838:                                             ; preds = %6834, %6828
  br label %6839

6839:                                             ; preds = %6834, %6838
  %.str.5.sink3529 = phi ptr [ @.str.5, %6838 ], [ @.str.2, %6834 ]
  store i32 %6829, ptr %765, align 4, !tbaa !5
  %6840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6841 = load i32, ptr @test_count, align 4, !tbaa !5
  %6842 = load i32, ptr %711, align 4, !tbaa !5
  %6843 = call ptr @s2n_strerror(i32 noundef %6842, ptr noundef nonnull @.str.4) #11
  %6844 = load i32, ptr %711, align 4, !tbaa !5
  %6845 = call ptr @s2n_strerror_debug(i32 noundef %6844, ptr noundef nonnull @.str.4) #11
  %6846 = load i32, ptr %765, align 4, !tbaa !5
  %6847 = call ptr @strerror(i32 noundef %6846) #11
  %6848 = load i32, ptr %765, align 4, !tbaa !5
  %6849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6840, ptr noundef nonnull %.str.5.sink3529, i32 noundef %6841, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 809, ptr noundef %6843, ptr noundef %6845, ptr noundef %6847, i32 noundef %6848) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6850:                                             ; preds = %6824
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %6851 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %6851, label %6852, label %7381

6852:                                             ; preds = %6850
  %6853 = load i32, ptr @test_count, align 4, !tbaa !5
  %6854 = add nsw i32 %6853, 1
  store i32 %6854, ptr @test_count, align 4, !tbaa !5
  %6855 = load ptr, ptr %5, align 8, !tbaa !9
  %6856 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_rfc9151, ptr noundef nonnull @.str.46, ptr noundef %6855)
  %6857 = call zeroext i1 @s2n_result_is_ok(i32 %6856)
  br i1 %6857, label %6880, label %6858

6858:                                             ; preds = %6852
  %6859 = load i32, ptr %765, align 4, !tbaa !5
  %6860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6861 = call i32 @s2n_print_stacktrace(ptr noundef %6860) #11
  %6862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6863 = trunc nuw i8 %6862 to i1
  br i1 %6863, label %6864, label %6868

6864:                                             ; preds = %6858
  %6865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6866 = call i32 @fileno(ptr noundef %6865) #11
  %6867 = call i32 @isatty(i32 noundef %6866) #11
  %.not1014 = icmp eq i32 %6867, 0
  br i1 %.not1014, label %6868, label %6869

6868:                                             ; preds = %6864, %6858
  br label %6869

6869:                                             ; preds = %6864, %6868
  %.str.5.sink3538 = phi ptr [ @.str.5, %6868 ], [ @.str.2, %6864 ]
  store i32 %6859, ptr %765, align 4, !tbaa !5
  %6870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6871 = load i32, ptr @test_count, align 4, !tbaa !5
  %6872 = load i32, ptr %711, align 4, !tbaa !5
  %6873 = call ptr @s2n_strerror(i32 noundef %6872, ptr noundef nonnull @.str.4) #11
  %6874 = load i32, ptr %711, align 4, !tbaa !5
  %6875 = call ptr @s2n_strerror_debug(i32 noundef %6874, ptr noundef nonnull @.str.4) #11
  %6876 = load i32, ptr %765, align 4, !tbaa !5
  %6877 = call ptr @strerror(i32 noundef %6876) #11
  %6878 = load i32, ptr %765, align 4, !tbaa !5
  %6879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6870, ptr noundef nonnull %.str.5.sink3538, i32 noundef %6871, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.1, i32 noundef 819, ptr noundef %6873, ptr noundef %6875, ptr noundef %6877, i32 noundef %6878) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6880:                                             ; preds = %6852
  %6881 = load i32, ptr @test_count, align 4, !tbaa !5
  %6882 = add nsw i32 %6881, 1
  store i32 %6882, ptr @test_count, align 4, !tbaa !5
  %6883 = load ptr, ptr %5, align 8, !tbaa !9
  %6884 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_rfc9151, ptr noundef nonnull @.str.184, ptr noundef %6883)
  %6885 = call zeroext i1 @s2n_result_is_ok(i32 %6884)
  br i1 %6885, label %6908, label %6886

6886:                                             ; preds = %6880
  %6887 = load i32, ptr %765, align 4, !tbaa !5
  %6888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6889 = call i32 @s2n_print_stacktrace(ptr noundef %6888) #11
  %6890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6891 = trunc nuw i8 %6890 to i1
  br i1 %6891, label %6892, label %6896

6892:                                             ; preds = %6886
  %6893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6894 = call i32 @fileno(ptr noundef %6893) #11
  %6895 = call i32 @isatty(i32 noundef %6894) #11
  %.not1015 = icmp eq i32 %6895, 0
  br i1 %.not1015, label %6896, label %6897

6896:                                             ; preds = %6892, %6886
  br label %6897

6897:                                             ; preds = %6892, %6896
  %.str.5.sink3547 = phi ptr [ @.str.5, %6896 ], [ @.str.2, %6892 ]
  store i32 %6887, ptr %765, align 4, !tbaa !5
  %6898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6899 = load i32, ptr @test_count, align 4, !tbaa !5
  %6900 = load i32, ptr %711, align 4, !tbaa !5
  %6901 = call ptr @s2n_strerror(i32 noundef %6900, ptr noundef nonnull @.str.4) #11
  %6902 = load i32, ptr %711, align 4, !tbaa !5
  %6903 = call ptr @s2n_strerror_debug(i32 noundef %6902, ptr noundef nonnull @.str.4) #11
  %6904 = load i32, ptr %765, align 4, !tbaa !5
  %6905 = call ptr @strerror(i32 noundef %6904) #11
  %6906 = load i32, ptr %765, align 4, !tbaa !5
  %6907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6898, ptr noundef nonnull %.str.5.sink3547, i32 noundef %6899, ptr noundef nonnull @.str.211, ptr noundef nonnull @.str.1, i32 noundef 820, ptr noundef %6901, ptr noundef %6903, ptr noundef %6905, i32 noundef %6906) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6908:                                             ; preds = %6880
  %6909 = load i32, ptr @test_count, align 4, !tbaa !5
  %6910 = add nsw i32 %6909, 1
  store i32 %6910, ptr @test_count, align 4, !tbaa !5
  %6911 = load ptr, ptr %5, align 8, !tbaa !9
  %6912 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_rfc9151, ptr noundef nonnull @.str.212, ptr noundef %6911)
  %6913 = call zeroext i1 @s2n_result_is_ok(i32 %6912)
  br i1 %6913, label %6936, label %6914

6914:                                             ; preds = %6908
  %6915 = load i32, ptr %765, align 4, !tbaa !5
  %6916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6917 = call i32 @s2n_print_stacktrace(ptr noundef %6916) #11
  %6918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6919 = trunc nuw i8 %6918 to i1
  br i1 %6919, label %6920, label %6924

6920:                                             ; preds = %6914
  %6921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6922 = call i32 @fileno(ptr noundef %6921) #11
  %6923 = call i32 @isatty(i32 noundef %6922) #11
  %.not1016 = icmp eq i32 %6923, 0
  br i1 %.not1016, label %6924, label %6925

6924:                                             ; preds = %6920, %6914
  br label %6925

6925:                                             ; preds = %6920, %6924
  %.str.5.sink3556 = phi ptr [ @.str.5, %6924 ], [ @.str.2, %6920 ]
  store i32 %6915, ptr %765, align 4, !tbaa !5
  %6926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6927 = load i32, ptr @test_count, align 4, !tbaa !5
  %6928 = load i32, ptr %711, align 4, !tbaa !5
  %6929 = call ptr @s2n_strerror(i32 noundef %6928, ptr noundef nonnull @.str.4) #11
  %6930 = load i32, ptr %711, align 4, !tbaa !5
  %6931 = call ptr @s2n_strerror_debug(i32 noundef %6930, ptr noundef nonnull @.str.4) #11
  %6932 = load i32, ptr %765, align 4, !tbaa !5
  %6933 = call ptr @strerror(i32 noundef %6932) #11
  %6934 = load i32, ptr %765, align 4, !tbaa !5
  %6935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6926, ptr noundef nonnull %.str.5.sink3556, i32 noundef %6927, ptr noundef nonnull @.str.213, ptr noundef nonnull @.str.1, i32 noundef 821, ptr noundef %6929, ptr noundef %6931, ptr noundef %6933, i32 noundef %6934) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6936:                                             ; preds = %6908
  %6937 = load i32, ptr @test_count, align 4, !tbaa !5
  %6938 = add nsw i32 %6937, 1
  store i32 %6938, ptr @test_count, align 4, !tbaa !5
  %6939 = load ptr, ptr %5, align 8, !tbaa !9
  %6940 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240503, ptr noundef nonnull @.str.214, ptr noundef %6939)
  %6941 = call zeroext i1 @s2n_result_is_ok(i32 %6940)
  br i1 %6941, label %6964, label %6942

6942:                                             ; preds = %6936
  %6943 = load i32, ptr %765, align 4, !tbaa !5
  %6944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6945 = call i32 @s2n_print_stacktrace(ptr noundef %6944) #11
  %6946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6947 = trunc nuw i8 %6946 to i1
  br i1 %6947, label %6948, label %6952

6948:                                             ; preds = %6942
  %6949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6950 = call i32 @fileno(ptr noundef %6949) #11
  %6951 = call i32 @isatty(i32 noundef %6950) #11
  %.not1017 = icmp eq i32 %6951, 0
  br i1 %.not1017, label %6952, label %6953

6952:                                             ; preds = %6948, %6942
  br label %6953

6953:                                             ; preds = %6948, %6952
  %.str.5.sink3565 = phi ptr [ @.str.5, %6952 ], [ @.str.2, %6948 ]
  store i32 %6943, ptr %765, align 4, !tbaa !5
  %6954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6955 = load i32, ptr @test_count, align 4, !tbaa !5
  %6956 = load i32, ptr %711, align 4, !tbaa !5
  %6957 = call ptr @s2n_strerror(i32 noundef %6956, ptr noundef nonnull @.str.4) #11
  %6958 = load i32, ptr %711, align 4, !tbaa !5
  %6959 = call ptr @s2n_strerror_debug(i32 noundef %6958, ptr noundef nonnull @.str.4) #11
  %6960 = load i32, ptr %765, align 4, !tbaa !5
  %6961 = call ptr @strerror(i32 noundef %6960) #11
  %6962 = load i32, ptr %765, align 4, !tbaa !5
  %6963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6954, ptr noundef nonnull %.str.5.sink3565, i32 noundef %6955, ptr noundef nonnull @.str.215, ptr noundef nonnull @.str.1, i32 noundef 824, ptr noundef %6957, ptr noundef %6959, ptr noundef %6961, i32 noundef %6962) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6964:                                             ; preds = %6936
  %6965 = load i32, ptr @test_count, align 4, !tbaa !5
  %6966 = add nsw i32 %6965, 1
  store i32 %6966, ptr @test_count, align 4, !tbaa !5
  %6967 = load ptr, ptr %5, align 8, !tbaa !9
  %6968 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240502, ptr noundef nonnull @.str.214, ptr noundef %6967)
  %6969 = call zeroext i1 @s2n_result_is_ok(i32 %6968)
  br i1 %6969, label %6992, label %6970

6970:                                             ; preds = %6964
  %6971 = load i32, ptr %765, align 4, !tbaa !5
  %6972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6973 = call i32 @s2n_print_stacktrace(ptr noundef %6972) #11
  %6974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6975 = trunc nuw i8 %6974 to i1
  br i1 %6975, label %6976, label %6980

6976:                                             ; preds = %6970
  %6977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6978 = call i32 @fileno(ptr noundef %6977) #11
  %6979 = call i32 @isatty(i32 noundef %6978) #11
  %.not1018 = icmp eq i32 %6979, 0
  br i1 %.not1018, label %6980, label %6981

6980:                                             ; preds = %6976, %6970
  br label %6981

6981:                                             ; preds = %6976, %6980
  %.str.5.sink3574 = phi ptr [ @.str.5, %6980 ], [ @.str.2, %6976 ]
  store i32 %6971, ptr %765, align 4, !tbaa !5
  %6982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6983 = load i32, ptr @test_count, align 4, !tbaa !5
  %6984 = load i32, ptr %711, align 4, !tbaa !5
  %6985 = call ptr @s2n_strerror(i32 noundef %6984, ptr noundef nonnull @.str.4) #11
  %6986 = load i32, ptr %711, align 4, !tbaa !5
  %6987 = call ptr @s2n_strerror_debug(i32 noundef %6986, ptr noundef nonnull @.str.4) #11
  %6988 = load i32, ptr %765, align 4, !tbaa !5
  %6989 = call ptr @strerror(i32 noundef %6988) #11
  %6990 = load i32, ptr %765, align 4, !tbaa !5
  %6991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6982, ptr noundef nonnull %.str.5.sink3574, i32 noundef %6983, ptr noundef nonnull @.str.216, ptr noundef nonnull @.str.1, i32 noundef 826, ptr noundef %6985, ptr noundef %6987, ptr noundef %6989, i32 noundef %6990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6992:                                             ; preds = %6964
  %6993 = load i32, ptr @test_count, align 4, !tbaa !5
  %6994 = add nsw i32 %6993, 1
  store i32 %6994, ptr @test_count, align 4, !tbaa !5
  %6995 = load ptr, ptr %5, align 8, !tbaa !9
  %6996 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20250211, ptr noundef nonnull @.str.214, ptr noundef %6995)
  %6997 = call zeroext i1 @s2n_result_is_ok(i32 %6996)
  br i1 %6997, label %7020, label %6998

6998:                                             ; preds = %6992
  %6999 = load i32, ptr %765, align 4, !tbaa !5
  %7000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7001 = call i32 @s2n_print_stacktrace(ptr noundef %7000) #11
  %7002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7003 = trunc nuw i8 %7002 to i1
  br i1 %7003, label %7004, label %7008

7004:                                             ; preds = %6998
  %7005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7006 = call i32 @fileno(ptr noundef %7005) #11
  %7007 = call i32 @isatty(i32 noundef %7006) #11
  %.not1019 = icmp eq i32 %7007, 0
  br i1 %.not1019, label %7008, label %7009

7008:                                             ; preds = %7004, %6998
  br label %7009

7009:                                             ; preds = %7004, %7008
  %.str.5.sink3583 = phi ptr [ @.str.5, %7008 ], [ @.str.2, %7004 ]
  store i32 %6999, ptr %765, align 4, !tbaa !5
  %7010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7011 = load i32, ptr @test_count, align 4, !tbaa !5
  %7012 = load i32, ptr %711, align 4, !tbaa !5
  %7013 = call ptr @s2n_strerror(i32 noundef %7012, ptr noundef nonnull @.str.4) #11
  %7014 = load i32, ptr %711, align 4, !tbaa !5
  %7015 = call ptr @s2n_strerror_debug(i32 noundef %7014, ptr noundef nonnull @.str.4) #11
  %7016 = load i32, ptr %765, align 4, !tbaa !5
  %7017 = call ptr @strerror(i32 noundef %7016) #11
  %7018 = load i32, ptr %765, align 4, !tbaa !5
  %7019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7010, ptr noundef nonnull %.str.5.sink3583, i32 noundef %7011, ptr noundef nonnull @.str.217, ptr noundef nonnull @.str.1, i32 noundef 827, ptr noundef %7013, ptr noundef %7015, ptr noundef %7017, i32 noundef %7018) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7020:                                             ; preds = %6992
  %7021 = load i32, ptr @test_count, align 4, !tbaa !5
  %7022 = add nsw i32 %7021, 1
  store i32 %7022, ptr @test_count, align 4, !tbaa !5
  %7023 = load ptr, ptr %4, align 8, !tbaa !9
  %7024 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240503, ptr noundef nonnull @.str.212, ptr noundef %7023)
  %7025 = call zeroext i1 @s2n_result_is_ok(i32 %7024)
  br i1 %7025, label %7048, label %7026

7026:                                             ; preds = %7020
  %7027 = load i32, ptr %765, align 4, !tbaa !5
  %7028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7029 = call i32 @s2n_print_stacktrace(ptr noundef %7028) #11
  %7030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7031 = trunc nuw i8 %7030 to i1
  br i1 %7031, label %7032, label %7036

7032:                                             ; preds = %7026
  %7033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7034 = call i32 @fileno(ptr noundef %7033) #11
  %7035 = call i32 @isatty(i32 noundef %7034) #11
  %.not1020 = icmp eq i32 %7035, 0
  br i1 %.not1020, label %7036, label %7037

7036:                                             ; preds = %7032, %7026
  br label %7037

7037:                                             ; preds = %7032, %7036
  %.str.5.sink3592 = phi ptr [ @.str.5, %7036 ], [ @.str.2, %7032 ]
  store i32 %7027, ptr %765, align 4, !tbaa !5
  %7038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7039 = load i32, ptr @test_count, align 4, !tbaa !5
  %7040 = load i32, ptr %711, align 4, !tbaa !5
  %7041 = call ptr @s2n_strerror(i32 noundef %7040, ptr noundef nonnull @.str.4) #11
  %7042 = load i32, ptr %711, align 4, !tbaa !5
  %7043 = call ptr @s2n_strerror_debug(i32 noundef %7042, ptr noundef nonnull @.str.4) #11
  %7044 = load i32, ptr %765, align 4, !tbaa !5
  %7045 = call ptr @strerror(i32 noundef %7044) #11
  %7046 = load i32, ptr %765, align 4, !tbaa !5
  %7047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7038, ptr noundef nonnull %.str.5.sink3592, i32 noundef %7039, ptr noundef nonnull @.str.218, ptr noundef nonnull @.str.1, i32 noundef 831, ptr noundef %7041, ptr noundef %7043, ptr noundef %7045, i32 noundef %7046) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7048:                                             ; preds = %7020
  %7049 = load i32, ptr @test_count, align 4, !tbaa !5
  %7050 = add nsw i32 %7049, 1
  store i32 %7050, ptr @test_count, align 4, !tbaa !5
  %7051 = load ptr, ptr %6, align 8, !tbaa !9
  %7052 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240503, ptr noundef nonnull @.str.212, ptr noundef %7051)
  %7053 = call zeroext i1 @s2n_result_is_error(i32 %7052)
  br i1 %7053, label %7076, label %7054

7054:                                             ; preds = %7048
  %7055 = load i32, ptr %765, align 4, !tbaa !5
  %7056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7057 = call i32 @s2n_print_stacktrace(ptr noundef %7056) #11
  %7058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7059 = trunc nuw i8 %7058 to i1
  br i1 %7059, label %7060, label %7064

7060:                                             ; preds = %7054
  %7061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7062 = call i32 @fileno(ptr noundef %7061) #11
  %7063 = call i32 @isatty(i32 noundef %7062) #11
  %.not1021 = icmp eq i32 %7063, 0
  br i1 %.not1021, label %7064, label %7065

7064:                                             ; preds = %7060, %7054
  br label %7065

7065:                                             ; preds = %7060, %7064
  %.str.5.sink3601 = phi ptr [ @.str.5, %7064 ], [ @.str.2, %7060 ]
  store i32 %7055, ptr %765, align 4, !tbaa !5
  %7066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7067 = load i32, ptr @test_count, align 4, !tbaa !5
  %7068 = load i32, ptr %711, align 4, !tbaa !5
  %7069 = call ptr @s2n_strerror(i32 noundef %7068, ptr noundef nonnull @.str.4) #11
  %7070 = load i32, ptr %711, align 4, !tbaa !5
  %7071 = call ptr @s2n_strerror_debug(i32 noundef %7070, ptr noundef nonnull @.str.4) #11
  %7072 = load i32, ptr %765, align 4, !tbaa !5
  %7073 = call ptr @strerror(i32 noundef %7072) #11
  %7074 = load i32, ptr %765, align 4, !tbaa !5
  %7075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7066, ptr noundef nonnull %.str.5.sink3601, i32 noundef %7067, ptr noundef nonnull @.str.219, ptr noundef nonnull @.str.1, i32 noundef 835, ptr noundef %7069, ptr noundef %7071, ptr noundef %7073, i32 noundef %7074) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7076:                                             ; preds = %7048
  %7077 = load i32, ptr @test_count, align 4, !tbaa !5
  %7078 = add nsw i32 %7077, 1
  store i32 %7078, ptr @test_count, align 4, !tbaa !5
  %7079 = load i32, ptr %711, align 4, !tbaa !5
  %7080 = icmp eq i32 %7079, 335544349
  br i1 %7080, label %7103, label %7081

7081:                                             ; preds = %7076
  %7082 = load i32, ptr %765, align 4, !tbaa !5
  %7083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7084 = call i32 @s2n_print_stacktrace(ptr noundef %7083) #11
  %7085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7086 = trunc nuw i8 %7085 to i1
  br i1 %7086, label %7087, label %7091

7087:                                             ; preds = %7081
  %7088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7089 = call i32 @fileno(ptr noundef %7088) #11
  %7090 = call i32 @isatty(i32 noundef %7089) #11
  %.not1022 = icmp eq i32 %7090, 0
  br i1 %.not1022, label %7091, label %7092

7091:                                             ; preds = %7087, %7081
  br label %7092

7092:                                             ; preds = %7087, %7091
  %.str.5.sink3610 = phi ptr [ @.str.5, %7091 ], [ @.str.2, %7087 ]
  store i32 %7082, ptr %765, align 4, !tbaa !5
  %7093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7094 = load i32, ptr @test_count, align 4, !tbaa !5
  %7095 = load i32, ptr %711, align 4, !tbaa !5
  %7096 = call ptr @s2n_strerror(i32 noundef %7095, ptr noundef nonnull @.str.4) #11
  %7097 = load i32, ptr %711, align 4, !tbaa !5
  %7098 = call ptr @s2n_strerror_debug(i32 noundef %7097, ptr noundef nonnull @.str.4) #11
  %7099 = load i32, ptr %765, align 4, !tbaa !5
  %7100 = call ptr @strerror(i32 noundef %7099) #11
  %7101 = load i32, ptr %765, align 4, !tbaa !5
  %7102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7093, ptr noundef nonnull %.str.5.sink3610, i32 noundef %7094, ptr noundef nonnull @.str.220, ptr noundef nonnull @.str.1, i32 noundef 835, ptr noundef %7096, ptr noundef %7098, ptr noundef %7100, i32 noundef %7101) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7103:                                             ; preds = %7076
  %7104 = add nsw i32 %7077, 2
  store i32 %7104, ptr @test_count, align 4, !tbaa !5
  %7105 = call ptr @s2n_strerror_debug(i32 noundef 335544349, ptr noundef nonnull @.str.4) #11
  %7106 = icmp eq ptr %7105, null
  br i1 %7106, label %7107, label %7129

7107:                                             ; preds = %7103
  %7108 = load i32, ptr %765, align 4, !tbaa !5
  %7109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7110 = call i32 @s2n_print_stacktrace(ptr noundef %7109) #11
  %7111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7112 = trunc nuw i8 %7111 to i1
  br i1 %7112, label %7113, label %7117

7113:                                             ; preds = %7107
  %7114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7115 = call i32 @fileno(ptr noundef %7114) #11
  %7116 = call i32 @isatty(i32 noundef %7115) #11
  %.not1051 = icmp eq i32 %7116, 0
  br i1 %.not1051, label %7117, label %7118

7117:                                             ; preds = %7113, %7107
  br label %7118

7118:                                             ; preds = %7113, %7117
  %.str.5.sink3619 = phi ptr [ @.str.5, %7117 ], [ @.str.2, %7113 ]
  store i32 %7108, ptr %765, align 4, !tbaa !5
  %7119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7120 = load i32, ptr @test_count, align 4, !tbaa !5
  %7121 = load i32, ptr %711, align 4, !tbaa !5
  %7122 = call ptr @s2n_strerror(i32 noundef %7121, ptr noundef nonnull @.str.4) #11
  %7123 = load i32, ptr %711, align 4, !tbaa !5
  %7124 = call ptr @s2n_strerror_debug(i32 noundef %7123, ptr noundef nonnull @.str.4) #11
  %7125 = load i32, ptr %765, align 4, !tbaa !5
  %7126 = call ptr @strerror(i32 noundef %7125) #11
  %7127 = load i32, ptr %765, align 4, !tbaa !5
  %7128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7119, ptr noundef nonnull %.str.5.sink3619, i32 noundef %7120, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 835, ptr noundef %7122, ptr noundef %7124, ptr noundef %7126, i32 noundef %7127) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7129:                                             ; preds = %7103
  store i32 0, ptr %711, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %765, align 4, !tbaa !5
  %7130 = load i32, ptr @test_count, align 4, !tbaa !5
  %7131 = add nsw i32 %7130, 1
  store i32 %7131, ptr @test_count, align 4, !tbaa !5
  %7132 = load ptr, ptr %5, align 8, !tbaa !9
  %7133 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_rfc9151, ptr noundef nonnull @.str.46, ptr noundef %7132)
  %7134 = call zeroext i1 @s2n_result_is_ok(i32 %7133)
  br i1 %7134, label %7157, label %7135

7135:                                             ; preds = %7129
  %7136 = load i32, ptr %765, align 4, !tbaa !5
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = call i32 @s2n_print_stacktrace(ptr noundef %7137) #11
  %7139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7140 = trunc nuw i8 %7139 to i1
  br i1 %7140, label %7141, label %7145

7141:                                             ; preds = %7135
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = call i32 @fileno(ptr noundef %7142) #11
  %7144 = call i32 @isatty(i32 noundef %7143) #11
  %.not1023 = icmp eq i32 %7144, 0
  br i1 %.not1023, label %7145, label %7146

7145:                                             ; preds = %7141, %7135
  br label %7146

7146:                                             ; preds = %7141, %7145
  %.str.5.sink3628 = phi ptr [ @.str.5, %7145 ], [ @.str.2, %7141 ]
  store i32 %7136, ptr %765, align 4, !tbaa !5
  %7147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7148 = load i32, ptr @test_count, align 4, !tbaa !5
  %7149 = load i32, ptr %711, align 4, !tbaa !5
  %7150 = call ptr @s2n_strerror(i32 noundef %7149, ptr noundef nonnull @.str.4) #11
  %7151 = load i32, ptr %711, align 4, !tbaa !5
  %7152 = call ptr @s2n_strerror_debug(i32 noundef %7151, ptr noundef nonnull @.str.4) #11
  %7153 = load i32, ptr %765, align 4, !tbaa !5
  %7154 = call ptr @strerror(i32 noundef %7153) #11
  %7155 = load i32, ptr %765, align 4, !tbaa !5
  %7156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7147, ptr noundef nonnull %.str.5.sink3628, i32 noundef %7148, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.1, i32 noundef 840, ptr noundef %7150, ptr noundef %7152, ptr noundef %7154, i32 noundef %7155) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7157:                                             ; preds = %7129
  %7158 = load i32, ptr @test_count, align 4, !tbaa !5
  %7159 = add nsw i32 %7158, 1
  store i32 %7159, ptr @test_count, align 4, !tbaa !5
  %7160 = load ptr, ptr %5, align 8, !tbaa !9
  %7161 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_rfc9151, ptr noundef nonnull @.str.184, ptr noundef %7160)
  %7162 = call zeroext i1 @s2n_result_is_ok(i32 %7161)
  br i1 %7162, label %7185, label %7163

7163:                                             ; preds = %7157
  %7164 = load i32, ptr %765, align 4, !tbaa !5
  %7165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7166 = call i32 @s2n_print_stacktrace(ptr noundef %7165) #11
  %7167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7168 = trunc nuw i8 %7167 to i1
  br i1 %7168, label %7169, label %7173

7169:                                             ; preds = %7163
  %7170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7171 = call i32 @fileno(ptr noundef %7170) #11
  %7172 = call i32 @isatty(i32 noundef %7171) #11
  %.not1024 = icmp eq i32 %7172, 0
  br i1 %.not1024, label %7173, label %7174

7173:                                             ; preds = %7169, %7163
  br label %7174

7174:                                             ; preds = %7169, %7173
  %.str.5.sink3637 = phi ptr [ @.str.5, %7173 ], [ @.str.2, %7169 ]
  store i32 %7164, ptr %765, align 4, !tbaa !5
  %7175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7176 = load i32, ptr @test_count, align 4, !tbaa !5
  %7177 = load i32, ptr %711, align 4, !tbaa !5
  %7178 = call ptr @s2n_strerror(i32 noundef %7177, ptr noundef nonnull @.str.4) #11
  %7179 = load i32, ptr %711, align 4, !tbaa !5
  %7180 = call ptr @s2n_strerror_debug(i32 noundef %7179, ptr noundef nonnull @.str.4) #11
  %7181 = load i32, ptr %765, align 4, !tbaa !5
  %7182 = call ptr @strerror(i32 noundef %7181) #11
  %7183 = load i32, ptr %765, align 4, !tbaa !5
  %7184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7175, ptr noundef nonnull %.str.5.sink3637, i32 noundef %7176, ptr noundef nonnull @.str.211, ptr noundef nonnull @.str.1, i32 noundef 841, ptr noundef %7178, ptr noundef %7180, ptr noundef %7182, i32 noundef %7183) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7185:                                             ; preds = %7157
  %7186 = load i32, ptr @test_count, align 4, !tbaa !5
  %7187 = add nsw i32 %7186, 1
  store i32 %7187, ptr @test_count, align 4, !tbaa !5
  %7188 = load ptr, ptr %5, align 8, !tbaa !9
  %7189 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_rfc9151, ptr noundef nonnull @.str.221, ptr noundef %7188)
  %7190 = call zeroext i1 @s2n_result_is_ok(i32 %7189)
  br i1 %7190, label %7213, label %7191

7191:                                             ; preds = %7185
  %7192 = load i32, ptr %765, align 4, !tbaa !5
  %7193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7194 = call i32 @s2n_print_stacktrace(ptr noundef %7193) #11
  %7195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7196 = trunc nuw i8 %7195 to i1
  br i1 %7196, label %7197, label %7201

7197:                                             ; preds = %7191
  %7198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7199 = call i32 @fileno(ptr noundef %7198) #11
  %7200 = call i32 @isatty(i32 noundef %7199) #11
  %.not1025 = icmp eq i32 %7200, 0
  br i1 %.not1025, label %7201, label %7202

7201:                                             ; preds = %7197, %7191
  br label %7202

7202:                                             ; preds = %7197, %7201
  %.str.5.sink3646 = phi ptr [ @.str.5, %7201 ], [ @.str.2, %7197 ]
  store i32 %7192, ptr %765, align 4, !tbaa !5
  %7203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7204 = load i32, ptr @test_count, align 4, !tbaa !5
  %7205 = load i32, ptr %711, align 4, !tbaa !5
  %7206 = call ptr @s2n_strerror(i32 noundef %7205, ptr noundef nonnull @.str.4) #11
  %7207 = load i32, ptr %711, align 4, !tbaa !5
  %7208 = call ptr @s2n_strerror_debug(i32 noundef %7207, ptr noundef nonnull @.str.4) #11
  %7209 = load i32, ptr %765, align 4, !tbaa !5
  %7210 = call ptr @strerror(i32 noundef %7209) #11
  %7211 = load i32, ptr %765, align 4, !tbaa !5
  %7212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7203, ptr noundef nonnull %.str.5.sink3646, i32 noundef %7204, ptr noundef nonnull @.str.222, ptr noundef nonnull @.str.1, i32 noundef 842, ptr noundef %7206, ptr noundef %7208, ptr noundef %7210, i32 noundef %7211) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7213:                                             ; preds = %7185
  %7214 = load i32, ptr @test_count, align 4, !tbaa !5
  %7215 = add nsw i32 %7214, 1
  store i32 %7215, ptr @test_count, align 4, !tbaa !5
  %7216 = load ptr, ptr %5, align 8, !tbaa !9
  %7217 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240503, ptr noundef nonnull @.str.214, ptr noundef %7216)
  %7218 = call zeroext i1 @s2n_result_is_ok(i32 %7217)
  br i1 %7218, label %7241, label %7219

7219:                                             ; preds = %7213
  %7220 = load i32, ptr %765, align 4, !tbaa !5
  %7221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7222 = call i32 @s2n_print_stacktrace(ptr noundef %7221) #11
  %7223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7224 = trunc nuw i8 %7223 to i1
  br i1 %7224, label %7225, label %7229

7225:                                             ; preds = %7219
  %7226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7227 = call i32 @fileno(ptr noundef %7226) #11
  %7228 = call i32 @isatty(i32 noundef %7227) #11
  %.not1026 = icmp eq i32 %7228, 0
  br i1 %.not1026, label %7229, label %7230

7229:                                             ; preds = %7225, %7219
  br label %7230

7230:                                             ; preds = %7225, %7229
  %.str.5.sink3655 = phi ptr [ @.str.5, %7229 ], [ @.str.2, %7225 ]
  store i32 %7220, ptr %765, align 4, !tbaa !5
  %7231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7232 = load i32, ptr @test_count, align 4, !tbaa !5
  %7233 = load i32, ptr %711, align 4, !tbaa !5
  %7234 = call ptr @s2n_strerror(i32 noundef %7233, ptr noundef nonnull @.str.4) #11
  %7235 = load i32, ptr %711, align 4, !tbaa !5
  %7236 = call ptr @s2n_strerror_debug(i32 noundef %7235, ptr noundef nonnull @.str.4) #11
  %7237 = load i32, ptr %765, align 4, !tbaa !5
  %7238 = call ptr @strerror(i32 noundef %7237) #11
  %7239 = load i32, ptr %765, align 4, !tbaa !5
  %7240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7231, ptr noundef nonnull %.str.5.sink3655, i32 noundef %7232, ptr noundef nonnull @.str.215, ptr noundef nonnull @.str.1, i32 noundef 845, ptr noundef %7234, ptr noundef %7236, ptr noundef %7238, i32 noundef %7239) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7241:                                             ; preds = %7213
  %7242 = load i32, ptr @test_count, align 4, !tbaa !5
  %7243 = add nsw i32 %7242, 1
  store i32 %7243, ptr @test_count, align 4, !tbaa !5
  %7244 = load ptr, ptr %5, align 8, !tbaa !9
  %7245 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240502, ptr noundef nonnull @.str.214, ptr noundef %7244)
  %7246 = call zeroext i1 @s2n_result_is_ok(i32 %7245)
  br i1 %7246, label %7269, label %7247

7247:                                             ; preds = %7241
  %7248 = load i32, ptr %765, align 4, !tbaa !5
  %7249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7250 = call i32 @s2n_print_stacktrace(ptr noundef %7249) #11
  %7251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7252 = trunc nuw i8 %7251 to i1
  br i1 %7252, label %7253, label %7257

7253:                                             ; preds = %7247
  %7254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7255 = call i32 @fileno(ptr noundef %7254) #11
  %7256 = call i32 @isatty(i32 noundef %7255) #11
  %.not1027 = icmp eq i32 %7256, 0
  br i1 %.not1027, label %7257, label %7258

7257:                                             ; preds = %7253, %7247
  br label %7258

7258:                                             ; preds = %7253, %7257
  %.str.5.sink3664 = phi ptr [ @.str.5, %7257 ], [ @.str.2, %7253 ]
  store i32 %7248, ptr %765, align 4, !tbaa !5
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = load i32, ptr @test_count, align 4, !tbaa !5
  %7261 = load i32, ptr %711, align 4, !tbaa !5
  %7262 = call ptr @s2n_strerror(i32 noundef %7261, ptr noundef nonnull @.str.4) #11
  %7263 = load i32, ptr %711, align 4, !tbaa !5
  %7264 = call ptr @s2n_strerror_debug(i32 noundef %7263, ptr noundef nonnull @.str.4) #11
  %7265 = load i32, ptr %765, align 4, !tbaa !5
  %7266 = call ptr @strerror(i32 noundef %7265) #11
  %7267 = load i32, ptr %765, align 4, !tbaa !5
  %7268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7259, ptr noundef nonnull %.str.5.sink3664, i32 noundef %7260, ptr noundef nonnull @.str.216, ptr noundef nonnull @.str.1, i32 noundef 847, ptr noundef %7262, ptr noundef %7264, ptr noundef %7266, i32 noundef %7267) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7269:                                             ; preds = %7241
  %7270 = load i32, ptr @test_count, align 4, !tbaa !5
  %7271 = add nsw i32 %7270, 1
  store i32 %7271, ptr @test_count, align 4, !tbaa !5
  %7272 = load ptr, ptr %5, align 8, !tbaa !9
  %7273 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20250414, ptr noundef nonnull @.str.214, ptr noundef %7272)
  %7274 = call zeroext i1 @s2n_result_is_ok(i32 %7273)
  br i1 %7274, label %7297, label %7275

7275:                                             ; preds = %7269
  %7276 = load i32, ptr %765, align 4, !tbaa !5
  %7277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7278 = call i32 @s2n_print_stacktrace(ptr noundef %7277) #11
  %7279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7280 = trunc nuw i8 %7279 to i1
  br i1 %7280, label %7281, label %7285

7281:                                             ; preds = %7275
  %7282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7283 = call i32 @fileno(ptr noundef %7282) #11
  %7284 = call i32 @isatty(i32 noundef %7283) #11
  %.not1028 = icmp eq i32 %7284, 0
  br i1 %.not1028, label %7285, label %7286

7285:                                             ; preds = %7281, %7275
  br label %7286

7286:                                             ; preds = %7281, %7285
  %.str.5.sink3673 = phi ptr [ @.str.5, %7285 ], [ @.str.2, %7281 ]
  store i32 %7276, ptr %765, align 4, !tbaa !5
  %7287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7288 = load i32, ptr @test_count, align 4, !tbaa !5
  %7289 = load i32, ptr %711, align 4, !tbaa !5
  %7290 = call ptr @s2n_strerror(i32 noundef %7289, ptr noundef nonnull @.str.4) #11
  %7291 = load i32, ptr %711, align 4, !tbaa !5
  %7292 = call ptr @s2n_strerror_debug(i32 noundef %7291, ptr noundef nonnull @.str.4) #11
  %7293 = load i32, ptr %765, align 4, !tbaa !5
  %7294 = call ptr @strerror(i32 noundef %7293) #11
  %7295 = load i32, ptr %765, align 4, !tbaa !5
  %7296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7287, ptr noundef nonnull %.str.5.sink3673, i32 noundef %7288, ptr noundef nonnull @.str.223, ptr noundef nonnull @.str.1, i32 noundef 848, ptr noundef %7290, ptr noundef %7292, ptr noundef %7294, i32 noundef %7295) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7297:                                             ; preds = %7269
  %7298 = load i32, ptr @test_count, align 4, !tbaa !5
  %7299 = add nsw i32 %7298, 1
  store i32 %7299, ptr @test_count, align 4, !tbaa !5
  %7300 = load ptr, ptr %5, align 8, !tbaa !9
  %7301 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240503, ptr noundef nonnull @.str.221, ptr noundef %7300)
  %7302 = call zeroext i1 @s2n_result_is_ok(i32 %7301)
  br i1 %7302, label %7325, label %7303

7303:                                             ; preds = %7297
  %7304 = load i32, ptr %765, align 4, !tbaa !5
  %7305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7306 = call i32 @s2n_print_stacktrace(ptr noundef %7305) #11
  %7307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7308 = trunc nuw i8 %7307 to i1
  br i1 %7308, label %7309, label %7313

7309:                                             ; preds = %7303
  %7310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7311 = call i32 @fileno(ptr noundef %7310) #11
  %7312 = call i32 @isatty(i32 noundef %7311) #11
  %.not1029 = icmp eq i32 %7312, 0
  br i1 %.not1029, label %7313, label %7314

7313:                                             ; preds = %7309, %7303
  br label %7314

7314:                                             ; preds = %7309, %7313
  %.str.5.sink3682 = phi ptr [ @.str.5, %7313 ], [ @.str.2, %7309 ]
  store i32 %7304, ptr %765, align 4, !tbaa !5
  %7315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7316 = load i32, ptr @test_count, align 4, !tbaa !5
  %7317 = load i32, ptr %711, align 4, !tbaa !5
  %7318 = call ptr @s2n_strerror(i32 noundef %7317, ptr noundef nonnull @.str.4) #11
  %7319 = load i32, ptr %711, align 4, !tbaa !5
  %7320 = call ptr @s2n_strerror_debug(i32 noundef %7319, ptr noundef nonnull @.str.4) #11
  %7321 = load i32, ptr %765, align 4, !tbaa !5
  %7322 = call ptr @strerror(i32 noundef %7321) #11
  %7323 = load i32, ptr %765, align 4, !tbaa !5
  %7324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7315, ptr noundef nonnull %.str.5.sink3682, i32 noundef %7316, ptr noundef nonnull @.str.224, ptr noundef nonnull @.str.1, i32 noundef 851, ptr noundef %7318, ptr noundef %7320, ptr noundef %7322, i32 noundef %7323) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7325:                                             ; preds = %7297
  %7326 = load i32, ptr @test_count, align 4, !tbaa !5
  %7327 = add nsw i32 %7326, 1
  store i32 %7327, ptr @test_count, align 4, !tbaa !5
  %7328 = load ptr, ptr %6, align 8, !tbaa !9
  %7329 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20240503, ptr noundef nonnull @.str.221, ptr noundef %7328)
  %7330 = call zeroext i1 @s2n_result_is_ok(i32 %7329)
  br i1 %7330, label %7353, label %7331

7331:                                             ; preds = %7325
  %7332 = load i32, ptr %765, align 4, !tbaa !5
  %7333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7334 = call i32 @s2n_print_stacktrace(ptr noundef %7333) #11
  %7335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7336 = trunc nuw i8 %7335 to i1
  br i1 %7336, label %7337, label %7341

7337:                                             ; preds = %7331
  %7338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7339 = call i32 @fileno(ptr noundef %7338) #11
  %7340 = call i32 @isatty(i32 noundef %7339) #11
  %.not1030 = icmp eq i32 %7340, 0
  br i1 %.not1030, label %7341, label %7342

7341:                                             ; preds = %7337, %7331
  br label %7342

7342:                                             ; preds = %7337, %7341
  %.str.5.sink3691 = phi ptr [ @.str.5, %7341 ], [ @.str.2, %7337 ]
  store i32 %7332, ptr %765, align 4, !tbaa !5
  %7343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7344 = load i32, ptr @test_count, align 4, !tbaa !5
  %7345 = load i32, ptr %711, align 4, !tbaa !5
  %7346 = call ptr @s2n_strerror(i32 noundef %7345, ptr noundef nonnull @.str.4) #11
  %7347 = load i32, ptr %711, align 4, !tbaa !5
  %7348 = call ptr @s2n_strerror_debug(i32 noundef %7347, ptr noundef nonnull @.str.4) #11
  %7349 = load i32, ptr %765, align 4, !tbaa !5
  %7350 = call ptr @strerror(i32 noundef %7349) #11
  %7351 = load i32, ptr %765, align 4, !tbaa !5
  %7352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7343, ptr noundef nonnull %.str.5.sink3691, i32 noundef %7344, ptr noundef nonnull @.str.225, ptr noundef nonnull @.str.1, i32 noundef 852, ptr noundef %7346, ptr noundef %7348, ptr noundef %7350, i32 noundef %7351) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7353:                                             ; preds = %7325
  %7354 = load i32, ptr @test_count, align 4, !tbaa !5
  %7355 = add nsw i32 %7354, 1
  store i32 %7355, ptr @test_count, align 4, !tbaa !5
  %7356 = load ptr, ptr %5, align 8, !tbaa !9
  %7357 = call i32 @s2n_test_security_policies_compatible(ptr noundef nonnull @security_policy_20250211, ptr noundef nonnull @.str.221, ptr noundef %7356)
  %7358 = call zeroext i1 @s2n_result_is_ok(i32 %7357)
  br i1 %7358, label %7381, label %7359

7359:                                             ; preds = %7353
  %7360 = load i32, ptr %765, align 4, !tbaa !5
  %7361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7362 = call i32 @s2n_print_stacktrace(ptr noundef %7361) #11
  %7363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7364 = trunc nuw i8 %7363 to i1
  br i1 %7364, label %7365, label %7369

7365:                                             ; preds = %7359
  %7366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7367 = call i32 @fileno(ptr noundef %7366) #11
  %7368 = call i32 @isatty(i32 noundef %7367) #11
  %.not1031 = icmp eq i32 %7368, 0
  br i1 %.not1031, label %7369, label %7370

7369:                                             ; preds = %7365, %7359
  br label %7370

7370:                                             ; preds = %7365, %7369
  %.str.5.sink3700 = phi ptr [ @.str.5, %7369 ], [ @.str.2, %7365 ]
  store i32 %7360, ptr %765, align 4, !tbaa !5
  %7371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7372 = load i32, ptr @test_count, align 4, !tbaa !5
  %7373 = load i32, ptr %711, align 4, !tbaa !5
  %7374 = call ptr @s2n_strerror(i32 noundef %7373, ptr noundef nonnull @.str.4) #11
  %7375 = load i32, ptr %711, align 4, !tbaa !5
  %7376 = call ptr @s2n_strerror_debug(i32 noundef %7375, ptr noundef nonnull @.str.4) #11
  %7377 = load i32, ptr %765, align 4, !tbaa !5
  %7378 = call ptr @strerror(i32 noundef %7377) #11
  %7379 = load i32, ptr %765, align 4, !tbaa !5
  %7380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7371, ptr noundef nonnull %.str.5.sink3700, i32 noundef %7372, ptr noundef nonnull @.str.226, ptr noundef nonnull @.str.1, i32 noundef 855, ptr noundef %7374, ptr noundef %7376, ptr noundef %7378, i32 noundef %7379) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7381:                                             ; preds = %7353, %6850
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %26, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.versioned_policies, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #11
  %7382 = load ptr, ptr %3, align 8, !tbaa !9
  store ptr %7382, ptr %27, align 16, !tbaa !78
  %7383 = getelementptr inbounds i8, ptr %27, i64 8
  store i64 0, ptr %7383, align 8, !tbaa !80
  %7384 = getelementptr inbounds i8, ptr %27, i64 16
  %7385 = load ptr, ptr %4, align 8, !tbaa !9
  store ptr %7385, ptr %7384, align 16, !tbaa !78
  %7386 = getelementptr inbounds i8, ptr %27, i64 24
  store i64 1, ptr %7386, align 8, !tbaa !80
  %7387 = load i32, ptr @test_count, align 4, !tbaa !5
  %7388 = add nsw i32 %7387, 1
  store i32 %7388, ptr @test_count, align 4, !tbaa !5
  %7389 = call i32 @s2n_test_default_backwards_compatible(ptr noundef nonnull @.str.37, ptr noundef nonnull %26, i64 noundef 2, ptr noundef nonnull %27, i64 noundef 2)
  %7390 = call zeroext i1 @s2n_result_is_ok(i32 %7389)
  br i1 %7390, label %7413, label %7391

7391:                                             ; preds = %7381
  %7392 = load i32, ptr %765, align 4, !tbaa !5
  %7393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7394 = call i32 @s2n_print_stacktrace(ptr noundef %7393) #11
  %7395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7396 = trunc nuw i8 %7395 to i1
  br i1 %7396, label %7397, label %7401

7397:                                             ; preds = %7391
  %7398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7399 = call i32 @fileno(ptr noundef %7398) #11
  %7400 = call i32 @isatty(i32 noundef %7399) #11
  %.not1032 = icmp eq i32 %7400, 0
  br i1 %.not1032, label %7401, label %7402

7401:                                             ; preds = %7397, %7391
  br label %7402

7402:                                             ; preds = %7397, %7401
  %.str.5.sink3709 = phi ptr [ @.str.5, %7401 ], [ @.str.2, %7397 ]
  store i32 %7392, ptr %765, align 4, !tbaa !5
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = load i32, ptr @test_count, align 4, !tbaa !5
  %7405 = load i32, ptr %711, align 4, !tbaa !5
  %7406 = call ptr @s2n_strerror(i32 noundef %7405, ptr noundef nonnull @.str.4) #11
  %7407 = load i32, ptr %711, align 4, !tbaa !5
  %7408 = call ptr @s2n_strerror_debug(i32 noundef %7407, ptr noundef nonnull @.str.4) #11
  %7409 = load i32, ptr %765, align 4, !tbaa !5
  %7410 = call ptr @strerror(i32 noundef %7409) #11
  %7411 = load i32, ptr %765, align 4, !tbaa !5
  %7412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7403, ptr noundef nonnull %.str.5.sink3709, i32 noundef %7404, ptr noundef nonnull @.str.227, ptr noundef nonnull @.str.1, i32 noundef 885, ptr noundef %7406, ptr noundef %7408, ptr noundef %7410, i32 noundef %7411) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7413:                                             ; preds = %7381
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #11
  %7414 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #11
  br i1 %7414, label %7415, label %7451

7415:                                             ; preds = %7413
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %28, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.versioned_policies.228, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %29) #11
  %7416 = load ptr, ptr %3, align 8, !tbaa !9
  store ptr %7416, ptr %29, align 16, !tbaa !78
  %7417 = getelementptr inbounds i8, ptr %29, i64 8
  store i64 0, ptr %7417, align 8, !tbaa !80
  %7418 = getelementptr inbounds i8, ptr %29, i64 16
  %7419 = load ptr, ptr %4, align 8, !tbaa !9
  store ptr %7419, ptr %7418, align 16, !tbaa !78
  %7420 = getelementptr inbounds i8, ptr %29, i64 24
  store i64 0, ptr %7420, align 8, !tbaa !80
  %7421 = getelementptr inbounds i8, ptr %29, i64 32
  %7422 = load ptr, ptr %7, align 8, !tbaa !9
  store ptr %7422, ptr %7421, align 16, !tbaa !78
  %7423 = getelementptr inbounds i8, ptr %29, i64 40
  store i64 0, ptr %7423, align 8, !tbaa !80
  %7424 = load i32, ptr @test_count, align 4, !tbaa !5
  %7425 = add nsw i32 %7424, 1
  store i32 %7425, ptr @test_count, align 4, !tbaa !5
  %7426 = call i32 @s2n_test_default_backwards_compatible(ptr noundef nonnull @.str.46, ptr noundef nonnull %28, i64 noundef 2, ptr noundef nonnull %29, i64 noundef 3)
  %7427 = call zeroext i1 @s2n_result_is_ok(i32 %7426)
  br i1 %7427, label %7450, label %7428

7428:                                             ; preds = %7415
  %7429 = load i32, ptr %765, align 4, !tbaa !5
  %7430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7431 = call i32 @s2n_print_stacktrace(ptr noundef %7430) #11
  %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) #11
  %7437 = call i32 @isatty(i32 noundef %7436) #11
  %.not1033 = icmp eq i32 %7437, 0
  br i1 %.not1033, label %7438, label %7439

7438:                                             ; preds = %7434, %7428
  br label %7439

7439:                                             ; preds = %7434, %7438
  %.str.5.sink3718 = phi ptr [ @.str.5, %7438 ], [ @.str.2, %7434 ]
  store i32 %7429, ptr %765, 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 %711, align 4, !tbaa !5
  %7443 = call ptr @s2n_strerror(i32 noundef %7442, ptr noundef nonnull @.str.4) #11
  %7444 = load i32, ptr %711, align 4, !tbaa !5
  %7445 = call ptr @s2n_strerror_debug(i32 noundef %7444, ptr noundef nonnull @.str.4) #11
  %7446 = load i32, ptr %765, align 4, !tbaa !5
  %7447 = call ptr @strerror(i32 noundef %7446) #11
  %7448 = load i32, ptr %765, align 4, !tbaa !5
  %7449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7440, ptr noundef nonnull %.str.5.sink3718, i32 noundef %7441, ptr noundef nonnull @.str.229, ptr noundef nonnull @.str.1, i32 noundef 903, ptr noundef %7443, ptr noundef %7445, ptr noundef %7447, i32 noundef %7448) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7450:                                             ; preds = %7415
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #11
  br label %7451

7451:                                             ; preds = %7450, %7413
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %30, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.versioned_policies.230, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #11
  %7452 = load ptr, ptr %3, align 8, !tbaa !9
  store ptr %7452, ptr %31, align 16, !tbaa !78
  %7453 = getelementptr inbounds i8, ptr %31, i64 8
  store i64 0, ptr %7453, align 8, !tbaa !80
  %7454 = getelementptr inbounds i8, ptr %31, i64 16
  %7455 = load ptr, ptr %4, align 8, !tbaa !9
  store ptr %7455, ptr %7454, align 16, !tbaa !78
  %7456 = getelementptr inbounds i8, ptr %31, i64 24
  store i64 0, ptr %7456, align 8, !tbaa !80
  %7457 = load i32, ptr @test_count, align 4, !tbaa !5
  %7458 = add nsw i32 %7457, 1
  store i32 %7458, ptr @test_count, align 4, !tbaa !5
  %7459 = call i32 @s2n_test_default_backwards_compatible(ptr noundef nonnull @.str.184, ptr noundef nonnull %30, i64 noundef 2, ptr noundef nonnull %31, i64 noundef 2)
  %7460 = call zeroext i1 @s2n_result_is_ok(i32 %7459)
  br i1 %7460, label %7483, label %7461

7461:                                             ; preds = %7451
  %7462 = load i32, ptr %765, align 4, !tbaa !5
  %7463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7464 = call i32 @s2n_print_stacktrace(ptr noundef %7463) #11
  %7465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7466 = trunc nuw i8 %7465 to i1
  br i1 %7466, label %7467, label %7471

7467:                                             ; preds = %7461
  %7468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7469 = call i32 @fileno(ptr noundef %7468) #11
  %7470 = call i32 @isatty(i32 noundef %7469) #11
  %.not1034 = icmp eq i32 %7470, 0
  br i1 %.not1034, label %7471, label %7472

7471:                                             ; preds = %7467, %7461
  br label %7472

7472:                                             ; preds = %7467, %7471
  %.str.5.sink3727 = phi ptr [ @.str.5, %7471 ], [ @.str.2, %7467 ]
  store i32 %7462, ptr %765, align 4, !tbaa !5
  %7473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7474 = load i32, ptr @test_count, align 4, !tbaa !5
  %7475 = load i32, ptr %711, align 4, !tbaa !5
  %7476 = call ptr @s2n_strerror(i32 noundef %7475, ptr noundef nonnull @.str.4) #11
  %7477 = load i32, ptr %711, align 4, !tbaa !5
  %7478 = call ptr @s2n_strerror_debug(i32 noundef %7477, ptr noundef nonnull @.str.4) #11
  %7479 = load i32, ptr %765, align 4, !tbaa !5
  %7480 = call ptr @strerror(i32 noundef %7479) #11
  %7481 = load i32, ptr %765, align 4, !tbaa !5
  %7482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7473, ptr noundef nonnull %.str.5.sink3727, i32 noundef %7474, ptr noundef nonnull @.str.231, ptr noundef nonnull @.str.1, i32 noundef 920, ptr noundef %7476, ptr noundef %7478, ptr noundef %7480, i32 noundef %7481) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7483:                                             ; preds = %7451
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #11
  store ptr null, ptr %32, align 8, !tbaa !9
  %7484 = load i32, ptr @test_count, align 4, !tbaa !5
  %7485 = add nsw i32 %7484, 1
  store i32 %7485, ptr @test_count, align 4, !tbaa !5
  %7486 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.232, ptr noundef nonnull %32) #11
  %7487 = icmp eq i32 %7486, -1
  br i1 %7487, label %7488, label %7510

7488:                                             ; preds = %7483
  %7489 = load i32, ptr %765, align 4, !tbaa !5
  %7490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7491 = call i32 @s2n_print_stacktrace(ptr noundef %7490) #11
  %7492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7493 = trunc nuw i8 %7492 to i1
  br i1 %7493, label %7494, label %7498

7494:                                             ; preds = %7488
  %7495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7496 = call i32 @fileno(ptr noundef %7495) #11
  %7497 = call i32 @isatty(i32 noundef %7496) #11
  %.not1050 = icmp eq i32 %7497, 0
  br i1 %.not1050, label %7498, label %7499

7498:                                             ; preds = %7494, %7488
  br label %7499

7499:                                             ; preds = %7494, %7498
  %.str.5.sink3736 = phi ptr [ @.str.5, %7498 ], [ @.str.2, %7494 ]
  store i32 %7489, ptr %765, align 4, !tbaa !5
  %7500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7501 = load i32, ptr @test_count, align 4, !tbaa !5
  %7502 = load i32, ptr %711, align 4, !tbaa !5
  %7503 = call ptr @s2n_strerror(i32 noundef %7502, ptr noundef nonnull @.str.4) #11
  %7504 = load i32, ptr %711, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror_debug(i32 noundef %7504, ptr noundef nonnull @.str.4) #11
  %7506 = load i32, ptr %765, align 4, !tbaa !5
  %7507 = call ptr @strerror(i32 noundef %7506) #11
  %7508 = load i32, ptr %765, align 4, !tbaa !5
  %7509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7500, ptr noundef nonnull %.str.5.sink3736, i32 noundef %7501, ptr noundef nonnull @.str.233, ptr noundef nonnull @.str.1, i32 noundef 927, ptr noundef %7503, ptr noundef %7505, ptr noundef %7507, i32 noundef %7508) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7510:                                             ; preds = %7483
  %7511 = load i32, ptr @test_count, align 4, !tbaa !5
  %7512 = add nsw i32 %7511, 1
  store i32 %7512, ptr @test_count, align 4, !tbaa !5
  %7513 = load ptr, ptr %32, align 8, !tbaa !9
  %7514 = getelementptr inbounds i8, ptr %7513, i64 16
  %7515 = load ptr, ptr %7514, align 8, !tbaa !20
  %7516 = icmp eq ptr %7515, @kem_preferences_null
  br i1 %7516, label %7517, label %7539

7517:                                             ; preds = %7510
  %7518 = load i32, ptr %765, align 4, !tbaa !5
  %7519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7520 = call i32 @s2n_print_stacktrace(ptr noundef %7519) #11
  %7521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7522 = trunc nuw i8 %7521 to i1
  br i1 %7522, label %7523, label %7527

7523:                                             ; preds = %7517
  %7524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7525 = call i32 @fileno(ptr noundef %7524) #11
  %7526 = call i32 @isatty(i32 noundef %7525) #11
  %.not1049 = icmp eq i32 %7526, 0
  br i1 %.not1049, label %7527, label %7528

7527:                                             ; preds = %7523, %7517
  br label %7528

7528:                                             ; preds = %7523, %7527
  %.str.5.sink3745 = phi ptr [ @.str.5, %7527 ], [ @.str.2, %7523 ]
  store i32 %7518, ptr %765, align 4, !tbaa !5
  %7529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7530 = load i32, ptr @test_count, align 4, !tbaa !5
  %7531 = load i32, ptr %711, align 4, !tbaa !5
  %7532 = call ptr @s2n_strerror(i32 noundef %7531, ptr noundef nonnull @.str.4) #11
  %7533 = load i32, ptr %711, align 4, !tbaa !5
  %7534 = call ptr @s2n_strerror_debug(i32 noundef %7533, ptr noundef nonnull @.str.4) #11
  %7535 = load i32, ptr %765, align 4, !tbaa !5
  %7536 = call ptr @strerror(i32 noundef %7535) #11
  %7537 = load i32, ptr %765, align 4, !tbaa !5
  %7538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7529, ptr noundef nonnull %.str.5.sink3745, i32 noundef %7530, ptr noundef nonnull @.str.234, ptr noundef nonnull @.str.1, i32 noundef 928, ptr noundef %7532, ptr noundef %7534, ptr noundef %7536, i32 noundef %7537) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7539:                                             ; preds = %7510
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  store ptr null, ptr %33, align 8, !tbaa !9
  %7540 = add nsw i32 %7511, 2
  store i32 %7540, ptr @test_count, align 4, !tbaa !5
  %7541 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.46, ptr noundef nonnull %33) #11
  %7542 = icmp eq i32 %7541, -1
  br i1 %7542, label %7543, label %7565

7543:                                             ; preds = %7539
  %7544 = load i32, ptr %765, align 4, !tbaa !5
  %7545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7546 = call i32 @s2n_print_stacktrace(ptr noundef %7545) #11
  %7547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7548 = trunc nuw i8 %7547 to i1
  br i1 %7548, label %7549, label %7553

7549:                                             ; preds = %7543
  %7550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7551 = call i32 @fileno(ptr noundef %7550) #11
  %7552 = call i32 @isatty(i32 noundef %7551) #11
  %.not1048 = icmp eq i32 %7552, 0
  br i1 %.not1048, label %7553, label %7554

7553:                                             ; preds = %7549, %7543
  br label %7554

7554:                                             ; preds = %7549, %7553
  %.str.5.sink3754 = phi ptr [ @.str.5, %7553 ], [ @.str.2, %7549 ]
  store i32 %7544, ptr %765, align 4, !tbaa !5
  %7555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7556 = load i32, ptr @test_count, align 4, !tbaa !5
  %7557 = load i32, ptr %711, align 4, !tbaa !5
  %7558 = call ptr @s2n_strerror(i32 noundef %7557, ptr noundef nonnull @.str.4) #11
  %7559 = load i32, ptr %711, align 4, !tbaa !5
  %7560 = call ptr @s2n_strerror_debug(i32 noundef %7559, ptr noundef nonnull @.str.4) #11
  %7561 = load i32, ptr %765, align 4, !tbaa !5
  %7562 = call ptr @strerror(i32 noundef %7561) #11
  %7563 = load i32, ptr %765, align 4, !tbaa !5
  %7564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7555, ptr noundef nonnull %.str.5.sink3754, i32 noundef %7556, ptr noundef nonnull @.str.235, ptr noundef nonnull @.str.1, i32 noundef 931, ptr noundef %7558, ptr noundef %7560, ptr noundef %7562, i32 noundef %7563) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7565:                                             ; preds = %7539
  %7566 = load i32, ptr @test_count, align 4, !tbaa !5
  %7567 = add nsw i32 %7566, 1
  store i32 %7567, ptr @test_count, align 4, !tbaa !5
  %7568 = load ptr, ptr %33, align 8, !tbaa !9
  %7569 = getelementptr inbounds i8, ptr %7568, i64 16
  %7570 = load ptr, ptr %7569, align 8, !tbaa !20
  %7571 = icmp eq ptr %7570, @kem_preferences_null
  br i1 %7571, label %7594, label %7572

7572:                                             ; preds = %7565
  %7573 = load i32, ptr %765, align 4, !tbaa !5
  %7574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7575 = call i32 @s2n_print_stacktrace(ptr noundef %7574) #11
  %7576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7577 = trunc nuw i8 %7576 to i1
  br i1 %7577, label %7578, label %7582

7578:                                             ; preds = %7572
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = call i32 @fileno(ptr noundef %7579) #11
  %7581 = call i32 @isatty(i32 noundef %7580) #11
  %.not1035 = icmp eq i32 %7581, 0
  br i1 %.not1035, label %7582, label %7583

7582:                                             ; preds = %7578, %7572
  br label %7583

7583:                                             ; preds = %7578, %7582
  %.str.5.sink3763 = phi ptr [ @.str.5, %7582 ], [ @.str.2, %7578 ]
  store i32 %7573, ptr %765, align 4, !tbaa !5
  %7584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7585 = load i32, ptr @test_count, align 4, !tbaa !5
  %7586 = load i32, ptr %711, align 4, !tbaa !5
  %7587 = call ptr @s2n_strerror(i32 noundef %7586, ptr noundef nonnull @.str.4) #11
  %7588 = load i32, ptr %711, align 4, !tbaa !5
  %7589 = call ptr @s2n_strerror_debug(i32 noundef %7588, ptr noundef nonnull @.str.4) #11
  %7590 = load i32, ptr %765, align 4, !tbaa !5
  %7591 = call ptr @strerror(i32 noundef %7590) #11
  %7592 = load i32, ptr %765, align 4, !tbaa !5
  %7593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7584, ptr noundef nonnull %.str.5.sink3763, i32 noundef %7585, ptr noundef nonnull @.str.236, ptr noundef nonnull @.str.1, i32 noundef 932, ptr noundef %7587, ptr noundef %7589, ptr noundef %7591, i32 noundef %7592) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7594:                                             ; preds = %7565
  %7595 = add nsw i32 %7566, 2
  store i32 %7595, ptr @test_count, align 4, !tbaa !5
  %7596 = load ptr, ptr %32, align 8, !tbaa !9
  %7597 = load i8, ptr %7596, align 8, !tbaa !58
  %7598 = load i8, ptr %7568, align 8, !tbaa !58
  %7599 = icmp eq i8 %7597, %7598
  br i1 %7599, label %7622, label %7600

7600:                                             ; preds = %7594
  %7601 = load i32, ptr %765, align 4, !tbaa !5
  %7602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7603 = call i32 @s2n_print_stacktrace(ptr noundef %7602) #11
  %7604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7605 = trunc nuw i8 %7604 to i1
  br i1 %7605, label %7606, label %7610

7606:                                             ; preds = %7600
  %7607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7608 = call i32 @fileno(ptr noundef %7607) #11
  %7609 = call i32 @isatty(i32 noundef %7608) #11
  %.not1036 = icmp eq i32 %7609, 0
  br i1 %.not1036, label %7610, label %7611

7610:                                             ; preds = %7606, %7600
  br label %7611

7611:                                             ; preds = %7606, %7610
  %.str.5.sink3772 = phi ptr [ @.str.5, %7610 ], [ @.str.2, %7606 ]
  store i32 %7601, ptr %765, align 4, !tbaa !5
  %7612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7613 = load i32, ptr @test_count, align 4, !tbaa !5
  %7614 = load i32, ptr %711, align 4, !tbaa !5
  %7615 = call ptr @s2n_strerror(i32 noundef %7614, ptr noundef nonnull @.str.4) #11
  %7616 = load i32, ptr %711, align 4, !tbaa !5
  %7617 = call ptr @s2n_strerror_debug(i32 noundef %7616, ptr noundef nonnull @.str.4) #11
  %7618 = load i32, ptr %765, align 4, !tbaa !5
  %7619 = call ptr @strerror(i32 noundef %7618) #11
  %7620 = load i32, ptr %765, align 4, !tbaa !5
  %7621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7612, ptr noundef nonnull %.str.5.sink3772, i32 noundef %7613, ptr noundef nonnull @.str.237, ptr noundef nonnull @.str.1, i32 noundef 935, ptr noundef %7615, ptr noundef %7617, ptr noundef %7619, i32 noundef %7620) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7622:                                             ; preds = %7594
  %7623 = add nsw i32 %7566, 3
  store i32 %7623, ptr @test_count, align 4, !tbaa !5
  %7624 = getelementptr inbounds i8, ptr %7596, i64 8
  %7625 = load ptr, ptr %7624, align 8, !tbaa !31
  %7626 = getelementptr inbounds i8, ptr %7568, i64 8
  %7627 = load ptr, ptr %7626, align 8, !tbaa !31
  %7628 = icmp eq ptr %7625, %7627
  br i1 %7628, label %7651, label %7629

7629:                                             ; preds = %7622
  %7630 = load i32, ptr %765, align 4, !tbaa !5
  %7631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7632 = call i32 @s2n_print_stacktrace(ptr noundef %7631) #11
  %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) #11
  %7638 = call i32 @isatty(i32 noundef %7637) #11
  %.not1037 = icmp eq i32 %7638, 0
  br i1 %.not1037, label %7639, label %7640

7639:                                             ; preds = %7635, %7629
  br label %7640

7640:                                             ; preds = %7635, %7639
  %.str.5.sink3781 = phi ptr [ @.str.5, %7639 ], [ @.str.2, %7635 ]
  store i32 %7630, ptr %765, 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 %711, align 4, !tbaa !5
  %7644 = call ptr @s2n_strerror(i32 noundef %7643, ptr noundef nonnull @.str.4) #11
  %7645 = load i32, ptr %711, align 4, !tbaa !5
  %7646 = call ptr @s2n_strerror_debug(i32 noundef %7645, ptr noundef nonnull @.str.4) #11
  %7647 = load i32, ptr %765, align 4, !tbaa !5
  %7648 = call ptr @strerror(i32 noundef %7647) #11
  %7649 = load i32, ptr %765, align 4, !tbaa !5
  %7650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7641, ptr noundef nonnull %.str.5.sink3781, i32 noundef %7642, ptr noundef nonnull @.str.238, ptr noundef nonnull @.str.1, i32 noundef 936, ptr noundef %7644, ptr noundef %7646, ptr noundef %7648, i32 noundef %7649) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7651:                                             ; preds = %7622
  %7652 = add nsw i32 %7566, 4
  store i32 %7652, ptr @test_count, align 4, !tbaa !5
  %7653 = getelementptr inbounds i8, ptr %7596, i64 24
  %7654 = load ptr, ptr %7653, align 8, !tbaa !38
  %7655 = getelementptr inbounds i8, ptr %7568, i64 24
  %7656 = load ptr, ptr %7655, align 8, !tbaa !38
  %7657 = icmp eq ptr %7654, %7656
  br i1 %7657, label %7680, label %7658

7658:                                             ; preds = %7651
  %7659 = load i32, ptr %765, align 4, !tbaa !5
  %7660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7661 = call i32 @s2n_print_stacktrace(ptr noundef %7660) #11
  %7662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7663 = trunc nuw i8 %7662 to i1
  br i1 %7663, label %7664, label %7668

7664:                                             ; preds = %7658
  %7665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7666 = call i32 @fileno(ptr noundef %7665) #11
  %7667 = call i32 @isatty(i32 noundef %7666) #11
  %.not1038 = icmp eq i32 %7667, 0
  br i1 %.not1038, label %7668, label %7669

7668:                                             ; preds = %7664, %7658
  br label %7669

7669:                                             ; preds = %7664, %7668
  %.str.5.sink3790 = phi ptr [ @.str.5, %7668 ], [ @.str.2, %7664 ]
  store i32 %7659, ptr %765, align 4, !tbaa !5
  %7670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7671 = load i32, ptr @test_count, align 4, !tbaa !5
  %7672 = load i32, ptr %711, align 4, !tbaa !5
  %7673 = call ptr @s2n_strerror(i32 noundef %7672, ptr noundef nonnull @.str.4) #11
  %7674 = load i32, ptr %711, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror_debug(i32 noundef %7674, ptr noundef nonnull @.str.4) #11
  %7676 = load i32, ptr %765, align 4, !tbaa !5
  %7677 = call ptr @strerror(i32 noundef %7676) #11
  %7678 = load i32, ptr %765, align 4, !tbaa !5
  %7679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7670, ptr noundef nonnull %.str.5.sink3790, i32 noundef %7671, ptr noundef nonnull @.str.239, ptr noundef nonnull @.str.1, i32 noundef 937, ptr noundef %7673, ptr noundef %7675, ptr noundef %7677, i32 noundef %7678) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7680:                                             ; preds = %7651
  %7681 = add nsw i32 %7566, 5
  store i32 %7681, ptr @test_count, align 4, !tbaa !5
  %7682 = getelementptr inbounds i8, ptr %7596, i64 32
  %7683 = load ptr, ptr %7682, align 8, !tbaa !72
  %7684 = getelementptr inbounds i8, ptr %7568, i64 32
  %7685 = load ptr, ptr %7684, align 8, !tbaa !72
  %7686 = icmp eq ptr %7683, %7685
  br i1 %7686, label %7709, label %7687

7687:                                             ; preds = %7680
  %7688 = load i32, ptr %765, align 4, !tbaa !5
  %7689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7690 = call i32 @s2n_print_stacktrace(ptr noundef %7689) #11
  %7691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7692 = trunc nuw i8 %7691 to i1
  br i1 %7692, label %7693, label %7697

7693:                                             ; preds = %7687
  %7694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7695 = call i32 @fileno(ptr noundef %7694) #11
  %7696 = call i32 @isatty(i32 noundef %7695) #11
  %.not1039 = icmp eq i32 %7696, 0
  br i1 %.not1039, label %7697, label %7698

7697:                                             ; preds = %7693, %7687
  br label %7698

7698:                                             ; preds = %7693, %7697
  %.str.5.sink3799 = phi ptr [ @.str.5, %7697 ], [ @.str.2, %7693 ]
  store i32 %7688, ptr %765, align 4, !tbaa !5
  %7699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7700 = load i32, ptr @test_count, align 4, !tbaa !5
  %7701 = load i32, ptr %711, align 4, !tbaa !5
  %7702 = call ptr @s2n_strerror(i32 noundef %7701, ptr noundef nonnull @.str.4) #11
  %7703 = load i32, ptr %711, align 4, !tbaa !5
  %7704 = call ptr @s2n_strerror_debug(i32 noundef %7703, ptr noundef nonnull @.str.4) #11
  %7705 = load i32, ptr %765, align 4, !tbaa !5
  %7706 = call ptr @strerror(i32 noundef %7705) #11
  %7707 = load i32, ptr %765, align 4, !tbaa !5
  %7708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7699, ptr noundef nonnull %.str.5.sink3799, i32 noundef %7700, ptr noundef nonnull @.str.240, ptr noundef nonnull @.str.1, i32 noundef 939, ptr noundef %7702, ptr noundef %7704, ptr noundef %7706, i32 noundef %7707) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7709:                                             ; preds = %7680
  %7710 = add nsw i32 %7566, 6
  store i32 %7710, ptr @test_count, align 4, !tbaa !5
  %7711 = getelementptr inbounds i8, ptr %7596, i64 40
  %7712 = load ptr, ptr %7711, align 8, !tbaa !64
  %7713 = getelementptr inbounds i8, ptr %7568, i64 40
  %7714 = load ptr, ptr %7713, align 8, !tbaa !64
  %7715 = icmp eq ptr %7712, %7714
  br i1 %7715, label %7738, label %7716

7716:                                             ; preds = %7709
  %7717 = load i32, ptr %765, align 4, !tbaa !5
  %7718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7719 = call i32 @s2n_print_stacktrace(ptr noundef %7718) #11
  %7720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7721 = trunc nuw i8 %7720 to i1
  br i1 %7721, label %7722, label %7726

7722:                                             ; preds = %7716
  %7723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7724 = call i32 @fileno(ptr noundef %7723) #11
  %7725 = call i32 @isatty(i32 noundef %7724) #11
  %.not1040 = icmp eq i32 %7725, 0
  br i1 %.not1040, label %7726, label %7727

7726:                                             ; preds = %7722, %7716
  br label %7727

7727:                                             ; preds = %7722, %7726
  %.str.5.sink3808 = phi ptr [ @.str.5, %7726 ], [ @.str.2, %7722 ]
  store i32 %7717, ptr %765, align 4, !tbaa !5
  %7728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7729 = load i32, ptr @test_count, align 4, !tbaa !5
  %7730 = load i32, ptr %711, align 4, !tbaa !5
  %7731 = call ptr @s2n_strerror(i32 noundef %7730, ptr noundef nonnull @.str.4) #11
  %7732 = load i32, ptr %711, align 4, !tbaa !5
  %7733 = call ptr @s2n_strerror_debug(i32 noundef %7732, ptr noundef nonnull @.str.4) #11
  %7734 = load i32, ptr %765, align 4, !tbaa !5
  %7735 = call ptr @strerror(i32 noundef %7734) #11
  %7736 = load i32, ptr %765, align 4, !tbaa !5
  %7737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7728, ptr noundef nonnull %.str.5.sink3808, i32 noundef %7729, ptr noundef nonnull @.str.241, ptr noundef nonnull @.str.1, i32 noundef 940, ptr noundef %7731, ptr noundef %7733, ptr noundef %7735, i32 noundef %7736) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7738:                                             ; preds = %7709
  %7739 = add nsw i32 %7566, 7
  store i32 %7739, ptr @test_count, align 4, !tbaa !5
  %7740 = getelementptr inbounds i8, ptr %7596, i64 48
  %7741 = load ptr, ptr %7740, align 8, !tbaa !81
  %7742 = getelementptr inbounds i8, ptr %7568, i64 48
  %7743 = load ptr, ptr %7742, align 8, !tbaa !81
  %7744 = icmp eq ptr %7741, %7743
  br i1 %7744, label %7767, label %7745

7745:                                             ; preds = %7738
  %7746 = load i32, ptr %765, align 4, !tbaa !5
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = call i32 @s2n_print_stacktrace(ptr noundef %7747) #11
  %7749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7750 = trunc nuw i8 %7749 to i1
  br i1 %7750, label %7751, label %7755

7751:                                             ; preds = %7745
  %7752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7753 = call i32 @fileno(ptr noundef %7752) #11
  %7754 = call i32 @isatty(i32 noundef %7753) #11
  %.not1041 = icmp eq i32 %7754, 0
  br i1 %.not1041, label %7755, label %7756

7755:                                             ; preds = %7751, %7745
  br label %7756

7756:                                             ; preds = %7751, %7755
  %.str.5.sink3817 = phi ptr [ @.str.5, %7755 ], [ @.str.2, %7751 ]
  store i32 %7746, ptr %765, align 4, !tbaa !5
  %7757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7758 = load i32, ptr @test_count, align 4, !tbaa !5
  %7759 = load i32, ptr %711, align 4, !tbaa !5
  %7760 = call ptr @s2n_strerror(i32 noundef %7759, ptr noundef nonnull @.str.4) #11
  %7761 = load i32, ptr %711, align 4, !tbaa !5
  %7762 = call ptr @s2n_strerror_debug(i32 noundef %7761, ptr noundef nonnull @.str.4) #11
  %7763 = load i32, ptr %765, align 4, !tbaa !5
  %7764 = call ptr @strerror(i32 noundef %7763) #11
  %7765 = load i32, ptr %765, align 4, !tbaa !5
  %7766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7757, ptr noundef nonnull %.str.5.sink3817, i32 noundef %7758, ptr noundef nonnull @.str.242, ptr noundef nonnull @.str.1, i32 noundef 941, ptr noundef %7760, ptr noundef %7762, ptr noundef %7764, i32 noundef %7765) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7767:                                             ; preds = %7738
  %7768 = add nsw i32 %7566, 8
  store i32 %7768, ptr @test_count, align 4, !tbaa !5
  %7769 = getelementptr inbounds i8, ptr %7596, i64 56
  %7770 = load i8, ptr %7769, align 8, !tbaa !82, !range !13, !noundef !14
  %7771 = getelementptr inbounds i8, ptr %7568, i64 56
  %7772 = load i8, ptr %7771, align 8, !tbaa !82, !range !13, !noundef !14
  %7773 = icmp eq i8 %7770, %7772
  br i1 %7773, label %7796, label %7774

7774:                                             ; preds = %7767
  %7775 = load i32, ptr %765, align 4, !tbaa !5
  %7776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7777 = call i32 @s2n_print_stacktrace(ptr noundef %7776) #11
  %7778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7779 = trunc nuw i8 %7778 to i1
  br i1 %7779, label %7780, label %7784

7780:                                             ; preds = %7774
  %7781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7782 = call i32 @fileno(ptr noundef %7781) #11
  %7783 = call i32 @isatty(i32 noundef %7782) #11
  %.not1042 = icmp eq i32 %7783, 0
  br i1 %.not1042, label %7784, label %7785

7784:                                             ; preds = %7780, %7774
  br label %7785

7785:                                             ; preds = %7780, %7784
  %.str.5.sink3826 = phi ptr [ @.str.5, %7784 ], [ @.str.2, %7780 ]
  store i32 %7775, ptr %765, align 4, !tbaa !5
  %7786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7787 = load i32, ptr @test_count, align 4, !tbaa !5
  %7788 = load i32, ptr %711, align 4, !tbaa !5
  %7789 = call ptr @s2n_strerror(i32 noundef %7788, ptr noundef nonnull @.str.4) #11
  %7790 = load i32, ptr %711, align 4, !tbaa !5
  %7791 = call ptr @s2n_strerror_debug(i32 noundef %7790, ptr noundef nonnull @.str.4) #11
  %7792 = load i32, ptr %765, align 4, !tbaa !5
  %7793 = call ptr @strerror(i32 noundef %7792) #11
  %7794 = load i32, ptr %765, align 4, !tbaa !5
  %7795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7786, ptr noundef nonnull %.str.5.sink3826, i32 noundef %7787, ptr noundef nonnull @.str.243, ptr noundef nonnull @.str.1, i32 noundef 943, ptr noundef %7789, ptr noundef %7791, ptr noundef %7793, i32 noundef %7794) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7796:                                             ; preds = %7767
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #11
  %7797 = call i32 @s2n_cleanup() #11
  %7798 = icmp eq i32 %7797, -1
  br i1 %7798, label %7799, label %7821

7799:                                             ; preds = %7796
  %7800 = load i32, ptr %765, align 4, !tbaa !5
  %7801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7802 = call i32 @s2n_print_stacktrace(ptr noundef %7801) #11
  %7803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7804 = trunc nuw i8 %7803 to i1
  br i1 %7804, label %7805, label %7809

7805:                                             ; preds = %7799
  %7806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7807 = call i32 @fileno(ptr noundef %7806) #11
  %7808 = call i32 @isatty(i32 noundef %7807) #11
  %.not1047 = icmp eq i32 %7808, 0
  br i1 %.not1047, label %7809, label %7810

7809:                                             ; preds = %7805, %7799
  br label %7810

7810:                                             ; preds = %7805, %7809
  %.str.5.sink3835 = phi ptr [ @.str.5, %7809 ], [ @.str.2, %7805 ]
  store i32 %7800, ptr %765, align 4, !tbaa !5
  %7811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7812 = load i32, ptr @test_count, align 4, !tbaa !5
  %7813 = load i32, ptr %711, align 4, !tbaa !5
  %7814 = call ptr @s2n_strerror(i32 noundef %7813, ptr noundef nonnull @.str.4) #11
  %7815 = load i32, ptr %711, align 4, !tbaa !5
  %7816 = call ptr @s2n_strerror_debug(i32 noundef %7815, ptr noundef nonnull @.str.4) #11
  %7817 = load i32, ptr %765, align 4, !tbaa !5
  %7818 = call ptr @strerror(i32 noundef %7817) #11
  %7819 = load i32, ptr %765, align 4, !tbaa !5
  %7820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7811, ptr noundef nonnull %.str.5.sink3835, i32 noundef %7812, ptr noundef nonnull @.str.244, ptr noundef nonnull @.str.1, i32 noundef 946, ptr noundef %7814, ptr noundef %7816, ptr noundef %7818, i32 noundef %7819) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7821:                                             ; preds = %7796
  %7822 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %7823 = icmp eq i32 %7822, -1
  br i1 %7823, label %7824, label %7846

7824:                                             ; preds = %7821
  %7825 = load i32, ptr %765, align 4, !tbaa !5
  %7826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7827 = call i32 @s2n_print_stacktrace(ptr noundef %7826) #11
  %7828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7829 = trunc nuw i8 %7828 to i1
  br i1 %7829, label %7830, label %7834

7830:                                             ; preds = %7824
  %7831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7832 = call i32 @fileno(ptr noundef %7831) #11
  %7833 = call i32 @isatty(i32 noundef %7832) #11
  %.not1046 = icmp eq i32 %7833, 0
  br i1 %.not1046, label %7834, label %7835

7834:                                             ; preds = %7830, %7824
  br label %7835

7835:                                             ; preds = %7830, %7834
  %.str.5.sink3844 = phi ptr [ @.str.5, %7834 ], [ @.str.2, %7830 ]
  store i32 %7825, ptr %765, align 4, !tbaa !5
  %7836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7837 = load i32, ptr @test_count, align 4, !tbaa !5
  %7838 = load i32, ptr %711, align 4, !tbaa !5
  %7839 = call ptr @s2n_strerror(i32 noundef %7838, ptr noundef nonnull @.str.4) #11
  %7840 = load i32, ptr %711, align 4, !tbaa !5
  %7841 = call ptr @s2n_strerror_debug(i32 noundef %7840, ptr noundef nonnull @.str.4) #11
  %7842 = load i32, ptr %765, align 4, !tbaa !5
  %7843 = call ptr @strerror(i32 noundef %7842) #11
  %7844 = load i32, ptr %765, align 4, !tbaa !5
  %7845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7836, ptr noundef nonnull %.str.5.sink3844, i32 noundef %7837, ptr noundef nonnull @.str.245, ptr noundef nonnull @.str.1, i32 noundef 946, ptr noundef %7839, ptr noundef %7841, ptr noundef %7843, i32 noundef %7844) #13
  call void @exit(i32 noundef 1) #14
  unreachable

7846:                                             ; preds = %7821
  %7847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7848 = trunc nuw i8 %7847 to i1
  br i1 %7848, label %7849, label %7860

7849:                                             ; preds = %7846
  %7850 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7851 = call i32 @fileno(ptr noundef %7850) #11
  %7852 = call i32 @isatty(i32 noundef %7851) #11
  %.not1043 = icmp eq i32 %7852, 0
  br i1 %.not1043, label %7860, label %7853

7853:                                             ; preds = %7849
  %7854 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1045 = icmp eq i32 %7854, 0
  %7855 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1045, label %7858, label %7856

7856:                                             ; preds = %7853
  %7857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7855, ptr noundef nonnull @.str.246, i32 noundef %7854) #11
  br label %7867

7858:                                             ; preds = %7853
  %7859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7855, ptr noundef nonnull @.str.247) #11
  br label %7867

7860:                                             ; preds = %7849, %7846
  %7861 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1044 = icmp eq i32 %7861, 0
  %7862 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1044, label %7865, label %7863

7863:                                             ; preds = %7860
  %7864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7862, ptr noundef nonnull @.str.248, i32 noundef %7861) #11
  br label %7867

7865:                                             ; preds = %7860
  %7866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7862, ptr noundef nonnull @.str.249) #11
  br label %7867

7867:                                             ; preds = %7863, %7865, %7856, %7858
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  %7868 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  %7869 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  %7870 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #11
  %7871 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #11
  %7872 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_permutation_load_server_chain(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_rsa_pss_certs_supported(...) local_unnamed_addr #2

declare i32 @s2n_find_security_policy_from_version(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare zeroext i1 @s2n_ecc_is_extension_required(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_pq_kem_is_extension_required(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_kem_preferences_groups_available(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_libcrypto_supports_evp_kem() local_unnamed_addr #2

declare i32 @s2n_is_evp_apis_supported(...) local_unnamed_addr #2

declare zeroext i1 @s2n_libcrypto_supports_mlkem() local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

declare zeroext i1 @s2n_cipher_suite_uses_chacha20_alg(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 ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_security_policy(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_check_ecc_preferences_curves_list(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_validate_kem_preferences(ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_validate_certificate_signature_preferences(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #8

declare i32 @s2n_reset_tls13_in_test(...) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_security_policies_compatible(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_default_backwards_compatible(ptr noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef) local_unnamed_addr #0

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 0}
!16 = !{!"s2n_security_policy_selection", !10, i64 0, !10, i64 8, !6, i64 16, !6, i64 16, !6, i64 16}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!16, !10, i64 8}
!20 = !{!21, !10, i64 16}
!21 = !{!"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}
!22 = !{!23, !7, i64 16}
!23 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!24 = !{!23, !10, i64 24}
!25 = !{!26, !27, i64 8}
!26 = !{!"s2n_kem_group", !10, i64 0, !27, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!27 = !{!"short", !7, i64 0}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = !{!21, !10, i64 8}
!32 = !{!33, !27, i64 0}
!33 = !{!"s2n_cipher_preferences", !27, i64 0, !10, i64 8, !12, i64 16}
!34 = !{!33, !10, i64 8}
!35 = distinct !{!35, !29}
!36 = !{!37, !7, i64 100}
!37 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!38 = !{!21, !10, i64 24}
!39 = !{!40, !7, i64 0}
!40 = !{!"s2n_signature_preferences", !7, i64 0, !10, i64 8}
!41 = !{!40, !10, i64 8}
!42 = !{!43, !7, i64 24}
!43 = !{!"s2n_signature_scheme", !27, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !27, i64 26, !10, i64 32}
!44 = !{!43, !7, i64 25}
!45 = !{!43, !6, i64 20}
!46 = distinct !{!46, !29}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}
!49 = !{!23, !10, i64 8}
!50 = !{!23, !7, i64 0}
!51 = distinct !{!51, !29}
!52 = distinct !{!52, !29}
!53 = !{!54, !10, i64 56}
!54 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!55 = !{!33, !12, i64 16}
!56 = distinct !{!56, !29}
!57 = distinct !{!57, !29}
!58 = !{!21, !7, i64 0}
!59 = !{!60, !10, i64 96}
!60 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !61, i64 24, !62, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !18, i64 144, !10, i64 152, !18, i64 160, !18, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !63, i64 304, !27, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !62, i64 448}
!61 = !{!"certs_by_type", !7, i64 0}
!62 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!63 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!64 = !{!21, !10, i64 40}
!65 = !{!66, !7, i64 0}
!66 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!67 = !{!66, !10, i64 8}
!68 = distinct !{!68, !29}
!69 = !{!43, !6, i64 16}
!70 = !{!43, !10, i64 32}
!71 = distinct !{!71, !29}
!72 = !{!21, !10, i64 32}
!73 = !{!43, !27, i64 26}
!74 = distinct !{!74, !75}
!75 = !{!"llvm.loop.unroll.disable"}
!76 = distinct !{!76, !29}
!77 = distinct !{!77, !29}
!78 = !{!79, !10, i64 0}
!79 = !{!"s2n_supported_cert", !10, i64 0, !18, i64 8}
!80 = !{!79, !18, i64 8}
!81 = !{!21, !10, i64 48}
!82 = !{!21, !12, i64 56}


; Effective O3 passes: AggressiveInstCombinePass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass