; LLVM IR from aws/s2n-tls :: tests/unit (s2n_connection_preferences_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 = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_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_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [90 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 [14 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [65 x i8], align 1
@security_policy_20170328 = external constant %struct.s2n_security_policy, align 8
@.str.30 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@security_policy_test_all_tls13 = external constant %struct.s2n_security_policy, align 8
@.str.44 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [89 x i8], align 1
@security_policy_test_all_fips = external constant %struct.s2n_security_policy, align 8
@.str.56 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_null = external constant %struct.s2n_cipher_preferences, align 8
@.str.66 = external hidden unnamed_addr constant [64 x i8], align 1
@security_policy_null = external constant %struct.s2n_security_policy, align 8
@.str.67 = external hidden unnamed_addr constant [58 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.68 = external hidden unnamed_addr constant [58 x i8], align 1
@s2n_signature_preferences_null = external constant %struct.s2n_signature_preferences, align 8
@.str.69 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_ecc_preferences_null = external constant %struct.s2n_ecc_preferences, align 8
@.str.70 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [62 x i8], align 1
@__const.main.no_curve = external hidden unnamed_addr constant [5 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.88 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [45 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.90 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.95 = 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 ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca 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 i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca 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 i32, 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 ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca 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 ptr, align 8
  %112 = alloca ptr, align 8
  %113 = alloca ptr, align 8
  %114 = alloca ptr, align 8
  %115 = alloca ptr, align 8
  %116 = alloca ptr, align 8
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca ptr, align 8
  %136 = alloca ptr, align 8
  %137 = alloca ptr, align 8
  %138 = alloca ptr, align 8
  %139 = alloca ptr, align 8
  %140 = alloca ptr, align 8
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca 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 ptr, align 8
  %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 %struct.s2n_result, align 4
  %179 = alloca ptr, align 8
  %180 = alloca i32, align 4
  %181 = alloca ptr, align 8
  %182 = alloca [5 x i8], align 1
  %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
  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 %205

205:                                              ; preds = %2
  br label %206

206:                                              ; preds = %205
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %207 = load ptr, ptr @stdout, align 8, !tbaa !9
  %208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef @.str, ptr noundef @.str.1) #9
  %209 = load ptr, ptr @stdout, align 8, !tbaa !9
  %210 = call i32 @fflush(ptr noundef %209)
  br label %211

211:                                              ; preds = %206
  %212 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %213 = icmp eq i32 %212, -1
  br i1 %213, label %214, label %265

214:                                              ; preds = %211
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %217 = call ptr @__errno_location() #10
  %218 = load i32, ptr %217, align 4, !tbaa !5
  store i32 %218, ptr %6, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219)
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc i8 %221 to i1
  br i1 %222, label %223, label %245

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #9
  %226 = call i32 @isatty(i32 noundef %225) #9
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %245

228:                                              ; preds = %223
  %229 = load i32, ptr %6, align 4, !tbaa !5
  %230 = call ptr @__errno_location() #10
  store i32 %229, ptr %230, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror(i32 noundef %234, ptr noundef @.str.4)
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef @.str.4)
  %239 = call ptr @__errno_location() #10
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @strerror(i32 noundef %240) #9
  %242 = call ptr @__errno_location() #10
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef @.str.2, i32 noundef %232, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 28, ptr noundef %235, ptr noundef %238, ptr noundef %241, i32 noundef %243) #9
  br label %262

245:                                              ; preds = %223, %216
  %246 = load i32, ptr %6, align 4, !tbaa !5
  %247 = call ptr @__errno_location() #10
  store i32 %246, ptr %247, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror(i32 noundef %251, ptr noundef @.str.4)
  %253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @s2n_strerror_debug(i32 noundef %254, ptr noundef @.str.4)
  %256 = call ptr @__errno_location() #10
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @strerror(i32 noundef %257) #9
  %259 = call ptr @__errno_location() #10
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef @.str.5, i32 noundef %249, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 28, ptr noundef %252, ptr noundef %255, ptr noundef %258, i32 noundef %260) #9
  br label %262

262:                                              ; preds = %245, %228
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %263

263:                                              ; preds = %262
  call void @exit(i32 noundef 1) #11
  unreachable

264:                                              ; No predecessors!
  br label %265

265:                                              ; preds = %264, %211
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  %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_enable_atexit()
  %271 = icmp eq i32 %270, -1
  br i1 %271, label %272, label %323

272:                                              ; preds = %267
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %275 = call ptr @__errno_location() #10
  %276 = load i32, ptr %275, align 4, !tbaa !5
  store i32 %276, ptr %7, align 4, !tbaa !5
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @s2n_print_stacktrace(ptr noundef %277)
  %279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %280 = trunc i8 %279 to i1
  br i1 %280, label %281, label %303

281:                                              ; preds = %274
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = call i32 @fileno(ptr noundef %282) #9
  %284 = call i32 @isatty(i32 noundef %283) #9
  %285 = icmp ne i32 %284, 0
  br i1 %285, label %286, label %303

286:                                              ; preds = %281
  %287 = load i32, ptr %7, align 4, !tbaa !5
  %288 = call ptr @__errno_location() #10
  store i32 %287, ptr %288, align 4, !tbaa !5
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = load i32, ptr @test_count, align 4, !tbaa !5
  %291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror(i32 noundef %292, ptr noundef @.str.4)
  %294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror_debug(i32 noundef %295, ptr noundef @.str.4)
  %297 = call ptr @__errno_location() #10
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call ptr @strerror(i32 noundef %298) #9
  %300 = call ptr @__errno_location() #10
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %289, ptr noundef @.str.2, i32 noundef %290, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 28, ptr noundef %293, ptr noundef %296, ptr noundef %299, i32 noundef %301) #9
  br label %320

303:                                              ; preds = %281, %274
  %304 = load i32, ptr %7, align 4, !tbaa !5
  %305 = call ptr @__errno_location() #10
  store i32 %304, ptr %305, align 4, !tbaa !5
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror(i32 noundef %309, ptr noundef @.str.4)
  %311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror_debug(i32 noundef %312, ptr noundef @.str.4)
  %314 = call ptr @__errno_location() #10
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = call ptr @strerror(i32 noundef %315) #9
  %317 = call ptr @__errno_location() #10
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %306, ptr noundef @.str.5, i32 noundef %307, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 28, ptr noundef %310, ptr noundef %313, ptr noundef %316, i32 noundef %318) #9
  br label %320

320:                                              ; preds = %303, %286
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %321

321:                                              ; preds = %320
  call void @exit(i32 noundef 1) #11
  unreachable

322:                                              ; No predecessors!
  br label %323

323:                                              ; preds = %322, %267
  br label %324

324:                                              ; preds = %323
  br label %325

325:                                              ; preds = %324
  br label %326

326:                                              ; preds = %325
  %327 = call i32 @s2n_init()
  %328 = icmp eq i32 %327, -1
  br i1 %328, label %329, label %380

329:                                              ; preds = %326
  br label %330

330:                                              ; preds = %329
  br label %331

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

338:                                              ; preds = %331
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @fileno(ptr noundef %339) #9
  %341 = call i32 @isatty(i32 noundef %340) #9
  %342 = icmp ne i32 %341, 0
  br i1 %342, label %343, label %360

343:                                              ; preds = %338
  %344 = load i32, ptr %8, align 4, !tbaa !5
  %345 = call ptr @__errno_location() #10
  store i32 %344, ptr %345, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror(i32 noundef %349, ptr noundef @.str.4)
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror_debug(i32 noundef %352, ptr noundef @.str.4)
  %354 = call ptr @__errno_location() #10
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @strerror(i32 noundef %355) #9
  %357 = call ptr @__errno_location() #10
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %346, ptr noundef @.str.2, i32 noundef %347, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 28, ptr noundef %350, ptr noundef %353, ptr noundef %356, i32 noundef %358) #9
  br label %377

360:                                              ; preds = %338, %331
  %361 = load i32, ptr %8, align 4, !tbaa !5
  %362 = call ptr @__errno_location() #10
  store i32 %361, ptr %362, align 4, !tbaa !5
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = load i32, ptr @test_count, align 4, !tbaa !5
  %365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror(i32 noundef %366, ptr noundef @.str.4)
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror_debug(i32 noundef %369, ptr noundef @.str.4)
  %371 = call ptr @__errno_location() #10
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call ptr @strerror(i32 noundef %372) #9
  %374 = call ptr @__errno_location() #10
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %363, ptr noundef @.str.5, i32 noundef %364, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 28, ptr noundef %367, ptr noundef %370, ptr noundef %373, i32 noundef %375) #9
  br label %377

377:                                              ; preds = %360, %343
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %378

378:                                              ; preds = %377
  call void @exit(i32 noundef 1) #11
  unreachable

379:                                              ; No predecessors!
  br label %380

380:                                              ; preds = %379, %326
  br label %381

381:                                              ; preds = %380
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr @test_count, align 4, !tbaa !5
  %386 = call i32 (...) @s2n_disable_tls13_in_test()
  %387 = icmp eq i32 %386, -1
  br i1 %387, label %388, label %439

388:                                              ; preds = %383
  br label %389

389:                                              ; preds = %388
  br label %390

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

397:                                              ; preds = %390
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = call i32 @fileno(ptr noundef %398) #9
  %400 = call i32 @isatty(i32 noundef %399) #9
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %402, label %419

402:                                              ; preds = %397
  %403 = load i32, ptr %9, align 4, !tbaa !5
  %404 = call ptr @__errno_location() #10
  store i32 %403, ptr %404, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror(i32 noundef %408, ptr noundef @.str.4)
  %410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror_debug(i32 noundef %411, ptr noundef @.str.4)
  %413 = call ptr @__errno_location() #10
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @strerror(i32 noundef %414) #9
  %416 = call ptr @__errno_location() #10
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %405, ptr noundef @.str.2, i32 noundef %406, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 29, ptr noundef %409, ptr noundef %412, ptr noundef %415, i32 noundef %417) #9
  br label %436

419:                                              ; preds = %397, %390
  %420 = load i32, ptr %9, align 4, !tbaa !5
  %421 = call ptr @__errno_location() #10
  store i32 %420, ptr %421, align 4, !tbaa !5
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef @.str.4)
  %427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @s2n_strerror_debug(i32 noundef %428, ptr noundef @.str.4)
  %430 = call ptr @__errno_location() #10
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @strerror(i32 noundef %431) #9
  %433 = call ptr @__errno_location() #10
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef @.str.5, i32 noundef %423, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 29, ptr noundef %426, ptr noundef %429, ptr noundef %432, i32 noundef %434) #9
  br label %436

436:                                              ; preds = %419, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %437

437:                                              ; preds = %436
  call void @exit(i32 noundef 1) #11
  unreachable

438:                                              ; No predecessors!
  br label %439

439:                                              ; preds = %438, %383
  br label %440

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

441:                                              ; preds = %440
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr @test_count, align 4, !tbaa !5
  %444 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.9, ptr noundef %11)
  %445 = icmp eq i32 %444, -1
  br i1 %445, label %446, label %499

446:                                              ; preds = %441
  br label %447

447:                                              ; preds = %446
  br label %448

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

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

460:                                              ; preds = %455
  %461 = load i32, ptr %13, align 4, !tbaa !5
  %462 = call ptr @__errno_location() #10
  store i32 %461, ptr %462, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %466, ptr noundef @.str.4)
  %468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror_debug(i32 noundef %469, ptr noundef @.str.4)
  %471 = call ptr @__errno_location() #10
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @strerror(i32 noundef %472) #9
  %474 = call ptr @__errno_location() #10
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef @.str.2, i32 noundef %464, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 32, ptr noundef %467, ptr noundef %470, ptr noundef %473, i32 noundef %475) #9
  br label %494

477:                                              ; preds = %455, %448
  %478 = load i32, ptr %13, align 4, !tbaa !5
  %479 = call ptr @__errno_location() #10
  store i32 %478, ptr %479, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror(i32 noundef %483, ptr noundef @.str.4)
  %485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror_debug(i32 noundef %486, ptr noundef @.str.4)
  %488 = call ptr @__errno_location() #10
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call ptr @strerror(i32 noundef %489) #9
  %491 = call ptr @__errno_location() #10
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %480, ptr noundef @.str.5, i32 noundef %481, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 32, ptr noundef %484, ptr noundef %487, ptr noundef %490, i32 noundef %492) #9
  br label %494

494:                                              ; preds = %477, %460
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %495

495:                                              ; preds = %494
  br label %496

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

497:                                              ; No predecessors!
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498, %441
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr @test_count, align 4, !tbaa !5
  %505 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.11, ptr noundef %12)
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %507, label %560

507:                                              ; preds = %502
  br label %508

508:                                              ; preds = %507
  br label %509

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

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

521:                                              ; preds = %516
  %522 = load i32, ptr %14, align 4, !tbaa !5
  %523 = call ptr @__errno_location() #10
  store i32 %522, ptr %523, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror(i32 noundef %527, ptr noundef @.str.4)
  %529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef @.str.4)
  %532 = call ptr @__errno_location() #10
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #9
  %535 = call ptr @__errno_location() #10
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef @.str.2, i32 noundef %525, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %528, ptr noundef %531, ptr noundef %534, i32 noundef %536) #9
  br label %555

538:                                              ; preds = %516, %509
  %539 = load i32, ptr %14, align 4, !tbaa !5
  %540 = call ptr @__errno_location() #10
  store i32 %539, ptr %540, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = load i32, ptr @test_count, align 4, !tbaa !5
  %543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror(i32 noundef %544, ptr noundef @.str.4)
  %546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror_debug(i32 noundef %547, ptr noundef @.str.4)
  %549 = call ptr @__errno_location() #10
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @strerror(i32 noundef %550) #9
  %552 = call ptr @__errno_location() #10
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %541, ptr noundef @.str.5, i32 noundef %542, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %545, ptr noundef %548, ptr noundef %551, i32 noundef %553) #9
  br label %555

555:                                              ; preds = %538, %521
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %556

556:                                              ; preds = %555
  br label %557

557:                                              ; preds = %556
  call void @exit(i32 noundef 1) #11
  unreachable

558:                                              ; No predecessors!
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559, %502
  br label %561

561:                                              ; preds = %560
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.13, ptr noundef %10)
  %567 = icmp eq i32 %566, -1
  br i1 %567, label %568, label %621

568:                                              ; preds = %563
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %571 = call ptr @__errno_location() #10
  %572 = load i32, ptr %571, align 4, !tbaa !5
  store i32 %572, ptr %15, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @s2n_print_stacktrace(ptr noundef %573)
  %575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %576 = trunc i8 %575 to i1
  br i1 %576, label %577, label %599

577:                                              ; preds = %570
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = call i32 @fileno(ptr noundef %578) #9
  %580 = call i32 @isatty(i32 noundef %579) #9
  %581 = icmp ne i32 %580, 0
  br i1 %581, label %582, label %599

582:                                              ; preds = %577
  %583 = load i32, ptr %15, align 4, !tbaa !5
  %584 = call ptr @__errno_location() #10
  store i32 %583, ptr %584, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror(i32 noundef %588, ptr noundef @.str.4)
  %590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror_debug(i32 noundef %591, ptr noundef @.str.4)
  %593 = call ptr @__errno_location() #10
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @strerror(i32 noundef %594) #9
  %596 = call ptr @__errno_location() #10
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %585, ptr noundef @.str.2, i32 noundef %586, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 34, ptr noundef %589, ptr noundef %592, ptr noundef %595, i32 noundef %597) #9
  br label %616

599:                                              ; preds = %577, %570
  %600 = load i32, ptr %15, align 4, !tbaa !5
  %601 = call ptr @__errno_location() #10
  store i32 %600, ptr %601, align 4, !tbaa !5
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = load i32, ptr @test_count, align 4, !tbaa !5
  %604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror(i32 noundef %605, ptr noundef @.str.4)
  %607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror_debug(i32 noundef %608, ptr noundef @.str.4)
  %610 = call ptr @__errno_location() #10
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call ptr @strerror(i32 noundef %611) #9
  %613 = call ptr @__errno_location() #10
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %602, ptr noundef @.str.5, i32 noundef %603, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 34, ptr noundef %606, ptr noundef %609, ptr noundef %612, i32 noundef %614) #9
  br label %616

616:                                              ; preds = %599, %582
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %617

617:                                              ; preds = %616
  br label %618

618:                                              ; preds = %617
  call void @exit(i32 noundef 1) #11
  unreachable

619:                                              ; No predecessors!
  br label %620

620:                                              ; preds = %619
  br label %621

621:                                              ; preds = %620, %563
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622
  %624 = call zeroext i1 @s2n_is_in_fips_mode()
  br i1 %624, label %2184, label %625

625:                                              ; preds = %623
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  store ptr null, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  store ptr null, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  store ptr null, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store ptr null, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  store ptr null, ptr %20, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  store ptr null, ptr %21, align 8, !tbaa !9
  br label %626

626:                                              ; preds = %625
  %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 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %629, ptr %16, align 8, !tbaa !9
  %630 = icmp eq ptr %629, null
  br i1 %630, label %631, label %684

631:                                              ; preds = %626
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %634 = call ptr @__errno_location() #10
  %635 = load i32, ptr %634, align 4, !tbaa !5
  store i32 %635, ptr %22, align 4, !tbaa !5
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @s2n_print_stacktrace(ptr noundef %636)
  %638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %639 = trunc i8 %638 to i1
  br i1 %639, label %640, label %662

640:                                              ; preds = %633
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = call i32 @fileno(ptr noundef %641) #9
  %643 = call i32 @isatty(i32 noundef %642) #9
  %644 = icmp ne i32 %643, 0
  br i1 %644, label %645, label %662

645:                                              ; preds = %640
  %646 = load i32, ptr %22, align 4, !tbaa !5
  %647 = call ptr @__errno_location() #10
  store i32 %646, ptr %647, align 4, !tbaa !5
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror(i32 noundef %651, ptr noundef @.str.4)
  %653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror_debug(i32 noundef %654, ptr noundef @.str.4)
  %656 = call ptr @__errno_location() #10
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call ptr @strerror(i32 noundef %657) #9
  %659 = call ptr @__errno_location() #10
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %648, ptr noundef @.str.2, i32 noundef %649, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 45, ptr noundef %652, ptr noundef %655, ptr noundef %658, i32 noundef %660) #9
  br label %679

662:                                              ; preds = %640, %633
  %663 = load i32, ptr %22, align 4, !tbaa !5
  %664 = call ptr @__errno_location() #10
  store i32 %663, ptr %664, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror(i32 noundef %668, ptr noundef @.str.4)
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror_debug(i32 noundef %671, ptr noundef @.str.4)
  %673 = call ptr @__errno_location() #10
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @strerror(i32 noundef %674) #9
  %676 = call ptr @__errno_location() #10
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef @.str.5, i32 noundef %666, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 45, ptr noundef %669, ptr noundef %672, ptr noundef %675, i32 noundef %677) #9
  br label %679

679:                                              ; preds = %662, %645
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  call void @exit(i32 noundef 1) #11
  unreachable

682:                                              ; No predecessors!
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683, %626
  br label %685

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = add nsw i32 %688, 1
  store i32 %689, ptr @test_count, align 4, !tbaa !5
  %690 = load ptr, ptr %16, align 8, !tbaa !9
  %691 = getelementptr inbounds %struct.s2n_connection, ptr %690, i32 0, i32 2
  %692 = load ptr, ptr %691, align 8, !tbaa !15
  %693 = icmp eq ptr %692, null
  br i1 %693, label %747, label %694

694:                                              ; preds = %687
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %697 = call ptr @__errno_location() #10
  %698 = load i32, ptr %697, align 4, !tbaa !5
  store i32 %698, ptr %23, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @s2n_print_stacktrace(ptr noundef %699)
  %701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc i8 %701 to i1
  br i1 %702, label %703, label %725

703:                                              ; preds = %696
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = call i32 @fileno(ptr noundef %704) #9
  %706 = call i32 @isatty(i32 noundef %705) #9
  %707 = icmp ne i32 %706, 0
  br i1 %707, label %708, label %725

708:                                              ; preds = %703
  %709 = load i32, ptr %23, align 4, !tbaa !5
  %710 = call ptr @__errno_location() #10
  store i32 %709, ptr %710, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = call ptr @s2n_strerror(i32 noundef %714, ptr noundef @.str.4)
  %716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror_debug(i32 noundef %717, ptr noundef @.str.4)
  %719 = call ptr @__errno_location() #10
  %720 = load i32, ptr %719, align 4, !tbaa !5
  %721 = call ptr @strerror(i32 noundef %720) #9
  %722 = call ptr @__errno_location() #10
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %711, ptr noundef @.str.2, i32 noundef %712, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 46, ptr noundef %715, ptr noundef %718, ptr noundef %721, i32 noundef %723) #9
  br label %742

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

742:                                              ; preds = %725, %708
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  call void @exit(i32 noundef 1) #11
  unreachable

745:                                              ; No predecessors!
  br label %746

746:                                              ; preds = %745
  br label %747

747:                                              ; preds = %746, %687
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr @test_count, align 4, !tbaa !5
  %753 = load ptr, ptr %16, align 8, !tbaa !9
  %754 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %753, ptr noundef %17)
  %755 = icmp eq i32 %754, -1
  br i1 %755, label %756, label %809

756:                                              ; preds = %750
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %759 = call ptr @__errno_location() #10
  %760 = load i32, ptr %759, align 4, !tbaa !5
  store i32 %760, ptr %24, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = call i32 @s2n_print_stacktrace(ptr noundef %761)
  %763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %764 = trunc i8 %763 to i1
  br i1 %764, label %765, label %787

765:                                              ; preds = %758
  %766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %767 = call i32 @fileno(ptr noundef %766) #9
  %768 = call i32 @isatty(i32 noundef %767) #9
  %769 = icmp ne i32 %768, 0
  br i1 %769, label %770, label %787

770:                                              ; preds = %765
  %771 = load i32, ptr %24, align 4, !tbaa !5
  %772 = call ptr @__errno_location() #10
  store i32 %771, ptr %772, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror(i32 noundef %776, ptr noundef @.str.4)
  %778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror_debug(i32 noundef %779, ptr noundef @.str.4)
  %781 = call ptr @__errno_location() #10
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = call ptr @strerror(i32 noundef %782) #9
  %784 = call ptr @__errno_location() #10
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %773, ptr noundef @.str.2, i32 noundef %774, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 48, ptr noundef %777, ptr noundef %780, ptr noundef %783, i32 noundef %785) #9
  br label %804

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

804:                                              ; preds = %787, %770
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  call void @exit(i32 noundef 1) #11
  unreachable

807:                                              ; No predecessors!
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808, %750
  br label %810

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = load ptr, ptr %17, align 8, !tbaa !9
  %816 = load ptr, ptr %10, align 8, !tbaa !9
  %817 = getelementptr inbounds %struct.s2n_security_policy, ptr %816, i32 0, i32 1
  %818 = load ptr, ptr %817, align 8, !tbaa !42
  %819 = icmp eq ptr %815, %818
  br i1 %819, label %873, label %820

820:                                              ; preds = %812
  br label %821

821:                                              ; preds = %820
  br label %822

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

829:                                              ; preds = %822
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @fileno(ptr noundef %830) #9
  %832 = call i32 @isatty(i32 noundef %831) #9
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %834, label %851

834:                                              ; preds = %829
  %835 = load i32, ptr %25, align 4, !tbaa !5
  %836 = call ptr @__errno_location() #10
  store i32 %835, ptr %836, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror(i32 noundef %840, ptr noundef @.str.4)
  %842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef @.str.4)
  %845 = call ptr @__errno_location() #10
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @strerror(i32 noundef %846) #9
  %848 = call ptr @__errno_location() #10
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef @.str.2, i32 noundef %838, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 49, ptr noundef %841, ptr noundef %844, ptr noundef %847, i32 noundef %849) #9
  br label %868

851:                                              ; preds = %829, %822
  %852 = load i32, ptr %25, align 4, !tbaa !5
  %853 = call ptr @__errno_location() #10
  store i32 %852, ptr %853, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef @.str.4)
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror_debug(i32 noundef %860, ptr noundef @.str.4)
  %862 = call ptr @__errno_location() #10
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #9
  %865 = call ptr @__errno_location() #10
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef @.str.5, i32 noundef %855, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 49, ptr noundef %858, ptr noundef %861, ptr noundef %864, i32 noundef %866) #9
  br label %868

868:                                              ; preds = %851, %834
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %869

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869
  call void @exit(i32 noundef 1) #11
  unreachable

871:                                              ; No predecessors!
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872, %812
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  br label %876

876:                                              ; preds = %875
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = load ptr, ptr %16, align 8, !tbaa !9
  %880 = call i32 @s2n_connection_get_security_policy(ptr noundef %879, ptr noundef %18)
  %881 = icmp eq i32 %880, -1
  br i1 %881, label %882, label %935

882:                                              ; preds = %876
  br label %883

883:                                              ; preds = %882
  br label %884

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

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

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

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

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

931:                                              ; preds = %930
  br label %932

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

933:                                              ; No predecessors!
  br label %934

934:                                              ; preds = %933
  br label %935

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

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr @test_count, align 4, !tbaa !5
  %941 = load ptr, ptr %18, align 8, !tbaa !9
  %942 = load ptr, ptr %10, align 8, !tbaa !9
  %943 = icmp eq ptr %941, %942
  br i1 %943, label %997, label %944

944:                                              ; preds = %938
  br label %945

945:                                              ; preds = %944
  br label %946

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

953:                                              ; preds = %946
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = call i32 @fileno(ptr noundef %954) #9
  %956 = call i32 @isatty(i32 noundef %955) #9
  %957 = icmp ne i32 %956, 0
  br i1 %957, label %958, label %975

958:                                              ; preds = %953
  %959 = load i32, ptr %27, align 4, !tbaa !5
  %960 = call ptr @__errno_location() #10
  store i32 %959, ptr %960, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef @.str.4)
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef @.str.4)
  %969 = call ptr @__errno_location() #10
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @strerror(i32 noundef %970) #9
  %972 = call ptr @__errno_location() #10
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef @.str.2, i32 noundef %962, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 52, ptr noundef %965, ptr noundef %968, ptr noundef %971, i32 noundef %973) #9
  br label %992

975:                                              ; preds = %953, %946
  %976 = load i32, ptr %27, align 4, !tbaa !5
  %977 = call ptr @__errno_location() #10
  store i32 %976, ptr %977, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror(i32 noundef %981, ptr noundef @.str.4)
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror_debug(i32 noundef %984, ptr noundef @.str.4)
  %986 = call ptr @__errno_location() #10
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @strerror(i32 noundef %987) #9
  %989 = call ptr @__errno_location() #10
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %978, ptr noundef @.str.5, i32 noundef %979, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 52, ptr noundef %982, ptr noundef %985, ptr noundef %988, i32 noundef %990) #9
  br label %992

992:                                              ; preds = %975, %958
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  call void @exit(i32 noundef 1) #11
  unreachable

995:                                              ; No predecessors!
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996, %938
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = add nsw i32 %1001, 1
  store i32 %1002, ptr @test_count, align 4, !tbaa !5
  %1003 = load ptr, ptr %16, align 8, !tbaa !9
  %1004 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %1003, ptr noundef %19)
  %1005 = icmp eq i32 %1004, -1
  br i1 %1005, label %1006, label %1059

1006:                                             ; preds = %1000
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

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

1015:                                             ; preds = %1008
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #9
  %1018 = call i32 @isatty(i32 noundef %1017) #9
  %1019 = icmp ne i32 %1018, 0
  br i1 %1019, label %1020, label %1037

1020:                                             ; preds = %1015
  %1021 = load i32, ptr %28, align 4, !tbaa !5
  %1022 = call ptr @__errno_location() #10
  store i32 %1021, ptr %1022, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef @.str.4)
  %1031 = call ptr @__errno_location() #10
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @strerror(i32 noundef %1032) #9
  %1034 = call ptr @__errno_location() #10
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef @.str.2, i32 noundef %1024, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1027, ptr noundef %1030, ptr noundef %1033, i32 noundef %1035) #9
  br label %1054

1037:                                             ; preds = %1015, %1008
  %1038 = load i32, ptr %28, align 4, !tbaa !5
  %1039 = call ptr @__errno_location() #10
  store i32 %1038, ptr %1039, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror(i32 noundef %1043, ptr noundef @.str.4)
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror_debug(i32 noundef %1046, ptr noundef @.str.4)
  %1048 = call ptr @__errno_location() #10
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #9
  %1051 = call ptr @__errno_location() #10
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef @.str.5, i32 noundef %1041, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1044, ptr noundef %1047, ptr noundef %1050, i32 noundef %1052) #9
  br label %1054

1054:                                             ; preds = %1037, %1020
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055
  call void @exit(i32 noundef 1) #11
  unreachable

1057:                                             ; No predecessors!
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058, %1000
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061
  %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 = load ptr, ptr %19, align 8, !tbaa !9
  %1066 = load ptr, ptr %10, align 8, !tbaa !9
  %1067 = getelementptr inbounds %struct.s2n_security_policy, ptr %1066, i32 0, i32 2
  %1068 = load ptr, ptr %1067, align 8, !tbaa !44
  %1069 = icmp eq ptr %1065, %1068
  br i1 %1069, label %1123, label %1070

1070:                                             ; preds = %1062
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

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

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

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

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

1118:                                             ; preds = %1101, %1084
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

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

1121:                                             ; No predecessors!
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122, %1062
  br label %1124

1124:                                             ; preds = %1123
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = add nsw i32 %1127, 1
  store i32 %1128, ptr @test_count, align 4, !tbaa !5
  %1129 = load ptr, ptr %16, align 8, !tbaa !9
  %1130 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %1129, ptr noundef %20)
  %1131 = icmp eq i32 %1130, -1
  br i1 %1131, label %1132, label %1185

1132:                                             ; preds = %1126
  br label %1133

1133:                                             ; preds = %1132
  br label %1134

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

1141:                                             ; preds = %1134
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @fileno(ptr noundef %1142) #9
  %1144 = call i32 @isatty(i32 noundef %1143) #9
  %1145 = icmp ne i32 %1144, 0
  br i1 %1145, label %1146, label %1163

1146:                                             ; preds = %1141
  %1147 = load i32, ptr %30, align 4, !tbaa !5
  %1148 = call ptr @__errno_location() #10
  store i32 %1147, ptr %1148, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef @.str.4)
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef @.str.4)
  %1157 = call ptr @__errno_location() #10
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #9
  %1160 = call ptr @__errno_location() #10
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef @.str.2, i32 noundef %1150, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1153, ptr noundef %1156, ptr noundef %1159, i32 noundef %1161) #9
  br label %1180

1163:                                             ; preds = %1141, %1134
  %1164 = load i32, ptr %30, align 4, !tbaa !5
  %1165 = call ptr @__errno_location() #10
  store i32 %1164, ptr %1165, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef @.str.4)
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef @.str.4)
  %1174 = call ptr @__errno_location() #10
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @strerror(i32 noundef %1175) #9
  %1177 = call ptr @__errno_location() #10
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef @.str.5, i32 noundef %1167, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1170, ptr noundef %1173, ptr noundef %1176, i32 noundef %1178) #9
  br label %1180

1180:                                             ; preds = %1163, %1146
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1181

1181:                                             ; preds = %1180
  br label %1182

1182:                                             ; preds = %1181
  call void @exit(i32 noundef 1) #11
  unreachable

1183:                                             ; No predecessors!
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184, %1126
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

1187:                                             ; preds = %1186
  br label %1188

1188:                                             ; preds = %1187
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = add nsw i32 %1189, 1
  store i32 %1190, ptr @test_count, align 4, !tbaa !5
  %1191 = load ptr, ptr %20, align 8, !tbaa !9
  %1192 = load ptr, ptr %10, align 8, !tbaa !9
  %1193 = getelementptr inbounds %struct.s2n_security_policy, ptr %1192, i32 0, i32 3
  %1194 = load ptr, ptr %1193, align 8, !tbaa !45
  %1195 = icmp eq ptr %1191, %1194
  br i1 %1195, label %1249, label %1196

1196:                                             ; preds = %1188
  br label %1197

1197:                                             ; preds = %1196
  br label %1198

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

1205:                                             ; preds = %1198
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = call i32 @fileno(ptr noundef %1206) #9
  %1208 = call i32 @isatty(i32 noundef %1207) #9
  %1209 = icmp ne i32 %1208, 0
  br i1 %1209, label %1210, label %1227

1210:                                             ; preds = %1205
  %1211 = load i32, ptr %31, align 4, !tbaa !5
  %1212 = call ptr @__errno_location() #10
  store i32 %1211, ptr %1212, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef @.str.4)
  %1218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef @.str.4)
  %1221 = call ptr @__errno_location() #10
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @strerror(i32 noundef %1222) #9
  %1224 = call ptr @__errno_location() #10
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1213, ptr noundef @.str.2, i32 noundef %1214, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1217, ptr noundef %1220, ptr noundef %1223, i32 noundef %1225) #9
  br label %1244

1227:                                             ; preds = %1205, %1198
  %1228 = load i32, ptr %31, align 4, !tbaa !5
  %1229 = call ptr @__errno_location() #10
  store i32 %1228, ptr %1229, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror(i32 noundef %1233, ptr noundef @.str.4)
  %1235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror_debug(i32 noundef %1236, ptr noundef @.str.4)
  %1238 = call ptr @__errno_location() #10
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #9
  %1241 = call ptr @__errno_location() #10
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef @.str.5, i32 noundef %1231, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1234, ptr noundef %1237, ptr noundef %1240, i32 noundef %1242) #9
  br label %1244

1244:                                             ; preds = %1227, %1210
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1245

1245:                                             ; preds = %1244
  br label %1246

1246:                                             ; preds = %1245
  call void @exit(i32 noundef 1) #11
  unreachable

1247:                                             ; No predecessors!
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248, %1188
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

1251:                                             ; preds = %1250
  br label %1252

1252:                                             ; preds = %1251
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = add nsw i32 %1253, 1
  store i32 %1254, ptr @test_count, align 4, !tbaa !5
  %1255 = load ptr, ptr %16, align 8, !tbaa !9
  %1256 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %1255, ptr noundef %21)
  %1257 = icmp eq i32 %1256, -1
  br i1 %1257, label %1258, label %1311

1258:                                             ; preds = %1252
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

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

1267:                                             ; preds = %1260
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = call i32 @fileno(ptr noundef %1268) #9
  %1270 = call i32 @isatty(i32 noundef %1269) #9
  %1271 = icmp ne i32 %1270, 0
  br i1 %1271, label %1272, label %1289

1272:                                             ; preds = %1267
  %1273 = load i32, ptr %32, align 4, !tbaa !5
  %1274 = call ptr @__errno_location() #10
  store i32 %1273, ptr %1274, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror(i32 noundef %1278, ptr noundef @.str.4)
  %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_debug(i32 noundef %1281, ptr noundef @.str.4)
  %1283 = call ptr @__errno_location() #10
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #9
  %1286 = call ptr @__errno_location() #10
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef @.str.2, i32 noundef %1276, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1279, ptr noundef %1282, ptr noundef %1285, i32 noundef %1287) #9
  br label %1306

1289:                                             ; preds = %1267, %1260
  %1290 = load i32, ptr %32, align 4, !tbaa !5
  %1291 = call ptr @__errno_location() #10
  store i32 %1290, ptr %1291, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef @.str.4)
  %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_debug(i32 noundef %1298, ptr noundef @.str.4)
  %1300 = call ptr @__errno_location() #10
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #9
  %1303 = call ptr @__errno_location() #10
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef @.str.5, i32 noundef %1293, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1296, ptr noundef %1299, ptr noundef %1302, i32 noundef %1304) #9
  br label %1306

1306:                                             ; preds = %1289, %1272
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1307

1307:                                             ; preds = %1306
  br label %1308

1308:                                             ; preds = %1307
  call void @exit(i32 noundef 1) #11
  unreachable

1309:                                             ; No predecessors!
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310, %1252
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313
  %1315 = load i32, ptr @test_count, align 4, !tbaa !5
  %1316 = add nsw i32 %1315, 1
  store i32 %1316, ptr @test_count, align 4, !tbaa !5
  %1317 = load ptr, ptr %21, align 8, !tbaa !9
  %1318 = load ptr, ptr %10, align 8, !tbaa !9
  %1319 = getelementptr inbounds %struct.s2n_security_policy, ptr %1318, i32 0, i32 5
  %1320 = load ptr, ptr %1319, align 8, !tbaa !46
  %1321 = icmp eq ptr %1317, %1320
  br i1 %1321, label %1375, label %1322

1322:                                             ; preds = %1314
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

1324:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1325 = call ptr @__errno_location() #10
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  store i32 %1326, ptr %33, 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) #9
  %1334 = call i32 @isatty(i32 noundef %1333) #9
  %1335 = icmp ne i32 %1334, 0
  br i1 %1335, label %1336, label %1353

1336:                                             ; preds = %1331
  %1337 = load i32, ptr %33, align 4, !tbaa !5
  %1338 = call ptr @__errno_location() #10
  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() #10
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #9
  %1350 = call ptr @__errno_location() #10
  %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.26, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #9
  br label %1370

1353:                                             ; preds = %1331, %1324
  %1354 = load i32, ptr %33, align 4, !tbaa !5
  %1355 = call ptr @__errno_location() #10
  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() #10
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @strerror(i32 noundef %1365) #9
  %1367 = call ptr @__errno_location() #10
  %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.26, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1360, ptr noundef %1363, ptr noundef %1366, i32 noundef %1368) #9
  br label %1370

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

1371:                                             ; preds = %1370
  br label %1372

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

1373:                                             ; No predecessors!
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

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

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = load ptr, ptr %16, align 8, !tbaa !9
  %1382 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1381, ptr noundef @.str.27)
  %1383 = icmp eq i32 %1382, -1
  br i1 %1383, label %1384, label %1437

1384:                                             ; preds = %1378
  br label %1385

1385:                                             ; preds = %1384
  br label %1386

1386:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1387 = call ptr @__errno_location() #10
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  store i32 %1388, ptr %34, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @s2n_print_stacktrace(ptr noundef %1389)
  %1391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1392 = trunc i8 %1391 to i1
  br i1 %1392, label %1393, label %1415

1393:                                             ; preds = %1386
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @fileno(ptr noundef %1394) #9
  %1396 = call i32 @isatty(i32 noundef %1395) #9
  %1397 = icmp ne i32 %1396, 0
  br i1 %1397, label %1398, label %1415

1398:                                             ; preds = %1393
  %1399 = load i32, ptr %34, align 4, !tbaa !5
  %1400 = call ptr @__errno_location() #10
  store i32 %1399, ptr %1400, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror(i32 noundef %1404, ptr noundef @.str.4)
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef @.str.4)
  %1409 = call ptr @__errno_location() #10
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #9
  %1412 = call ptr @__errno_location() #10
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef @.str.2, i32 noundef %1402, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1405, ptr noundef %1408, ptr noundef %1411, i32 noundef %1413) #9
  br label %1432

1415:                                             ; preds = %1393, %1386
  %1416 = load i32, ptr %34, align 4, !tbaa !5
  %1417 = call ptr @__errno_location() #10
  store i32 %1416, ptr %1417, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = load i32, ptr @test_count, align 4, !tbaa !5
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call ptr @__errno_location() #10
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #9
  %1429 = call ptr @__errno_location() #10
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef @.str.5, i32 noundef %1419, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1422, ptr noundef %1425, ptr noundef %1428, i32 noundef %1430) #9
  br label %1432

1432:                                             ; preds = %1415, %1398
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433
  call void @exit(i32 noundef 1) #11
  unreachable

1435:                                             ; No predecessors!
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436, %1378
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

1440:                                             ; preds = %1439
  %1441 = load i32, ptr @test_count, align 4, !tbaa !5
  %1442 = add nsw i32 %1441, 1
  store i32 %1442, ptr @test_count, align 4, !tbaa !5
  %1443 = load ptr, ptr %16, align 8, !tbaa !9
  %1444 = getelementptr inbounds %struct.s2n_connection, ptr %1443, i32 0, i32 2
  %1445 = load ptr, ptr %1444, align 8, !tbaa !15
  %1446 = icmp eq ptr %1445, null
  br i1 %1446, label %1447, label %1500

1447:                                             ; preds = %1440
  br label %1448

1448:                                             ; preds = %1447
  br label %1449

1449:                                             ; preds = %1448
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1450 = call ptr @__errno_location() #10
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  store i32 %1451, ptr %35, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452)
  %1454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1455 = trunc i8 %1454 to i1
  br i1 %1455, label %1456, label %1478

1456:                                             ; preds = %1449
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @fileno(ptr noundef %1457) #9
  %1459 = call i32 @isatty(i32 noundef %1458) #9
  %1460 = icmp ne i32 %1459, 0
  br i1 %1460, label %1461, label %1478

1461:                                             ; preds = %1456
  %1462 = load i32, ptr %35, align 4, !tbaa !5
  %1463 = call ptr @__errno_location() #10
  store i32 %1462, ptr %1463, align 4, !tbaa !5
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = load i32, ptr @test_count, align 4, !tbaa !5
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror(i32 noundef %1467, ptr noundef @.str.4)
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror_debug(i32 noundef %1470, ptr noundef @.str.4)
  %1472 = call ptr @__errno_location() #10
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @strerror(i32 noundef %1473) #9
  %1475 = call ptr @__errno_location() #10
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1464, ptr noundef @.str.2, i32 noundef %1465, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1468, ptr noundef %1471, ptr noundef %1474, i32 noundef %1476) #9
  br label %1495

1478:                                             ; preds = %1456, %1449
  %1479 = load i32, ptr %35, align 4, !tbaa !5
  %1480 = call ptr @__errno_location() #10
  store i32 %1479, ptr %1480, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1484, ptr noundef @.str.4)
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef @.str.4)
  %1489 = call ptr @__errno_location() #10
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @strerror(i32 noundef %1490) #9
  %1492 = call ptr @__errno_location() #10
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef @.str.5, i32 noundef %1482, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1485, ptr noundef %1488, ptr noundef %1491, i32 noundef %1493) #9
  br label %1495

1495:                                             ; preds = %1478, %1461
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496
  call void @exit(i32 noundef 1) #11
  unreachable

1498:                                             ; No predecessors!
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

1500:                                             ; preds = %1499, %1440
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501
  store ptr null, ptr %17, align 8, !tbaa !9
  br label %1503

1503:                                             ; preds = %1502
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = add nsw i32 %1504, 1
  store i32 %1505, ptr @test_count, align 4, !tbaa !5
  %1506 = load ptr, ptr %16, align 8, !tbaa !9
  %1507 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %1506, ptr noundef %17)
  %1508 = icmp eq i32 %1507, -1
  br i1 %1508, label %1509, label %1562

1509:                                             ; preds = %1503
  br label %1510

1510:                                             ; preds = %1509
  br label %1511

1511:                                             ; preds = %1510
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1512 = call ptr @__errno_location() #10
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  store i32 %1513, ptr %36, align 4, !tbaa !5
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @s2n_print_stacktrace(ptr noundef %1514)
  %1516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1517 = trunc i8 %1516 to i1
  br i1 %1517, label %1518, label %1540

1518:                                             ; preds = %1511
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = call i32 @fileno(ptr noundef %1519) #9
  %1521 = call i32 @isatty(i32 noundef %1520) #9
  %1522 = icmp ne i32 %1521, 0
  br i1 %1522, label %1523, label %1540

1523:                                             ; preds = %1518
  %1524 = load i32, ptr %36, align 4, !tbaa !5
  %1525 = call ptr @__errno_location() #10
  store i32 %1524, ptr %1525, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror(i32 noundef %1529, ptr noundef @.str.4)
  %1531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror_debug(i32 noundef %1532, ptr noundef @.str.4)
  %1534 = call ptr @__errno_location() #10
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @strerror(i32 noundef %1535) #9
  %1537 = call ptr @__errno_location() #10
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1526, ptr noundef @.str.2, i32 noundef %1527, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1530, ptr noundef %1533, ptr noundef %1536, i32 noundef %1538) #9
  br label %1557

1540:                                             ; preds = %1518, %1511
  %1541 = load i32, ptr %36, align 4, !tbaa !5
  %1542 = call ptr @__errno_location() #10
  store i32 %1541, ptr %1542, align 4, !tbaa !5
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror(i32 noundef %1546, ptr noundef @.str.4)
  %1548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror_debug(i32 noundef %1549, ptr noundef @.str.4)
  %1551 = call ptr @__errno_location() #10
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @strerror(i32 noundef %1552) #9
  %1554 = call ptr @__errno_location() #10
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1543, ptr noundef @.str.5, i32 noundef %1544, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1547, ptr noundef %1550, ptr noundef %1553, i32 noundef %1555) #9
  br label %1557

1557:                                             ; preds = %1540, %1523
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  call void @exit(i32 noundef 1) #11
  unreachable

1560:                                             ; No predecessors!
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

1562:                                             ; preds = %1561, %1503
  br label %1563

1563:                                             ; preds = %1562
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr @test_count, align 4, !tbaa !5
  %1568 = load ptr, ptr %17, align 8, !tbaa !9
  %1569 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_20170328, i32 0, i32 1), align 8, !tbaa !42
  %1570 = icmp eq ptr %1568, %1569
  br i1 %1570, label %1624, label %1571

1571:                                             ; preds = %1565
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

1573:                                             ; preds = %1572
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1574 = call ptr @__errno_location() #10
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  store i32 %1575, ptr %37, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = call i32 @s2n_print_stacktrace(ptr noundef %1576)
  %1578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1579 = trunc i8 %1578 to i1
  br i1 %1579, label %1580, label %1602

1580:                                             ; preds = %1573
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = call i32 @fileno(ptr noundef %1581) #9
  %1583 = call i32 @isatty(i32 noundef %1582) #9
  %1584 = icmp ne i32 %1583, 0
  br i1 %1584, label %1585, label %1602

1585:                                             ; preds = %1580
  %1586 = load i32, ptr %37, align 4, !tbaa !5
  %1587 = call ptr @__errno_location() #10
  store i32 %1586, ptr %1587, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = load i32, ptr @test_count, align 4, !tbaa !5
  %1590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror(i32 noundef %1591, ptr noundef @.str.4)
  %1593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror_debug(i32 noundef %1594, ptr noundef @.str.4)
  %1596 = call ptr @__errno_location() #10
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = call ptr @strerror(i32 noundef %1597) #9
  %1599 = call ptr @__errno_location() #10
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1588, ptr noundef @.str.2, i32 noundef %1589, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1592, ptr noundef %1595, ptr noundef %1598, i32 noundef %1600) #9
  br label %1619

1602:                                             ; preds = %1580, %1573
  %1603 = load i32, ptr %37, align 4, !tbaa !5
  %1604 = call ptr @__errno_location() #10
  store i32 %1603, ptr %1604, align 4, !tbaa !5
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = load i32, ptr @test_count, align 4, !tbaa !5
  %1607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror(i32 noundef %1608, ptr noundef @.str.4)
  %1610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call ptr @s2n_strerror_debug(i32 noundef %1611, ptr noundef @.str.4)
  %1613 = call ptr @__errno_location() #10
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @strerror(i32 noundef %1614) #9
  %1616 = call ptr @__errno_location() #10
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1605, ptr noundef @.str.5, i32 noundef %1606, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1609, ptr noundef %1612, ptr noundef %1615, i32 noundef %1617) #9
  br label %1619

1619:                                             ; preds = %1602, %1585
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

1621:                                             ; preds = %1620
  call void @exit(i32 noundef 1) #11
  unreachable

1622:                                             ; No predecessors!
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623, %1565
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

1626:                                             ; preds = %1625
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %1627

1627:                                             ; preds = %1626
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %1629 = add nsw i32 %1628, 1
  store i32 %1629, ptr @test_count, align 4, !tbaa !5
  %1630 = load ptr, ptr %16, align 8, !tbaa !9
  %1631 = call i32 @s2n_connection_get_security_policy(ptr noundef %1630, ptr noundef %18)
  %1632 = icmp eq i32 %1631, -1
  br i1 %1632, label %1633, label %1686

1633:                                             ; preds = %1627
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1636 = call ptr @__errno_location() #10
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  store i32 %1637, ptr %38, align 4, !tbaa !5
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @s2n_print_stacktrace(ptr noundef %1638)
  %1640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1641 = trunc i8 %1640 to i1
  br i1 %1641, label %1642, label %1664

1642:                                             ; preds = %1635
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = call i32 @fileno(ptr noundef %1643) #9
  %1645 = call i32 @isatty(i32 noundef %1644) #9
  %1646 = icmp ne i32 %1645, 0
  br i1 %1646, label %1647, label %1664

1647:                                             ; preds = %1642
  %1648 = load i32, ptr %38, align 4, !tbaa !5
  %1649 = call ptr @__errno_location() #10
  store i32 %1648, ptr %1649, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror(i32 noundef %1653, ptr noundef @.str.4)
  %1655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror_debug(i32 noundef %1656, ptr noundef @.str.4)
  %1658 = call ptr @__errno_location() #10
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #9
  %1661 = call ptr @__errno_location() #10
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef @.str.2, i32 noundef %1651, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1654, ptr noundef %1657, ptr noundef %1660, i32 noundef %1662) #9
  br label %1681

1664:                                             ; preds = %1642, %1635
  %1665 = load i32, ptr %38, align 4, !tbaa !5
  %1666 = call ptr @__errno_location() #10
  store i32 %1665, ptr %1666, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror(i32 noundef %1670, ptr noundef @.str.4)
  %1672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call ptr @s2n_strerror_debug(i32 noundef %1673, ptr noundef @.str.4)
  %1675 = call ptr @__errno_location() #10
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call ptr @strerror(i32 noundef %1676) #9
  %1678 = call ptr @__errno_location() #10
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1667, ptr noundef @.str.5, i32 noundef %1668, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1671, ptr noundef %1674, ptr noundef %1677, i32 noundef %1679) #9
  br label %1681

1681:                                             ; preds = %1664, %1647
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @exit(i32 noundef 1) #11
  unreachable

1684:                                             ; No predecessors!
  br label %1685

1685:                                             ; preds = %1684
  br label %1686

1686:                                             ; preds = %1685, %1627
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

1689:                                             ; preds = %1688
  %1690 = load i32, ptr @test_count, align 4, !tbaa !5
  %1691 = add nsw i32 %1690, 1
  store i32 %1691, ptr @test_count, align 4, !tbaa !5
  %1692 = load ptr, ptr %18, align 8, !tbaa !9
  %1693 = icmp eq ptr %1692, @security_policy_20170328
  br i1 %1693, label %1747, label %1694

1694:                                             ; preds = %1689
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1697 = call ptr @__errno_location() #10
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  store i32 %1698, ptr %39, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @s2n_print_stacktrace(ptr noundef %1699)
  %1701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1702 = trunc i8 %1701 to i1
  br i1 %1702, label %1703, label %1725

1703:                                             ; preds = %1696
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @fileno(ptr noundef %1704) #9
  %1706 = call i32 @isatty(i32 noundef %1705) #9
  %1707 = icmp ne i32 %1706, 0
  br i1 %1707, label %1708, label %1725

1708:                                             ; preds = %1703
  %1709 = load i32, ptr %39, align 4, !tbaa !5
  %1710 = call ptr @__errno_location() #10
  store i32 %1709, ptr %1710, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef @.str.4)
  %1716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror_debug(i32 noundef %1717, ptr noundef @.str.4)
  %1719 = call ptr @__errno_location() #10
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @strerror(i32 noundef %1720) #9
  %1722 = call ptr @__errno_location() #10
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef @.str.2, i32 noundef %1712, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1715, ptr noundef %1718, ptr noundef %1721, i32 noundef %1723) #9
  br label %1742

1725:                                             ; preds = %1703, %1696
  %1726 = load i32, ptr %39, align 4, !tbaa !5
  %1727 = call ptr @__errno_location() #10
  store i32 %1726, ptr %1727, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror(i32 noundef %1731, ptr noundef @.str.4)
  %1733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1734 = load i32, ptr %1733, align 4, !tbaa !5
  %1735 = call ptr @s2n_strerror_debug(i32 noundef %1734, ptr noundef @.str.4)
  %1736 = call ptr @__errno_location() #10
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @strerror(i32 noundef %1737) #9
  %1739 = call ptr @__errno_location() #10
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1728, ptr noundef @.str.5, i32 noundef %1729, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1732, ptr noundef %1735, ptr noundef %1738, i32 noundef %1740) #9
  br label %1742

1742:                                             ; preds = %1725, %1708
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

1744:                                             ; preds = %1743
  call void @exit(i32 noundef 1) #11
  unreachable

1745:                                             ; No predecessors!
  br label %1746

1746:                                             ; preds = %1745
  br label %1747

1747:                                             ; preds = %1746, %1689
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748
  store ptr null, ptr %19, align 8, !tbaa !9
  br label %1750

1750:                                             ; preds = %1749
  %1751 = load i32, ptr @test_count, align 4, !tbaa !5
  %1752 = add nsw i32 %1751, 1
  store i32 %1752, ptr @test_count, align 4, !tbaa !5
  %1753 = load ptr, ptr %16, align 8, !tbaa !9
  %1754 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %1753, ptr noundef %19)
  %1755 = icmp eq i32 %1754, -1
  br i1 %1755, label %1756, label %1809

1756:                                             ; preds = %1750
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1759 = call ptr @__errno_location() #10
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  store i32 %1760, ptr %40, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = call i32 @s2n_print_stacktrace(ptr noundef %1761)
  %1763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1764 = trunc i8 %1763 to i1
  br i1 %1764, label %1765, label %1787

1765:                                             ; preds = %1758
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = call i32 @fileno(ptr noundef %1766) #9
  %1768 = call i32 @isatty(i32 noundef %1767) #9
  %1769 = icmp ne i32 %1768, 0
  br i1 %1769, label %1770, label %1787

1770:                                             ; preds = %1765
  %1771 = load i32, ptr %40, align 4, !tbaa !5
  %1772 = call ptr @__errno_location() #10
  store i32 %1771, ptr %1772, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = load i32, ptr @test_count, align 4, !tbaa !5
  %1775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror(i32 noundef %1776, ptr noundef @.str.4)
  %1778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror_debug(i32 noundef %1779, ptr noundef @.str.4)
  %1781 = call ptr @__errno_location() #10
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call ptr @strerror(i32 noundef %1782) #9
  %1784 = call ptr @__errno_location() #10
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1773, ptr noundef @.str.2, i32 noundef %1774, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1777, ptr noundef %1780, ptr noundef %1783, i32 noundef %1785) #9
  br label %1804

1787:                                             ; preds = %1765, %1758
  %1788 = load i32, ptr %40, align 4, !tbaa !5
  %1789 = call ptr @__errno_location() #10
  store i32 %1788, ptr %1789, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror(i32 noundef %1793, ptr noundef @.str.4)
  %1795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call ptr @s2n_strerror_debug(i32 noundef %1796, ptr noundef @.str.4)
  %1798 = call ptr @__errno_location() #10
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call ptr @strerror(i32 noundef %1799) #9
  %1801 = call ptr @__errno_location() #10
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  %1803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef @.str.5, i32 noundef %1791, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1794, ptr noundef %1797, ptr noundef %1800, i32 noundef %1802) #9
  br label %1804

1804:                                             ; preds = %1787, %1770
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805
  call void @exit(i32 noundef 1) #11
  unreachable

1807:                                             ; No predecessors!
  br label %1808

1808:                                             ; preds = %1807
  br label %1809

1809:                                             ; preds = %1808, %1750
  br label %1810

1810:                                             ; preds = %1809
  br label %1811

1811:                                             ; preds = %1810
  br label %1812

1812:                                             ; preds = %1811
  %1813 = load i32, ptr @test_count, align 4, !tbaa !5
  %1814 = add nsw i32 %1813, 1
  store i32 %1814, ptr @test_count, align 4, !tbaa !5
  %1815 = load ptr, ptr %19, align 8, !tbaa !9
  %1816 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_20170328, i32 0, i32 2), align 8, !tbaa !44
  %1817 = icmp eq ptr %1815, %1816
  br i1 %1817, label %1871, label %1818

1818:                                             ; preds = %1812
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

1820:                                             ; preds = %1819
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1821 = call ptr @__errno_location() #10
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  store i32 %1822, ptr %41, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @s2n_print_stacktrace(ptr noundef %1823)
  %1825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1826 = trunc i8 %1825 to i1
  br i1 %1826, label %1827, label %1849

1827:                                             ; preds = %1820
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = call i32 @fileno(ptr noundef %1828) #9
  %1830 = call i32 @isatty(i32 noundef %1829) #9
  %1831 = icmp ne i32 %1830, 0
  br i1 %1831, label %1832, label %1849

1832:                                             ; preds = %1827
  %1833 = load i32, ptr %41, align 4, !tbaa !5
  %1834 = call ptr @__errno_location() #10
  store i32 %1833, ptr %1834, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror(i32 noundef %1838, ptr noundef @.str.4)
  %1840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef @.str.4)
  %1843 = call ptr @__errno_location() #10
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @strerror(i32 noundef %1844) #9
  %1846 = call ptr @__errno_location() #10
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1835, ptr noundef @.str.2, i32 noundef %1836, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1839, ptr noundef %1842, ptr noundef %1845, i32 noundef %1847) #9
  br label %1866

1849:                                             ; preds = %1827, %1820
  %1850 = load i32, ptr %41, align 4, !tbaa !5
  %1851 = call ptr @__errno_location() #10
  store i32 %1850, ptr %1851, align 4, !tbaa !5
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1853 = load i32, ptr @test_count, align 4, !tbaa !5
  %1854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @s2n_strerror(i32 noundef %1855, ptr noundef @.str.4)
  %1857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @s2n_strerror_debug(i32 noundef %1858, ptr noundef @.str.4)
  %1860 = call ptr @__errno_location() #10
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @strerror(i32 noundef %1861) #9
  %1863 = call ptr @__errno_location() #10
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1852, ptr noundef @.str.5, i32 noundef %1853, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1856, ptr noundef %1859, ptr noundef %1862, i32 noundef %1864) #9
  br label %1866

1866:                                             ; preds = %1849, %1832
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  call void @exit(i32 noundef 1) #11
  unreachable

1869:                                             ; No predecessors!
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870, %1812
  br label %1872

1872:                                             ; preds = %1871
  br label %1873

1873:                                             ; preds = %1872
  store ptr null, ptr %20, align 8, !tbaa !9
  br label %1874

1874:                                             ; preds = %1873
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = add nsw i32 %1875, 1
  store i32 %1876, ptr @test_count, align 4, !tbaa !5
  %1877 = load ptr, ptr %16, align 8, !tbaa !9
  %1878 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %1877, ptr noundef %20)
  %1879 = icmp eq i32 %1878, -1
  br i1 %1879, label %1880, label %1933

1880:                                             ; preds = %1874
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

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

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

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

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

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

1929:                                             ; preds = %1928
  br label %1930

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

1931:                                             ; No predecessors!
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

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

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  %1937 = load i32, ptr @test_count, align 4, !tbaa !5
  %1938 = add nsw i32 %1937, 1
  store i32 %1938, ptr @test_count, align 4, !tbaa !5
  %1939 = load ptr, ptr %20, align 8, !tbaa !9
  %1940 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_20170328, i32 0, i32 3), align 8, !tbaa !45
  %1941 = icmp eq ptr %1939, %1940
  br i1 %1941, label %1995, label %1942

1942:                                             ; preds = %1936
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

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

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

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

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

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

1991:                                             ; preds = %1990
  br label %1992

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

1993:                                             ; No predecessors!
  br label %1994

1994:                                             ; preds = %1993
  br label %1995

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

1996:                                             ; preds = %1995
  br label %1997

1997:                                             ; preds = %1996
  store ptr null, ptr %21, align 8, !tbaa !9
  br label %1998

1998:                                             ; preds = %1997
  %1999 = load i32, ptr @test_count, align 4, !tbaa !5
  %2000 = add nsw i32 %1999, 1
  store i32 %2000, ptr @test_count, align 4, !tbaa !5
  %2001 = load ptr, ptr %16, align 8, !tbaa !9
  %2002 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %2001, ptr noundef %21)
  %2003 = icmp eq i32 %2002, -1
  br i1 %2003, label %2004, label %2057

2004:                                             ; preds = %1998
  br label %2005

2005:                                             ; preds = %2004
  br label %2006

2006:                                             ; preds = %2005
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %2007 = call ptr @__errno_location() #10
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  store i32 %2008, ptr %44, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @s2n_print_stacktrace(ptr noundef %2009)
  %2011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2012 = trunc i8 %2011 to i1
  br i1 %2012, label %2013, label %2035

2013:                                             ; preds = %2006
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = call i32 @fileno(ptr noundef %2014) #9
  %2016 = call i32 @isatty(i32 noundef %2015) #9
  %2017 = icmp ne i32 %2016, 0
  br i1 %2017, label %2018, label %2035

2018:                                             ; preds = %2013
  %2019 = load i32, ptr %44, align 4, !tbaa !5
  %2020 = call ptr @__errno_location() #10
  store i32 %2019, ptr %2020, align 4, !tbaa !5
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = load i32, ptr @test_count, align 4, !tbaa !5
  %2023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call ptr @s2n_strerror(i32 noundef %2024, ptr noundef @.str.4)
  %2026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror_debug(i32 noundef %2027, ptr noundef @.str.4)
  %2029 = call ptr @__errno_location() #10
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @strerror(i32 noundef %2030) #9
  %2032 = call ptr @__errno_location() #10
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2021, ptr noundef @.str.2, i32 noundef %2022, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 83, ptr noundef %2025, ptr noundef %2028, ptr noundef %2031, i32 noundef %2033) #9
  br label %2052

2035:                                             ; preds = %2013, %2006
  %2036 = load i32, ptr %44, align 4, !tbaa !5
  %2037 = call ptr @__errno_location() #10
  store i32 %2036, ptr %2037, align 4, !tbaa !5
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = load i32, ptr @test_count, align 4, !tbaa !5
  %2040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @s2n_strerror(i32 noundef %2041, ptr noundef @.str.4)
  %2043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror_debug(i32 noundef %2044, ptr noundef @.str.4)
  %2046 = call ptr @__errno_location() #10
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @strerror(i32 noundef %2047) #9
  %2049 = call ptr @__errno_location() #10
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2038, ptr noundef @.str.5, i32 noundef %2039, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 83, ptr noundef %2042, ptr noundef %2045, ptr noundef %2048, i32 noundef %2050) #9
  br label %2052

2052:                                             ; preds = %2035, %2018
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

2054:                                             ; preds = %2053
  call void @exit(i32 noundef 1) #11
  unreachable

2055:                                             ; No predecessors!
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

2057:                                             ; preds = %2056, %1998
  br label %2058

2058:                                             ; preds = %2057
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

2060:                                             ; preds = %2059
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = add nsw i32 %2061, 1
  store i32 %2062, ptr @test_count, align 4, !tbaa !5
  %2063 = load ptr, ptr %21, align 8, !tbaa !9
  %2064 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_20170328, i32 0, i32 5), align 8, !tbaa !46
  %2065 = icmp eq ptr %2063, %2064
  br i1 %2065, label %2119, label %2066

2066:                                             ; preds = %2060
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

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

2075:                                             ; preds = %2068
  %2076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2077 = call i32 @fileno(ptr noundef %2076) #9
  %2078 = call i32 @isatty(i32 noundef %2077) #9
  %2079 = icmp ne i32 %2078, 0
  br i1 %2079, label %2080, label %2097

2080:                                             ; preds = %2075
  %2081 = load i32, ptr %45, align 4, !tbaa !5
  %2082 = call ptr @__errno_location() #10
  store i32 %2081, ptr %2082, align 4, !tbaa !5
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = load i32, ptr @test_count, align 4, !tbaa !5
  %2085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror(i32 noundef %2086, ptr noundef @.str.4)
  %2088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror_debug(i32 noundef %2089, ptr noundef @.str.4)
  %2091 = call ptr @__errno_location() #10
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @strerror(i32 noundef %2092) #9
  %2094 = call ptr @__errno_location() #10
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2083, ptr noundef @.str.2, i32 noundef %2084, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 84, ptr noundef %2087, ptr noundef %2090, ptr noundef %2093, i32 noundef %2095) #9
  br label %2114

2097:                                             ; preds = %2075, %2068
  %2098 = load i32, ptr %45, align 4, !tbaa !5
  %2099 = call ptr @__errno_location() #10
  store i32 %2098, ptr %2099, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror(i32 noundef %2103, ptr noundef @.str.4)
  %2105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror_debug(i32 noundef %2106, ptr noundef @.str.4)
  %2108 = call ptr @__errno_location() #10
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @strerror(i32 noundef %2109) #9
  %2111 = call ptr @__errno_location() #10
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2100, ptr noundef @.str.5, i32 noundef %2101, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 84, ptr noundef %2104, ptr noundef %2107, ptr noundef %2110, i32 noundef %2112) #9
  br label %2114

2114:                                             ; preds = %2097, %2080
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  call void @exit(i32 noundef 1) #11
  unreachable

2117:                                             ; No predecessors!
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

2119:                                             ; preds = %2118, %2060
  br label %2120

2120:                                             ; preds = %2119
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

2122:                                             ; preds = %2121
  %2123 = load i32, ptr @test_count, align 4, !tbaa !5
  %2124 = add nsw i32 %2123, 1
  store i32 %2124, ptr @test_count, align 4, !tbaa !5
  %2125 = load ptr, ptr %16, align 8, !tbaa !9
  %2126 = call i32 @s2n_connection_free(ptr noundef %2125)
  %2127 = icmp eq i32 %2126, -1
  br i1 %2127, label %2128, label %2181

2128:                                             ; preds = %2122
  br label %2129

2129:                                             ; preds = %2128
  br label %2130

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

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

2142:                                             ; preds = %2137
  %2143 = load i32, ptr %46, align 4, !tbaa !5
  %2144 = call ptr @__errno_location() #10
  store i32 %2143, ptr %2144, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror(i32 noundef %2148, ptr noundef @.str.4)
  %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_debug(i32 noundef %2151, ptr noundef @.str.4)
  %2153 = call ptr @__errno_location() #10
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #9
  %2156 = call ptr @__errno_location() #10
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2145, ptr noundef @.str.2, i32 noundef %2146, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 86, ptr noundef %2149, ptr noundef %2152, ptr noundef %2155, i32 noundef %2157) #9
  br label %2176

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

2176:                                             ; preds = %2159, %2142
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

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

2179:                                             ; No predecessors!
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180, %2122
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

2183:                                             ; preds = %2182
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %2184

2184:                                             ; preds = %2183, %623
  br label %2185

2185:                                             ; preds = %2184
  %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 = call i32 (...) @s2n_enable_tls13_in_test()
  %2189 = icmp eq i32 %2188, -1
  br i1 %2189, label %2190, label %2243

2190:                                             ; preds = %2185
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

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

2199:                                             ; preds = %2192
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = call i32 @fileno(ptr noundef %2200) #9
  %2202 = call i32 @isatty(i32 noundef %2201) #9
  %2203 = icmp ne i32 %2202, 0
  br i1 %2203, label %2204, label %2221

2204:                                             ; preds = %2199
  %2205 = load i32, ptr %47, align 4, !tbaa !5
  %2206 = call ptr @__errno_location() #10
  store i32 %2205, ptr %2206, align 4, !tbaa !5
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror(i32 noundef %2210, ptr noundef @.str.4)
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror_debug(i32 noundef %2213, ptr noundef @.str.4)
  %2215 = call ptr @__errno_location() #10
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @strerror(i32 noundef %2216) #9
  %2218 = call ptr @__errno_location() #10
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2207, ptr noundef @.str.2, i32 noundef %2208, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2211, ptr noundef %2214, ptr noundef %2217, i32 noundef %2219) #9
  br label %2238

2221:                                             ; preds = %2199, %2192
  %2222 = load i32, ptr %47, align 4, !tbaa !5
  %2223 = call ptr @__errno_location() #10
  store i32 %2222, ptr %2223, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = load i32, ptr @test_count, align 4, !tbaa !5
  %2226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror(i32 noundef %2227, ptr noundef @.str.4)
  %2229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror_debug(i32 noundef %2230, ptr noundef @.str.4)
  %2232 = call ptr @__errno_location() #10
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @strerror(i32 noundef %2233) #9
  %2235 = call ptr @__errno_location() #10
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2224, ptr noundef @.str.5, i32 noundef %2225, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2228, ptr noundef %2231, ptr noundef %2234, i32 noundef %2236) #9
  br label %2238

2238:                                             ; preds = %2221, %2204
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  call void @exit(i32 noundef 1) #11
  unreachable

2241:                                             ; No predecessors!
  br label %2242

2242:                                             ; preds = %2241
  br label %2243

2243:                                             ; preds = %2242, %2185
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

2245:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  store ptr null, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  store ptr null, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  store ptr null, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  store ptr null, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  store ptr null, ptr %52, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  store ptr null, ptr %53, align 8, !tbaa !9
  br label %2246

2246:                                             ; preds = %2245
  %2247 = load i32, ptr @test_count, align 4, !tbaa !5
  %2248 = add nsw i32 %2247, 1
  store i32 %2248, ptr @test_count, align 4, !tbaa !5
  %2249 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2249, ptr %48, align 8, !tbaa !9
  %2250 = icmp eq ptr %2249, null
  br i1 %2250, label %2251, label %2304

2251:                                             ; preds = %2246
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2254 = call ptr @__errno_location() #10
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  store i32 %2255, ptr %54, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = call i32 @s2n_print_stacktrace(ptr noundef %2256)
  %2258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2259 = trunc i8 %2258 to i1
  br i1 %2259, label %2260, label %2282

2260:                                             ; preds = %2253
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = call i32 @fileno(ptr noundef %2261) #9
  %2263 = call i32 @isatty(i32 noundef %2262) #9
  %2264 = icmp ne i32 %2263, 0
  br i1 %2264, label %2265, label %2282

2265:                                             ; preds = %2260
  %2266 = load i32, ptr %54, align 4, !tbaa !5
  %2267 = call ptr @__errno_location() #10
  store i32 %2266, ptr %2267, align 4, !tbaa !5
  %2268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2269 = load i32, ptr @test_count, align 4, !tbaa !5
  %2270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror(i32 noundef %2271, ptr noundef @.str.4)
  %2273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror_debug(i32 noundef %2274, ptr noundef @.str.4)
  %2276 = call ptr @__errno_location() #10
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @strerror(i32 noundef %2277) #9
  %2279 = call ptr @__errno_location() #10
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2268, ptr noundef @.str.2, i32 noundef %2269, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2272, ptr noundef %2275, ptr noundef %2278, i32 noundef %2280) #9
  br label %2299

2282:                                             ; preds = %2260, %2253
  %2283 = load i32, ptr %54, align 4, !tbaa !5
  %2284 = call ptr @__errno_location() #10
  store i32 %2283, ptr %2284, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = load i32, ptr @test_count, align 4, !tbaa !5
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror(i32 noundef %2288, ptr noundef @.str.4)
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call ptr @__errno_location() #10
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @strerror(i32 noundef %2294) #9
  %2296 = call ptr @__errno_location() #10
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2285, ptr noundef @.str.5, i32 noundef %2286, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2289, ptr noundef %2292, ptr noundef %2295, i32 noundef %2297) #9
  br label %2299

2299:                                             ; preds = %2282, %2265
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  call void @exit(i32 noundef 1) #11
  unreachable

2302:                                             ; No predecessors!
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

2304:                                             ; preds = %2303, %2246
  br label %2305

2305:                                             ; preds = %2304
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

2307:                                             ; preds = %2306
  %2308 = load i32, ptr @test_count, align 4, !tbaa !5
  %2309 = add nsw i32 %2308, 1
  store i32 %2309, ptr @test_count, align 4, !tbaa !5
  %2310 = load ptr, ptr %48, align 8, !tbaa !9
  %2311 = getelementptr inbounds %struct.s2n_connection, ptr %2310, i32 0, i32 2
  %2312 = load ptr, ptr %2311, align 8, !tbaa !15
  %2313 = icmp eq ptr %2312, null
  br i1 %2313, label %2367, label %2314

2314:                                             ; preds = %2307
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

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

2323:                                             ; preds = %2316
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = call i32 @fileno(ptr noundef %2324) #9
  %2326 = call i32 @isatty(i32 noundef %2325) #9
  %2327 = icmp ne i32 %2326, 0
  br i1 %2327, label %2328, label %2345

2328:                                             ; preds = %2323
  %2329 = load i32, ptr %55, align 4, !tbaa !5
  %2330 = call ptr @__errno_location() #10
  store i32 %2329, ptr %2330, align 4, !tbaa !5
  %2331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call ptr @s2n_strerror(i32 noundef %2334, ptr noundef @.str.4)
  %2336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror_debug(i32 noundef %2337, ptr noundef @.str.4)
  %2339 = call ptr @__errno_location() #10
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @strerror(i32 noundef %2340) #9
  %2342 = call ptr @__errno_location() #10
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2331, ptr noundef @.str.2, i32 noundef %2332, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2335, ptr noundef %2338, ptr noundef %2341, i32 noundef %2343) #9
  br label %2362

2345:                                             ; preds = %2323, %2316
  %2346 = load i32, ptr %55, align 4, !tbaa !5
  %2347 = call ptr @__errno_location() #10
  store i32 %2346, ptr %2347, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = load i32, ptr @test_count, align 4, !tbaa !5
  %2350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror(i32 noundef %2351, ptr noundef @.str.4)
  %2353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror_debug(i32 noundef %2354, ptr noundef @.str.4)
  %2356 = call ptr @__errno_location() #10
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @strerror(i32 noundef %2357) #9
  %2359 = call ptr @__errno_location() #10
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2348, ptr noundef @.str.5, i32 noundef %2349, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2352, ptr noundef %2355, ptr noundef %2358, i32 noundef %2360) #9
  br label %2362

2362:                                             ; preds = %2345, %2328
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2363

2363:                                             ; preds = %2362
  br label %2364

2364:                                             ; preds = %2363
  call void @exit(i32 noundef 1) #11
  unreachable

2365:                                             ; No predecessors!
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366, %2307
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369
  %2371 = load i32, ptr @test_count, align 4, !tbaa !5
  %2372 = add nsw i32 %2371, 1
  store i32 %2372, ptr @test_count, align 4, !tbaa !5
  %2373 = load ptr, ptr %48, align 8, !tbaa !9
  %2374 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %2373, ptr noundef %49)
  %2375 = icmp eq i32 %2374, -1
  br i1 %2375, label %2376, label %2429

2376:                                             ; preds = %2370
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2379 = call ptr @__errno_location() #10
  %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) #9
  %2388 = call i32 @isatty(i32 noundef %2387) #9
  %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() #10
  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() #10
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #9
  %2404 = call ptr @__errno_location() #10
  %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.17, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2397, ptr noundef %2400, ptr noundef %2403, i32 noundef %2405) #9
  br label %2424

2407:                                             ; preds = %2385, %2378
  %2408 = load i32, ptr %56, align 4, !tbaa !5
  %2409 = call ptr @__errno_location() #10
  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() #10
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @strerror(i32 noundef %2419) #9
  %2421 = call ptr @__errno_location() #10
  %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.17, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2414, ptr noundef %2417, ptr noundef %2420, i32 noundef %2422) #9
  br label %2424

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

2425:                                             ; preds = %2424
  br label %2426

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

2427:                                             ; No predecessors!
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428, %2370
  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 %49, align 8, !tbaa !9
  %2436 = load ptr, ptr %11, align 8, !tbaa !9
  %2437 = getelementptr inbounds %struct.s2n_security_policy, ptr %2436, i32 0, i32 1
  %2438 = load ptr, ptr %2437, align 8, !tbaa !42
  %2439 = icmp eq ptr %2435, %2438
  br i1 %2439, label %2493, label %2440

2440:                                             ; preds = %2432
  br label %2441

2441:                                             ; preds = %2440
  br label %2442

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

2449:                                             ; preds = %2442
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = call i32 @fileno(ptr noundef %2450) #9
  %2452 = call i32 @isatty(i32 noundef %2451) #9
  %2453 = icmp ne i32 %2452, 0
  br i1 %2453, label %2454, label %2471

2454:                                             ; preds = %2449
  %2455 = load i32, ptr %57, align 4, !tbaa !5
  %2456 = call ptr @__errno_location() #10
  store i32 %2455, ptr %2456, align 4, !tbaa !5
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2460, ptr noundef @.str.4)
  %2462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror_debug(i32 noundef %2463, ptr noundef @.str.4)
  %2465 = call ptr @__errno_location() #10
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #9
  %2468 = call ptr @__errno_location() #10
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2457, ptr noundef @.str.2, i32 noundef %2458, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2461, ptr noundef %2464, ptr noundef %2467, i32 noundef %2469) #9
  br label %2488

2471:                                             ; preds = %2449, %2442
  %2472 = load i32, ptr %57, align 4, !tbaa !5
  %2473 = call ptr @__errno_location() #10
  store i32 %2472, ptr %2473, align 4, !tbaa !5
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2477, ptr noundef @.str.4)
  %2479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror_debug(i32 noundef %2480, ptr noundef @.str.4)
  %2482 = call ptr @__errno_location() #10
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #9
  %2485 = call ptr @__errno_location() #10
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2474, ptr noundef @.str.5, i32 noundef %2475, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2478, ptr noundef %2481, ptr noundef %2484, i32 noundef %2486) #9
  br label %2488

2488:                                             ; preds = %2471, %2454
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  call void @exit(i32 noundef 1) #11
  unreachable

2491:                                             ; No predecessors!
  br label %2492

2492:                                             ; preds = %2491
  br label %2493

2493:                                             ; preds = %2492, %2432
  br label %2494

2494:                                             ; preds = %2493
  br label %2495

2495:                                             ; preds = %2494
  br label %2496

2496:                                             ; preds = %2495
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = add nsw i32 %2497, 1
  store i32 %2498, ptr @test_count, align 4, !tbaa !5
  %2499 = load ptr, ptr %48, align 8, !tbaa !9
  %2500 = call i32 @s2n_connection_get_security_policy(ptr noundef %2499, ptr noundef %50)
  %2501 = icmp eq i32 %2500, -1
  br i1 %2501, label %2502, label %2555

2502:                                             ; preds = %2496
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

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

2511:                                             ; preds = %2504
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @fileno(ptr noundef %2512) #9
  %2514 = call i32 @isatty(i32 noundef %2513) #9
  %2515 = icmp ne i32 %2514, 0
  br i1 %2515, label %2516, label %2533

2516:                                             ; preds = %2511
  %2517 = load i32, ptr %58, align 4, !tbaa !5
  %2518 = call ptr @__errno_location() #10
  store i32 %2517, ptr %2518, align 4, !tbaa !5
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror(i32 noundef %2522, ptr noundef @.str.4)
  %2524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror_debug(i32 noundef %2525, ptr noundef @.str.4)
  %2527 = call ptr @__errno_location() #10
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @strerror(i32 noundef %2528) #9
  %2530 = call ptr @__errno_location() #10
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2519, ptr noundef @.str.2, i32 noundef %2520, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2523, ptr noundef %2526, ptr noundef %2529, i32 noundef %2531) #9
  br label %2550

2533:                                             ; preds = %2511, %2504
  %2534 = load i32, ptr %58, align 4, !tbaa !5
  %2535 = call ptr @__errno_location() #10
  store i32 %2534, ptr %2535, align 4, !tbaa !5
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = load i32, ptr @test_count, align 4, !tbaa !5
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror(i32 noundef %2539, ptr noundef @.str.4)
  %2541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror_debug(i32 noundef %2542, ptr noundef @.str.4)
  %2544 = call ptr @__errno_location() #10
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @strerror(i32 noundef %2545) #9
  %2547 = call ptr @__errno_location() #10
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2536, ptr noundef @.str.5, i32 noundef %2537, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2540, ptr noundef %2543, ptr noundef %2546, i32 noundef %2548) #9
  br label %2550

2550:                                             ; preds = %2533, %2516
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2551
  call void @exit(i32 noundef 1) #11
  unreachable

2553:                                             ; No predecessors!
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554, %2496
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  br label %2558

2558:                                             ; preds = %2557
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = add nsw i32 %2559, 1
  store i32 %2560, ptr @test_count, align 4, !tbaa !5
  %2561 = load ptr, ptr %50, align 8, !tbaa !9
  %2562 = load ptr, ptr %11, align 8, !tbaa !9
  %2563 = icmp eq ptr %2561, %2562
  br i1 %2563, label %2617, label %2564

2564:                                             ; preds = %2558
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

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

2573:                                             ; preds = %2566
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @fileno(ptr noundef %2574) #9
  %2576 = call i32 @isatty(i32 noundef %2575) #9
  %2577 = icmp ne i32 %2576, 0
  br i1 %2577, label %2578, label %2595

2578:                                             ; preds = %2573
  %2579 = load i32, ptr %59, align 4, !tbaa !5
  %2580 = call ptr @__errno_location() #10
  store i32 %2579, ptr %2580, align 4, !tbaa !5
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = load i32, ptr @test_count, align 4, !tbaa !5
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror(i32 noundef %2584, ptr noundef @.str.4)
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror_debug(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call ptr @__errno_location() #10
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @strerror(i32 noundef %2590) #9
  %2592 = call ptr @__errno_location() #10
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2581, ptr noundef @.str.2, i32 noundef %2582, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2585, ptr noundef %2588, ptr noundef %2591, i32 noundef %2593) #9
  br label %2612

2595:                                             ; preds = %2573, %2566
  %2596 = load i32, ptr %59, align 4, !tbaa !5
  %2597 = call ptr @__errno_location() #10
  store i32 %2596, ptr %2597, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = load i32, ptr @test_count, align 4, !tbaa !5
  %2600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror(i32 noundef %2601, ptr noundef @.str.4)
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror_debug(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call ptr @__errno_location() #10
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @strerror(i32 noundef %2607) #9
  %2609 = call ptr @__errno_location() #10
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2598, ptr noundef @.str.5, i32 noundef %2599, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2602, ptr noundef %2605, ptr noundef %2608, i32 noundef %2610) #9
  br label %2612

2612:                                             ; preds = %2595, %2578
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  call void @exit(i32 noundef 1) #11
  unreachable

2615:                                             ; No predecessors!
  br label %2616

2616:                                             ; preds = %2615
  br label %2617

2617:                                             ; preds = %2616, %2558
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  %2621 = load i32, ptr @test_count, align 4, !tbaa !5
  %2622 = add nsw i32 %2621, 1
  store i32 %2622, ptr @test_count, align 4, !tbaa !5
  %2623 = load ptr, ptr %48, align 8, !tbaa !9
  %2624 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %2623, ptr noundef %51)
  %2625 = icmp eq i32 %2624, -1
  br i1 %2625, label %2626, label %2679

2626:                                             ; preds = %2620
  br label %2627

2627:                                             ; preds = %2626
  br label %2628

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

2635:                                             ; preds = %2628
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @fileno(ptr noundef %2636) #9
  %2638 = call i32 @isatty(i32 noundef %2637) #9
  %2639 = icmp ne i32 %2638, 0
  br i1 %2639, label %2640, label %2657

2640:                                             ; preds = %2635
  %2641 = load i32, ptr %60, align 4, !tbaa !5
  %2642 = call ptr @__errno_location() #10
  store i32 %2641, ptr %2642, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = load i32, ptr @test_count, align 4, !tbaa !5
  %2645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @s2n_strerror(i32 noundef %2646, ptr noundef @.str.4)
  %2648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call ptr @s2n_strerror_debug(i32 noundef %2649, ptr noundef @.str.4)
  %2651 = call ptr @__errno_location() #10
  %2652 = load i32, ptr %2651, align 4, !tbaa !5
  %2653 = call ptr @strerror(i32 noundef %2652) #9
  %2654 = call ptr @__errno_location() #10
  %2655 = load i32, ptr %2654, align 4, !tbaa !5
  %2656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2643, ptr noundef @.str.2, i32 noundef %2644, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2647, ptr noundef %2650, ptr noundef %2653, i32 noundef %2655) #9
  br label %2674

2657:                                             ; preds = %2635, %2628
  %2658 = load i32, ptr %60, align 4, !tbaa !5
  %2659 = call ptr @__errno_location() #10
  store i32 %2658, ptr %2659, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror(i32 noundef %2663, ptr noundef @.str.4)
  %2665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror_debug(i32 noundef %2666, ptr noundef @.str.4)
  %2668 = call ptr @__errno_location() #10
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @strerror(i32 noundef %2669) #9
  %2671 = call ptr @__errno_location() #10
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2660, ptr noundef @.str.5, i32 noundef %2661, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2664, ptr noundef %2667, ptr noundef %2670, i32 noundef %2672) #9
  br label %2674

2674:                                             ; preds = %2657, %2640
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2675

2675:                                             ; preds = %2674
  br label %2676

2676:                                             ; preds = %2675
  call void @exit(i32 noundef 1) #11
  unreachable

2677:                                             ; No predecessors!
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2678, %2620
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

2681:                                             ; preds = %2680
  br label %2682

2682:                                             ; preds = %2681
  %2683 = load i32, ptr @test_count, align 4, !tbaa !5
  %2684 = add nsw i32 %2683, 1
  store i32 %2684, ptr @test_count, align 4, !tbaa !5
  %2685 = load ptr, ptr %51, align 8, !tbaa !9
  %2686 = load ptr, ptr %11, align 8, !tbaa !9
  %2687 = getelementptr inbounds %struct.s2n_security_policy, ptr %2686, i32 0, i32 2
  %2688 = load ptr, ptr %2687, align 8, !tbaa !44
  %2689 = icmp eq ptr %2685, %2688
  br i1 %2689, label %2743, label %2690

2690:                                             ; preds = %2682
  br label %2691

2691:                                             ; preds = %2690
  br label %2692

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

2699:                                             ; preds = %2692
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @fileno(ptr noundef %2700) #9
  %2702 = call i32 @isatty(i32 noundef %2701) #9
  %2703 = icmp ne i32 %2702, 0
  br i1 %2703, label %2704, label %2721

2704:                                             ; preds = %2699
  %2705 = load i32, ptr %61, align 4, !tbaa !5
  %2706 = call ptr @__errno_location() #10
  store i32 %2705, ptr %2706, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = load i32, ptr @test_count, align 4, !tbaa !5
  %2709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call ptr @s2n_strerror(i32 noundef %2710, ptr noundef @.str.4)
  %2712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror_debug(i32 noundef %2713, ptr noundef @.str.4)
  %2715 = call ptr @__errno_location() #10
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @strerror(i32 noundef %2716) #9
  %2718 = call ptr @__errno_location() #10
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2707, ptr noundef @.str.2, i32 noundef %2708, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2711, ptr noundef %2714, ptr noundef %2717, i32 noundef %2719) #9
  br label %2738

2721:                                             ; preds = %2699, %2692
  %2722 = load i32, ptr %61, align 4, !tbaa !5
  %2723 = call ptr @__errno_location() #10
  store i32 %2722, ptr %2723, align 4, !tbaa !5
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = load i32, ptr @test_count, align 4, !tbaa !5
  %2726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @s2n_strerror(i32 noundef %2727, ptr noundef @.str.4)
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror_debug(i32 noundef %2730, ptr noundef @.str.4)
  %2732 = call ptr @__errno_location() #10
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #9
  %2735 = call ptr @__errno_location() #10
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2724, ptr noundef @.str.5, i32 noundef %2725, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2728, ptr noundef %2731, ptr noundef %2734, i32 noundef %2736) #9
  br label %2738

2738:                                             ; preds = %2721, %2704
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2739

2739:                                             ; preds = %2738
  br label %2740

2740:                                             ; preds = %2739
  call void @exit(i32 noundef 1) #11
  unreachable

2741:                                             ; No predecessors!
  br label %2742

2742:                                             ; preds = %2741
  br label %2743

2743:                                             ; preds = %2742, %2682
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

2746:                                             ; preds = %2745
  %2747 = load i32, ptr @test_count, align 4, !tbaa !5
  %2748 = add nsw i32 %2747, 1
  store i32 %2748, ptr @test_count, align 4, !tbaa !5
  %2749 = load ptr, ptr %48, align 8, !tbaa !9
  %2750 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %2749, ptr noundef %52)
  %2751 = icmp eq i32 %2750, -1
  br i1 %2751, label %2752, label %2805

2752:                                             ; preds = %2746
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

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

2761:                                             ; preds = %2754
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @fileno(ptr noundef %2762) #9
  %2764 = call i32 @isatty(i32 noundef %2763) #9
  %2765 = icmp ne i32 %2764, 0
  br i1 %2765, label %2766, label %2783

2766:                                             ; preds = %2761
  %2767 = load i32, ptr %62, align 4, !tbaa !5
  %2768 = call ptr @__errno_location() #10
  store i32 %2767, ptr %2768, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror(i32 noundef %2772, ptr noundef @.str.4)
  %2774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror_debug(i32 noundef %2775, ptr noundef @.str.4)
  %2777 = call ptr @__errno_location() #10
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call ptr @strerror(i32 noundef %2778) #9
  %2780 = call ptr @__errno_location() #10
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2769, ptr noundef @.str.2, i32 noundef %2770, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2773, ptr noundef %2776, ptr noundef %2779, i32 noundef %2781) #9
  br label %2800

2783:                                             ; preds = %2761, %2754
  %2784 = load i32, ptr %62, align 4, !tbaa !5
  %2785 = call ptr @__errno_location() #10
  store i32 %2784, ptr %2785, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = load i32, ptr @test_count, align 4, !tbaa !5
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror(i32 noundef %2789, ptr noundef @.str.4)
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror_debug(i32 noundef %2792, ptr noundef @.str.4)
  %2794 = call ptr @__errno_location() #10
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call ptr @strerror(i32 noundef %2795) #9
  %2797 = call ptr @__errno_location() #10
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  %2799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2786, ptr noundef @.str.5, i32 noundef %2787, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2790, ptr noundef %2793, ptr noundef %2796, i32 noundef %2798) #9
  br label %2800

2800:                                             ; preds = %2783, %2766
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  call void @exit(i32 noundef 1) #11
  unreachable

2803:                                             ; No predecessors!
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

2805:                                             ; preds = %2804, %2746
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  br label %2808

2808:                                             ; preds = %2807
  %2809 = load i32, ptr @test_count, align 4, !tbaa !5
  %2810 = add nsw i32 %2809, 1
  store i32 %2810, ptr @test_count, align 4, !tbaa !5
  %2811 = load ptr, ptr %52, align 8, !tbaa !9
  %2812 = load ptr, ptr %11, align 8, !tbaa !9
  %2813 = getelementptr inbounds %struct.s2n_security_policy, ptr %2812, i32 0, i32 3
  %2814 = load ptr, ptr %2813, align 8, !tbaa !45
  %2815 = icmp eq ptr %2811, %2814
  br i1 %2815, label %2869, label %2816

2816:                                             ; preds = %2808
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

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

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

2830:                                             ; preds = %2825
  %2831 = load i32, ptr %63, align 4, !tbaa !5
  %2832 = call ptr @__errno_location() #10
  store i32 %2831, ptr %2832, align 4, !tbaa !5
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = load i32, ptr @test_count, align 4, !tbaa !5
  %2835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror(i32 noundef %2836, ptr noundef @.str.4)
  %2838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2839 = load i32, ptr %2838, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror_debug(i32 noundef %2839, ptr noundef @.str.4)
  %2841 = call ptr @__errno_location() #10
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call ptr @strerror(i32 noundef %2842) #9
  %2844 = call ptr @__errno_location() #10
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2833, ptr noundef @.str.2, i32 noundef %2834, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2837, ptr noundef %2840, ptr noundef %2843, i32 noundef %2845) #9
  br label %2864

2847:                                             ; preds = %2825, %2818
  %2848 = load i32, ptr %63, align 4, !tbaa !5
  %2849 = call ptr @__errno_location() #10
  store i32 %2848, ptr %2849, align 4, !tbaa !5
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror(i32 noundef %2853, ptr noundef @.str.4)
  %2855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror_debug(i32 noundef %2856, ptr noundef @.str.4)
  %2858 = call ptr @__errno_location() #10
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call ptr @strerror(i32 noundef %2859) #9
  %2861 = call ptr @__errno_location() #10
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2850, ptr noundef @.str.5, i32 noundef %2851, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2854, ptr noundef %2857, ptr noundef %2860, i32 noundef %2862) #9
  br label %2864

2864:                                             ; preds = %2847, %2830
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2865

2865:                                             ; preds = %2864
  br label %2866

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

2867:                                             ; No predecessors!
  br label %2868

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2868, %2808
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

2872:                                             ; preds = %2871
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = add nsw i32 %2873, 1
  store i32 %2874, ptr @test_count, align 4, !tbaa !5
  %2875 = load ptr, ptr %48, align 8, !tbaa !9
  %2876 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %2875, ptr noundef %53)
  %2877 = icmp eq i32 %2876, -1
  br i1 %2877, label %2878, label %2931

2878:                                             ; preds = %2872
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

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

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

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

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

2926:                                             ; preds = %2909, %2892
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2927

2927:                                             ; preds = %2926
  br label %2928

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

2929:                                             ; No predecessors!
  br label %2930

2930:                                             ; preds = %2929
  br label %2931

2931:                                             ; preds = %2930, %2872
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932
  br label %2934

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

2942:                                             ; preds = %2934
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

2944:                                             ; preds = %2943
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2945 = call ptr @__errno_location() #10
  %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) #9
  %2954 = call i32 @isatty(i32 noundef %2953) #9
  %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() #10
  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() #10
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call ptr @strerror(i32 noundef %2968) #9
  %2970 = call ptr @__errno_location() #10
  %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 115, ptr noundef %2963, ptr noundef %2966, ptr noundef %2969, i32 noundef %2971) #9
  br label %2990

2973:                                             ; preds = %2951, %2944
  %2974 = load i32, ptr %65, align 4, !tbaa !5
  %2975 = call ptr @__errno_location() #10
  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() #10
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call ptr @strerror(i32 noundef %2985) #9
  %2987 = call ptr @__errno_location() #10
  %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 115, ptr noundef %2980, ptr noundef %2983, ptr noundef %2986, i32 noundef %2988) #9
  br label %2990

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

2991:                                             ; preds = %2990
  br label %2992

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

2993:                                             ; No predecessors!
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

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

2996:                                             ; preds = %2995
  br label %2997

2997:                                             ; preds = %2996
  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 = load ptr, ptr %48, align 8, !tbaa !9
  %3002 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %3001, ptr noundef @.str.42)
  %3003 = icmp eq i32 %3002, -1
  br i1 %3003, label %3004, label %3057

3004:                                             ; preds = %2998
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

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

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

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

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

3052:                                             ; preds = %3035, %3018
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

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

3055:                                             ; No predecessors!
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

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

3058:                                             ; preds = %3057
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %3062 = add nsw i32 %3061, 1
  store i32 %3062, ptr @test_count, align 4, !tbaa !5
  %3063 = load ptr, ptr %48, align 8, !tbaa !9
  %3064 = getelementptr inbounds %struct.s2n_connection, ptr %3063, i32 0, i32 2
  %3065 = load ptr, ptr %3064, align 8, !tbaa !15
  %3066 = icmp eq ptr %3065, null
  br i1 %3066, label %3067, label %3120

3067:                                             ; preds = %3060
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

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

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

3081:                                             ; preds = %3076
  %3082 = load i32, ptr %67, align 4, !tbaa !5
  %3083 = call ptr @__errno_location() #10
  store i32 %3082, ptr %3083, align 4, !tbaa !5
  %3084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3085 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3087, ptr noundef @.str.4)
  %3089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror_debug(i32 noundef %3090, ptr noundef @.str.4)
  %3092 = call ptr @__errno_location() #10
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @strerror(i32 noundef %3093) #9
  %3095 = call ptr @__errno_location() #10
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3084, ptr noundef @.str.2, i32 noundef %3085, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 118, ptr noundef %3088, ptr noundef %3091, ptr noundef %3094, i32 noundef %3096) #9
  br label %3115

3098:                                             ; preds = %3076, %3069
  %3099 = load i32, ptr %67, align 4, !tbaa !5
  %3100 = call ptr @__errno_location() #10
  store i32 %3099, ptr %3100, align 4, !tbaa !5
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3102 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3104, ptr noundef @.str.4)
  %3106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror_debug(i32 noundef %3107, ptr noundef @.str.4)
  %3109 = call ptr @__errno_location() #10
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @strerror(i32 noundef %3110) #9
  %3112 = call ptr @__errno_location() #10
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3101, ptr noundef @.str.5, i32 noundef %3102, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 118, ptr noundef %3105, ptr noundef %3108, ptr noundef %3111, i32 noundef %3113) #9
  br label %3115

3115:                                             ; preds = %3098, %3081
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3116

3116:                                             ; preds = %3115
  br label %3117

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

3118:                                             ; No predecessors!
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

3120:                                             ; preds = %3119, %3060
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

3122:                                             ; preds = %3121
  store ptr null, ptr %49, align 8, !tbaa !9
  br label %3123

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

3129:                                             ; preds = %3123
  br label %3130

3130:                                             ; preds = %3129
  br label %3131

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

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

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

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

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

3178:                                             ; preds = %3177
  br label %3179

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

3180:                                             ; No predecessors!
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

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

3183:                                             ; preds = %3182
  br label %3184

3184:                                             ; preds = %3183
  br label %3185

3185:                                             ; preds = %3184
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = add nsw i32 %3186, 1
  store i32 %3187, ptr @test_count, align 4, !tbaa !5
  %3188 = load ptr, ptr %49, align 8, !tbaa !9
  %3189 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_tls13, i32 0, i32 1), align 8, !tbaa !42
  %3190 = icmp eq ptr %3188, %3189
  br i1 %3190, label %3244, label %3191

3191:                                             ; preds = %3185
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

3193:                                             ; preds = %3192
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %3194 = call ptr @__errno_location() #10
  %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) #9
  %3203 = call i32 @isatty(i32 noundef %3202) #9
  %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() #10
  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() #10
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @strerror(i32 noundef %3217) #9
  %3219 = call ptr @__errno_location() #10
  %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.44, ptr noundef @.str.1, i32 noundef 122, ptr noundef %3212, ptr noundef %3215, ptr noundef %3218, i32 noundef %3220) #9
  br label %3239

3222:                                             ; preds = %3200, %3193
  %3223 = load i32, ptr %69, align 4, !tbaa !5
  %3224 = call ptr @__errno_location() #10
  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() #10
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call ptr @strerror(i32 noundef %3234) #9
  %3236 = call ptr @__errno_location() #10
  %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.44, ptr noundef @.str.1, i32 noundef 122, ptr noundef %3229, ptr noundef %3232, ptr noundef %3235, i32 noundef %3237) #9
  br label %3239

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

3240:                                             ; preds = %3239
  br label %3241

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

3242:                                             ; No predecessors!
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

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

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3245
  store ptr null, ptr %50, align 8, !tbaa !9
  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 %48, align 8, !tbaa !9
  %3251 = call i32 @s2n_connection_get_security_policy(ptr noundef %3250, ptr noundef %50)
  %3252 = icmp eq i32 %3251, -1
  br i1 %3252, label %3253, label %3306

3253:                                             ; preds = %3247
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

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

3262:                                             ; preds = %3255
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @fileno(ptr noundef %3263) #9
  %3265 = call i32 @isatty(i32 noundef %3264) #9
  %3266 = icmp ne i32 %3265, 0
  br i1 %3266, label %3267, label %3284

3267:                                             ; preds = %3262
  %3268 = load i32, ptr %70, align 4, !tbaa !5
  %3269 = call ptr @__errno_location() #10
  store i32 %3268, ptr %3269, align 4, !tbaa !5
  %3270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3271 = load i32, ptr @test_count, align 4, !tbaa !5
  %3272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror(i32 noundef %3273, ptr noundef @.str.4)
  %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_debug(i32 noundef %3276, ptr noundef @.str.4)
  %3278 = call ptr @__errno_location() #10
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @strerror(i32 noundef %3279) #9
  %3281 = call ptr @__errno_location() #10
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3270, ptr noundef @.str.2, i32 noundef %3271, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 125, ptr noundef %3274, ptr noundef %3277, ptr noundef %3280, i32 noundef %3282) #9
  br label %3301

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

3301:                                             ; preds = %3284, %3267
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3302

3302:                                             ; preds = %3301
  br label %3303

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

3304:                                             ; No predecessors!
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305, %3247
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = load ptr, ptr %50, align 8, !tbaa !9
  %3313 = icmp eq ptr %3312, @security_policy_test_all_tls13
  br i1 %3313, label %3367, label %3314

3314:                                             ; preds = %3309
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

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

3323:                                             ; preds = %3316
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = call i32 @fileno(ptr noundef %3324) #9
  %3326 = call i32 @isatty(i32 noundef %3325) #9
  %3327 = icmp ne i32 %3326, 0
  br i1 %3327, label %3328, label %3345

3328:                                             ; preds = %3323
  %3329 = load i32, ptr %71, align 4, !tbaa !5
  %3330 = call ptr @__errno_location() #10
  store i32 %3329, ptr %3330, align 4, !tbaa !5
  %3331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3332 = load i32, ptr @test_count, align 4, !tbaa !5
  %3333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror(i32 noundef %3334, ptr noundef @.str.4)
  %3336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call ptr @s2n_strerror_debug(i32 noundef %3337, ptr noundef @.str.4)
  %3339 = call ptr @__errno_location() #10
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call ptr @strerror(i32 noundef %3340) #9
  %3342 = call ptr @__errno_location() #10
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3331, ptr noundef @.str.2, i32 noundef %3332, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 126, ptr noundef %3335, ptr noundef %3338, ptr noundef %3341, i32 noundef %3343) #9
  br label %3362

3345:                                             ; preds = %3323, %3316
  %3346 = load i32, ptr %71, align 4, !tbaa !5
  %3347 = call ptr @__errno_location() #10
  store i32 %3346, ptr %3347, align 4, !tbaa !5
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = load i32, ptr @test_count, align 4, !tbaa !5
  %3350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3351 = load i32, ptr %3350, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror(i32 noundef %3351, ptr noundef @.str.4)
  %3353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3354 = load i32, ptr %3353, align 4, !tbaa !5
  %3355 = call ptr @s2n_strerror_debug(i32 noundef %3354, ptr noundef @.str.4)
  %3356 = call ptr @__errno_location() #10
  %3357 = load i32, ptr %3356, align 4, !tbaa !5
  %3358 = call ptr @strerror(i32 noundef %3357) #9
  %3359 = call ptr @__errno_location() #10
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3348, ptr noundef @.str.5, i32 noundef %3349, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 126, ptr noundef %3352, ptr noundef %3355, ptr noundef %3358, i32 noundef %3360) #9
  br label %3362

3362:                                             ; preds = %3345, %3328
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3363

3363:                                             ; preds = %3362
  br label %3364

3364:                                             ; preds = %3363
  call void @exit(i32 noundef 1) #11
  unreachable

3365:                                             ; No predecessors!
  br label %3366

3366:                                             ; preds = %3365
  br label %3367

3367:                                             ; preds = %3366, %3309
  br label %3368

3368:                                             ; preds = %3367
  br label %3369

3369:                                             ; preds = %3368
  store ptr null, ptr %51, align 8, !tbaa !9
  br label %3370

3370:                                             ; preds = %3369
  %3371 = load i32, ptr @test_count, align 4, !tbaa !5
  %3372 = add nsw i32 %3371, 1
  store i32 %3372, ptr @test_count, align 4, !tbaa !5
  %3373 = load ptr, ptr %48, align 8, !tbaa !9
  %3374 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %3373, ptr noundef %51)
  %3375 = icmp eq i32 %3374, -1
  br i1 %3375, label %3376, label %3429

3376:                                             ; preds = %3370
  br label %3377

3377:                                             ; preds = %3376
  br label %3378

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

3385:                                             ; preds = %3378
  %3386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3387 = call i32 @fileno(ptr noundef %3386) #9
  %3388 = call i32 @isatty(i32 noundef %3387) #9
  %3389 = icmp ne i32 %3388, 0
  br i1 %3389, label %3390, label %3407

3390:                                             ; preds = %3385
  %3391 = load i32, ptr %72, align 4, !tbaa !5
  %3392 = call ptr @__errno_location() #10
  store i32 %3391, ptr %3392, align 4, !tbaa !5
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror(i32 noundef %3396, ptr noundef @.str.4)
  %3398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call ptr @s2n_strerror_debug(i32 noundef %3399, ptr noundef @.str.4)
  %3401 = call ptr @__errno_location() #10
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call ptr @strerror(i32 noundef %3402) #9
  %3404 = call ptr @__errno_location() #10
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3393, ptr noundef @.str.2, i32 noundef %3394, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3397, ptr noundef %3400, ptr noundef %3403, i32 noundef %3405) #9
  br label %3424

3407:                                             ; preds = %3385, %3378
  %3408 = load i32, ptr %72, align 4, !tbaa !5
  %3409 = call ptr @__errno_location() #10
  store i32 %3408, ptr %3409, align 4, !tbaa !5
  %3410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3411 = load i32, ptr @test_count, align 4, !tbaa !5
  %3412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3413 = load i32, ptr %3412, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror(i32 noundef %3413, ptr noundef @.str.4)
  %3415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror_debug(i32 noundef %3416, ptr noundef @.str.4)
  %3418 = call ptr @__errno_location() #10
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @strerror(i32 noundef %3419) #9
  %3421 = call ptr @__errno_location() #10
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3410, ptr noundef @.str.5, i32 noundef %3411, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3414, ptr noundef %3417, ptr noundef %3420, i32 noundef %3422) #9
  br label %3424

3424:                                             ; preds = %3407, %3390
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3425

3425:                                             ; preds = %3424
  br label %3426

3426:                                             ; preds = %3425
  call void @exit(i32 noundef 1) #11
  unreachable

3427:                                             ; No predecessors!
  br label %3428

3428:                                             ; preds = %3427
  br label %3429

3429:                                             ; preds = %3428, %3370
  br label %3430

3430:                                             ; preds = %3429
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

3432:                                             ; preds = %3431
  %3433 = load i32, ptr @test_count, align 4, !tbaa !5
  %3434 = add nsw i32 %3433, 1
  store i32 %3434, ptr @test_count, align 4, !tbaa !5
  %3435 = load ptr, ptr %51, align 8, !tbaa !9
  %3436 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_tls13, i32 0, i32 2), align 8, !tbaa !44
  %3437 = icmp eq ptr %3435, %3436
  br i1 %3437, label %3491, label %3438

3438:                                             ; preds = %3432
  br label %3439

3439:                                             ; preds = %3438
  br label %3440

3440:                                             ; preds = %3439
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %3441 = call ptr @__errno_location() #10
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  store i32 %3442, ptr %73, align 4, !tbaa !5
  %3443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3444 = call i32 @s2n_print_stacktrace(ptr noundef %3443)
  %3445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3446 = trunc i8 %3445 to i1
  br i1 %3446, label %3447, label %3469

3447:                                             ; preds = %3440
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = call i32 @fileno(ptr noundef %3448) #9
  %3450 = call i32 @isatty(i32 noundef %3449) #9
  %3451 = icmp ne i32 %3450, 0
  br i1 %3451, label %3452, label %3469

3452:                                             ; preds = %3447
  %3453 = load i32, ptr %73, align 4, !tbaa !5
  %3454 = call ptr @__errno_location() #10
  store i32 %3453, ptr %3454, align 4, !tbaa !5
  %3455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3456 = load i32, ptr @test_count, align 4, !tbaa !5
  %3457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = call ptr @s2n_strerror(i32 noundef %3458, ptr noundef @.str.4)
  %3460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3461 = load i32, ptr %3460, align 4, !tbaa !5
  %3462 = call ptr @s2n_strerror_debug(i32 noundef %3461, ptr noundef @.str.4)
  %3463 = call ptr @__errno_location() #10
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call ptr @strerror(i32 noundef %3464) #9
  %3466 = call ptr @__errno_location() #10
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3455, ptr noundef @.str.2, i32 noundef %3456, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 130, ptr noundef %3459, ptr noundef %3462, ptr noundef %3465, i32 noundef %3467) #9
  br label %3486

3469:                                             ; preds = %3447, %3440
  %3470 = load i32, ptr %73, align 4, !tbaa !5
  %3471 = call ptr @__errno_location() #10
  store i32 %3470, ptr %3471, align 4, !tbaa !5
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call ptr @s2n_strerror(i32 noundef %3475, ptr noundef @.str.4)
  %3477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call ptr @s2n_strerror_debug(i32 noundef %3478, ptr noundef @.str.4)
  %3480 = call ptr @__errno_location() #10
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #9
  %3483 = call ptr @__errno_location() #10
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3472, ptr noundef @.str.5, i32 noundef %3473, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 130, ptr noundef %3476, ptr noundef %3479, ptr noundef %3482, i32 noundef %3484) #9
  br label %3486

3486:                                             ; preds = %3469, %3452
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %3487

3487:                                             ; preds = %3486
  br label %3488

3488:                                             ; preds = %3487
  call void @exit(i32 noundef 1) #11
  unreachable

3489:                                             ; No predecessors!
  br label %3490

3490:                                             ; preds = %3489
  br label %3491

3491:                                             ; preds = %3490, %3432
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492
  store ptr null, ptr %52, align 8, !tbaa !9
  br label %3494

3494:                                             ; preds = %3493
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = add nsw i32 %3495, 1
  store i32 %3496, ptr @test_count, align 4, !tbaa !5
  %3497 = load ptr, ptr %48, align 8, !tbaa !9
  %3498 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %3497, ptr noundef %52)
  %3499 = icmp eq i32 %3498, -1
  br i1 %3499, label %3500, label %3553

3500:                                             ; preds = %3494
  br label %3501

3501:                                             ; preds = %3500
  br label %3502

3502:                                             ; preds = %3501
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %3503 = call ptr @__errno_location() #10
  %3504 = load i32, ptr %3503, align 4, !tbaa !5
  store i32 %3504, ptr %74, align 4, !tbaa !5
  %3505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3506 = call i32 @s2n_print_stacktrace(ptr noundef %3505)
  %3507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3508 = trunc i8 %3507 to i1
  br i1 %3508, label %3509, label %3531

3509:                                             ; preds = %3502
  %3510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3511 = call i32 @fileno(ptr noundef %3510) #9
  %3512 = call i32 @isatty(i32 noundef %3511) #9
  %3513 = icmp ne i32 %3512, 0
  br i1 %3513, label %3514, label %3531

3514:                                             ; preds = %3509
  %3515 = load i32, ptr %74, align 4, !tbaa !5
  %3516 = call ptr @__errno_location() #10
  store i32 %3515, ptr %3516, align 4, !tbaa !5
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = load i32, ptr @test_count, align 4, !tbaa !5
  %3519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call ptr @s2n_strerror(i32 noundef %3520, ptr noundef @.str.4)
  %3522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror_debug(i32 noundef %3523, ptr noundef @.str.4)
  %3525 = call ptr @__errno_location() #10
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call ptr @strerror(i32 noundef %3526) #9
  %3528 = call ptr @__errno_location() #10
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3517, ptr noundef @.str.2, i32 noundef %3518, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3521, ptr noundef %3524, ptr noundef %3527, i32 noundef %3529) #9
  br label %3548

3531:                                             ; preds = %3509, %3502
  %3532 = load i32, ptr %74, align 4, !tbaa !5
  %3533 = call ptr @__errno_location() #10
  store i32 %3532, ptr %3533, align 4, !tbaa !5
  %3534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3535 = load i32, ptr @test_count, align 4, !tbaa !5
  %3536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3537 = load i32, ptr %3536, align 4, !tbaa !5
  %3538 = call ptr @s2n_strerror(i32 noundef %3537, ptr noundef @.str.4)
  %3539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3540 = load i32, ptr %3539, align 4, !tbaa !5
  %3541 = call ptr @s2n_strerror_debug(i32 noundef %3540, ptr noundef @.str.4)
  %3542 = call ptr @__errno_location() #10
  %3543 = load i32, ptr %3542, align 4, !tbaa !5
  %3544 = call ptr @strerror(i32 noundef %3543) #9
  %3545 = call ptr @__errno_location() #10
  %3546 = load i32, ptr %3545, align 4, !tbaa !5
  %3547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3534, ptr noundef @.str.5, i32 noundef %3535, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3538, ptr noundef %3541, ptr noundef %3544, i32 noundef %3546) #9
  br label %3548

3548:                                             ; preds = %3531, %3514
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3549

3549:                                             ; preds = %3548
  br label %3550

3550:                                             ; preds = %3549
  call void @exit(i32 noundef 1) #11
  unreachable

3551:                                             ; No predecessors!
  br label %3552

3552:                                             ; preds = %3551
  br label %3553

3553:                                             ; preds = %3552, %3494
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

3555:                                             ; preds = %3554
  br label %3556

3556:                                             ; preds = %3555
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = add nsw i32 %3557, 1
  store i32 %3558, ptr @test_count, align 4, !tbaa !5
  %3559 = load ptr, ptr %52, align 8, !tbaa !9
  %3560 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_tls13, i32 0, i32 3), align 8, !tbaa !45
  %3561 = icmp eq ptr %3559, %3560
  br i1 %3561, label %3615, label %3562

3562:                                             ; preds = %3556
  br label %3563

3563:                                             ; preds = %3562
  br label %3564

3564:                                             ; preds = %3563
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %3565 = call ptr @__errno_location() #10
  %3566 = load i32, ptr %3565, align 4, !tbaa !5
  store i32 %3566, ptr %75, align 4, !tbaa !5
  %3567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3568 = call i32 @s2n_print_stacktrace(ptr noundef %3567)
  %3569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3570 = trunc i8 %3569 to i1
  br i1 %3570, label %3571, label %3593

3571:                                             ; preds = %3564
  %3572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3573 = call i32 @fileno(ptr noundef %3572) #9
  %3574 = call i32 @isatty(i32 noundef %3573) #9
  %3575 = icmp ne i32 %3574, 0
  br i1 %3575, label %3576, label %3593

3576:                                             ; preds = %3571
  %3577 = load i32, ptr %75, align 4, !tbaa !5
  %3578 = call ptr @__errno_location() #10
  store i32 %3577, ptr %3578, align 4, !tbaa !5
  %3579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3580 = load i32, ptr @test_count, align 4, !tbaa !5
  %3581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror(i32 noundef %3582, ptr noundef @.str.4)
  %3584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call ptr @s2n_strerror_debug(i32 noundef %3585, ptr noundef @.str.4)
  %3587 = call ptr @__errno_location() #10
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call ptr @strerror(i32 noundef %3588) #9
  %3590 = call ptr @__errno_location() #10
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3579, ptr noundef @.str.2, i32 noundef %3580, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3583, ptr noundef %3586, ptr noundef %3589, i32 noundef %3591) #9
  br label %3610

3593:                                             ; preds = %3571, %3564
  %3594 = load i32, ptr %75, align 4, !tbaa !5
  %3595 = call ptr @__errno_location() #10
  store i32 %3594, ptr %3595, align 4, !tbaa !5
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror(i32 noundef %3599, ptr noundef @.str.4)
  %3601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call ptr @s2n_strerror_debug(i32 noundef %3602, ptr noundef @.str.4)
  %3604 = call ptr @__errno_location() #10
  %3605 = load i32, ptr %3604, align 4, !tbaa !5
  %3606 = call ptr @strerror(i32 noundef %3605) #9
  %3607 = call ptr @__errno_location() #10
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3596, ptr noundef @.str.5, i32 noundef %3597, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3600, ptr noundef %3603, ptr noundef %3606, i32 noundef %3608) #9
  br label %3610

3610:                                             ; preds = %3593, %3576
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3611

3611:                                             ; preds = %3610
  br label %3612

3612:                                             ; preds = %3611
  call void @exit(i32 noundef 1) #11
  unreachable

3613:                                             ; No predecessors!
  br label %3614

3614:                                             ; preds = %3613
  br label %3615

3615:                                             ; preds = %3614, %3556
  br label %3616

3616:                                             ; preds = %3615
  br label %3617

3617:                                             ; preds = %3616
  store ptr null, ptr %53, align 8, !tbaa !9
  br label %3618

3618:                                             ; preds = %3617
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = add nsw i32 %3619, 1
  store i32 %3620, ptr @test_count, align 4, !tbaa !5
  %3621 = load ptr, ptr %48, align 8, !tbaa !9
  %3622 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %3621, ptr noundef %53)
  %3623 = icmp eq i32 %3622, -1
  br i1 %3623, label %3624, label %3677

3624:                                             ; preds = %3618
  br label %3625

3625:                                             ; preds = %3624
  br label %3626

3626:                                             ; preds = %3625
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3627 = call ptr @__errno_location() #10
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  store i32 %3628, ptr %76, align 4, !tbaa !5
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = call i32 @s2n_print_stacktrace(ptr noundef %3629)
  %3631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3632 = trunc i8 %3631 to i1
  br i1 %3632, label %3633, label %3655

3633:                                             ; preds = %3626
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = call i32 @fileno(ptr noundef %3634) #9
  %3636 = call i32 @isatty(i32 noundef %3635) #9
  %3637 = icmp ne i32 %3636, 0
  br i1 %3637, label %3638, label %3655

3638:                                             ; preds = %3633
  %3639 = load i32, ptr %76, align 4, !tbaa !5
  %3640 = call ptr @__errno_location() #10
  store i32 %3639, ptr %3640, align 4, !tbaa !5
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3642 = load i32, ptr @test_count, align 4, !tbaa !5
  %3643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror(i32 noundef %3644, ptr noundef @.str.4)
  %3646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call ptr @s2n_strerror_debug(i32 noundef %3647, ptr noundef @.str.4)
  %3649 = call ptr @__errno_location() #10
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call ptr @strerror(i32 noundef %3650) #9
  %3652 = call ptr @__errno_location() #10
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3641, ptr noundef @.str.2, i32 noundef %3642, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3645, ptr noundef %3648, ptr noundef %3651, i32 noundef %3653) #9
  br label %3672

3655:                                             ; preds = %3633, %3626
  %3656 = load i32, ptr %76, align 4, !tbaa !5
  %3657 = call ptr @__errno_location() #10
  store i32 %3656, ptr %3657, align 4, !tbaa !5
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = load i32, ptr @test_count, align 4, !tbaa !5
  %3660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call ptr @s2n_strerror(i32 noundef %3661, ptr noundef @.str.4)
  %3663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call ptr @s2n_strerror_debug(i32 noundef %3664, ptr noundef @.str.4)
  %3666 = call ptr @__errno_location() #10
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call ptr @strerror(i32 noundef %3667) #9
  %3669 = call ptr @__errno_location() #10
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  %3671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3658, ptr noundef @.str.5, i32 noundef %3659, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3662, ptr noundef %3665, ptr noundef %3668, i32 noundef %3670) #9
  br label %3672

3672:                                             ; preds = %3655, %3638
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673
  call void @exit(i32 noundef 1) #11
  unreachable

3675:                                             ; No predecessors!
  br label %3676

3676:                                             ; preds = %3675
  br label %3677

3677:                                             ; preds = %3676, %3618
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

3679:                                             ; preds = %3678
  br label %3680

3680:                                             ; preds = %3679
  %3681 = load i32, ptr @test_count, align 4, !tbaa !5
  %3682 = add nsw i32 %3681, 1
  store i32 %3682, ptr @test_count, align 4, !tbaa !5
  %3683 = load ptr, ptr %53, align 8, !tbaa !9
  %3684 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_tls13, i32 0, i32 5), align 8, !tbaa !46
  %3685 = icmp eq ptr %3683, %3684
  br i1 %3685, label %3739, label %3686

3686:                                             ; preds = %3680
  br label %3687

3687:                                             ; preds = %3686
  br label %3688

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

3695:                                             ; preds = %3688
  %3696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3697 = call i32 @fileno(ptr noundef %3696) #9
  %3698 = call i32 @isatty(i32 noundef %3697) #9
  %3699 = icmp ne i32 %3698, 0
  br i1 %3699, label %3700, label %3717

3700:                                             ; preds = %3695
  %3701 = load i32, ptr %77, align 4, !tbaa !5
  %3702 = call ptr @__errno_location() #10
  store i32 %3701, ptr %3702, align 4, !tbaa !5
  %3703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3704 = load i32, ptr @test_count, align 4, !tbaa !5
  %3705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror(i32 noundef %3706, ptr noundef @.str.4)
  %3708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call ptr @s2n_strerror_debug(i32 noundef %3709, ptr noundef @.str.4)
  %3711 = call ptr @__errno_location() #10
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call ptr @strerror(i32 noundef %3712) #9
  %3714 = call ptr @__errno_location() #10
  %3715 = load i32, ptr %3714, align 4, !tbaa !5
  %3716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3703, ptr noundef @.str.2, i32 noundef %3704, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3707, ptr noundef %3710, ptr noundef %3713, i32 noundef %3715) #9
  br label %3734

3717:                                             ; preds = %3695, %3688
  %3718 = load i32, ptr %77, align 4, !tbaa !5
  %3719 = call ptr @__errno_location() #10
  store i32 %3718, ptr %3719, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = load i32, ptr @test_count, align 4, !tbaa !5
  %3722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call ptr @s2n_strerror(i32 noundef %3723, ptr noundef @.str.4)
  %3725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3726 = load i32, ptr %3725, align 4, !tbaa !5
  %3727 = call ptr @s2n_strerror_debug(i32 noundef %3726, ptr noundef @.str.4)
  %3728 = call ptr @__errno_location() #10
  %3729 = load i32, ptr %3728, align 4, !tbaa !5
  %3730 = call ptr @strerror(i32 noundef %3729) #9
  %3731 = call ptr @__errno_location() #10
  %3732 = load i32, ptr %3731, align 4, !tbaa !5
  %3733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3720, ptr noundef @.str.5, i32 noundef %3721, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3724, ptr noundef %3727, ptr noundef %3730, i32 noundef %3732) #9
  br label %3734

3734:                                             ; preds = %3717, %3700
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3735

3735:                                             ; preds = %3734
  br label %3736

3736:                                             ; preds = %3735
  call void @exit(i32 noundef 1) #11
  unreachable

3737:                                             ; No predecessors!
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738, %3680
  br label %3740

3740:                                             ; preds = %3739
  br label %3741

3741:                                             ; preds = %3740
  br label %3742

3742:                                             ; preds = %3741
  %3743 = load i32, ptr @test_count, align 4, !tbaa !5
  %3744 = add nsw i32 %3743, 1
  store i32 %3744, ptr @test_count, align 4, !tbaa !5
  %3745 = load ptr, ptr %48, align 8, !tbaa !9
  %3746 = call i32 @s2n_connection_free(ptr noundef %3745)
  %3747 = icmp eq i32 %3746, -1
  br i1 %3747, label %3748, label %3801

3748:                                             ; preds = %3742
  br label %3749

3749:                                             ; preds = %3748
  br label %3750

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

3757:                                             ; preds = %3750
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = call i32 @fileno(ptr noundef %3758) #9
  %3760 = call i32 @isatty(i32 noundef %3759) #9
  %3761 = icmp ne i32 %3760, 0
  br i1 %3761, label %3762, label %3779

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

3779:                                             ; preds = %3757, %3750
  %3780 = load i32, ptr %78, align 4, !tbaa !5
  %3781 = call ptr @__errno_location() #10
  store i32 %3780, ptr %3781, align 4, !tbaa !5
  %3782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3783 = load i32, ptr @test_count, align 4, !tbaa !5
  %3784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror(i32 noundef %3785, ptr noundef @.str.4)
  %3787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @s2n_strerror_debug(i32 noundef %3788, ptr noundef @.str.4)
  %3790 = call ptr @__errno_location() #10
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call ptr @strerror(i32 noundef %3791) #9
  %3793 = call ptr @__errno_location() #10
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  %3795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3782, ptr noundef @.str.5, i32 noundef %3783, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3786, ptr noundef %3789, ptr noundef %3792, i32 noundef %3794) #9
  br label %3796

3796:                                             ; preds = %3779, %3762
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3797

3797:                                             ; preds = %3796
  br label %3798

3798:                                             ; preds = %3797
  call void @exit(i32 noundef 1) #11
  unreachable

3799:                                             ; No predecessors!
  br label %3800

3800:                                             ; preds = %3799
  br label %3801

3801:                                             ; preds = %3800, %3742
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

3803:                                             ; preds = %3802
  br label %3804

3804:                                             ; preds = %3803
  %3805 = load i32, ptr @test_count, align 4, !tbaa !5
  %3806 = add nsw i32 %3805, 1
  store i32 %3806, ptr @test_count, align 4, !tbaa !5
  %3807 = call i32 (...) @s2n_disable_tls13_in_test()
  %3808 = icmp eq i32 %3807, -1
  br i1 %3808, label %3809, label %3862

3809:                                             ; preds = %3804
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

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

3818:                                             ; preds = %3811
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = call i32 @fileno(ptr noundef %3819) #9
  %3821 = call i32 @isatty(i32 noundef %3820) #9
  %3822 = icmp ne i32 %3821, 0
  br i1 %3822, label %3823, label %3840

3823:                                             ; preds = %3818
  %3824 = load i32, ptr %79, align 4, !tbaa !5
  %3825 = call ptr @__errno_location() #10
  store i32 %3824, ptr %3825, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = load i32, ptr @test_count, align 4, !tbaa !5
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @s2n_strerror_debug(i32 noundef %3832, ptr noundef @.str.4)
  %3834 = call ptr @__errno_location() #10
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call ptr @strerror(i32 noundef %3835) #9
  %3837 = call ptr @__errno_location() #10
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3826, ptr noundef @.str.2, i32 noundef %3827, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3830, ptr noundef %3833, ptr noundef %3836, i32 noundef %3838) #9
  br label %3857

3840:                                             ; preds = %3818, %3811
  %3841 = load i32, ptr %79, align 4, !tbaa !5
  %3842 = call ptr @__errno_location() #10
  store i32 %3841, ptr %3842, align 4, !tbaa !5
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = load i32, ptr @test_count, align 4, !tbaa !5
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror_debug(i32 noundef %3849, ptr noundef @.str.4)
  %3851 = call ptr @__errno_location() #10
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call ptr @strerror(i32 noundef %3852) #9
  %3854 = call ptr @__errno_location() #10
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3843, ptr noundef @.str.5, i32 noundef %3844, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3847, ptr noundef %3850, ptr noundef %3853, i32 noundef %3855) #9
  br label %3857

3857:                                             ; preds = %3840, %3823
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858
  call void @exit(i32 noundef 1) #11
  unreachable

3860:                                             ; No predecessors!
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

3862:                                             ; preds = %3861, %3804
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

3864:                                             ; preds = %3863
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  %3865 = call zeroext i1 @s2n_is_in_fips_mode()
  br i1 %3865, label %3866, label %5425

3866:                                             ; preds = %3864
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  store ptr null, ptr %80, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  store ptr null, ptr %81, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  store ptr null, ptr %82, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  store ptr null, ptr %83, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #9
  store ptr null, ptr %84, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  store ptr null, ptr %85, align 8, !tbaa !9
  br label %3867

3867:                                             ; preds = %3866
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = add nsw i32 %3868, 1
  store i32 %3869, ptr @test_count, align 4, !tbaa !5
  %3870 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3870, ptr %80, align 8, !tbaa !9
  %3871 = icmp eq ptr %3870, null
  br i1 %3871, label %3872, label %3925

3872:                                             ; preds = %3867
  br label %3873

3873:                                             ; preds = %3872
  br label %3874

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

3881:                                             ; preds = %3874
  %3882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3883 = call i32 @fileno(ptr noundef %3882) #9
  %3884 = call i32 @isatty(i32 noundef %3883) #9
  %3885 = icmp ne i32 %3884, 0
  br i1 %3885, label %3886, label %3903

3886:                                             ; preds = %3881
  %3887 = load i32, ptr %86, align 4, !tbaa !5
  %3888 = call ptr @__errno_location() #10
  store i32 %3887, ptr %3888, align 4, !tbaa !5
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = load i32, ptr @test_count, align 4, !tbaa !5
  %3891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3892 = load i32, ptr %3891, align 4, !tbaa !5
  %3893 = call ptr @s2n_strerror(i32 noundef %3892, ptr noundef @.str.4)
  %3894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3895 = load i32, ptr %3894, align 4, !tbaa !5
  %3896 = call ptr @s2n_strerror_debug(i32 noundef %3895, ptr noundef @.str.4)
  %3897 = call ptr @__errno_location() #10
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  %3899 = call ptr @strerror(i32 noundef %3898) #9
  %3900 = call ptr @__errno_location() #10
  %3901 = load i32, ptr %3900, align 4, !tbaa !5
  %3902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3889, ptr noundef @.str.2, i32 noundef %3890, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3893, ptr noundef %3896, ptr noundef %3899, i32 noundef %3901) #9
  br label %3920

3903:                                             ; preds = %3881, %3874
  %3904 = load i32, ptr %86, align 4, !tbaa !5
  %3905 = call ptr @__errno_location() #10
  store i32 %3904, ptr %3905, align 4, !tbaa !5
  %3906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3907 = load i32, ptr @test_count, align 4, !tbaa !5
  %3908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = call ptr @s2n_strerror(i32 noundef %3909, ptr noundef @.str.4)
  %3911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3912 = load i32, ptr %3911, align 4, !tbaa !5
  %3913 = call ptr @s2n_strerror_debug(i32 noundef %3912, ptr noundef @.str.4)
  %3914 = call ptr @__errno_location() #10
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @strerror(i32 noundef %3915) #9
  %3917 = call ptr @__errno_location() #10
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3906, ptr noundef @.str.5, i32 noundef %3907, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3910, ptr noundef %3913, ptr noundef %3916, i32 noundef %3918) #9
  br label %3920

3920:                                             ; preds = %3903, %3886
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3921

3921:                                             ; preds = %3920
  br label %3922

3922:                                             ; preds = %3921
  call void @exit(i32 noundef 1) #11
  unreachable

3923:                                             ; No predecessors!
  br label %3924

3924:                                             ; preds = %3923
  br label %3925

3925:                                             ; preds = %3924, %3867
  br label %3926

3926:                                             ; preds = %3925
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = add nsw i32 %3929, 1
  store i32 %3930, ptr @test_count, align 4, !tbaa !5
  %3931 = load ptr, ptr %80, align 8, !tbaa !9
  %3932 = getelementptr inbounds %struct.s2n_connection, ptr %3931, i32 0, i32 2
  %3933 = load ptr, ptr %3932, align 8, !tbaa !15
  %3934 = icmp eq ptr %3933, null
  br i1 %3934, label %3988, label %3935

3935:                                             ; preds = %3928
  br label %3936

3936:                                             ; preds = %3935
  br label %3937

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

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

3949:                                             ; preds = %3944
  %3950 = load i32, ptr %87, align 4, !tbaa !5
  %3951 = call ptr @__errno_location() #10
  store i32 %3950, ptr %3951, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror(i32 noundef %3955, ptr noundef @.str.4)
  %3957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror_debug(i32 noundef %3958, ptr noundef @.str.4)
  %3960 = call ptr @__errno_location() #10
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @strerror(i32 noundef %3961) #9
  %3963 = call ptr @__errno_location() #10
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3952, ptr noundef @.str.2, i32 noundef %3953, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 155, ptr noundef %3956, ptr noundef %3959, ptr noundef %3962, i32 noundef %3964) #9
  br label %3983

3966:                                             ; preds = %3944, %3937
  %3967 = load i32, ptr %87, align 4, !tbaa !5
  %3968 = call ptr @__errno_location() #10
  store i32 %3967, ptr %3968, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = load i32, ptr @test_count, align 4, !tbaa !5
  %3971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror(i32 noundef %3972, ptr noundef @.str.4)
  %3974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror_debug(i32 noundef %3975, ptr noundef @.str.4)
  %3977 = call ptr @__errno_location() #10
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @strerror(i32 noundef %3978) #9
  %3980 = call ptr @__errno_location() #10
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3969, ptr noundef @.str.5, i32 noundef %3970, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 155, ptr noundef %3973, ptr noundef %3976, ptr noundef %3979, i32 noundef %3981) #9
  br label %3983

3983:                                             ; preds = %3966, %3949
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

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

3986:                                             ; No predecessors!
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

3988:                                             ; preds = %3987, %3928
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

3990:                                             ; preds = %3989
  br label %3991

3991:                                             ; preds = %3990
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = load ptr, ptr %80, align 8, !tbaa !9
  %3995 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %3994, ptr noundef %81)
  %3996 = icmp eq i32 %3995, -1
  br i1 %3996, label %3997, label %4050

3997:                                             ; preds = %3991
  br label %3998

3998:                                             ; preds = %3997
  br label %3999

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

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

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

4028:                                             ; preds = %4006, %3999
  %4029 = load i32, ptr %88, align 4, !tbaa !5
  %4030 = call ptr @__errno_location() #10
  store i32 %4029, ptr %4030, align 4, !tbaa !5
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = load i32, ptr @test_count, align 4, !tbaa !5
  %4033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4034 = load i32, ptr %4033, align 4, !tbaa !5
  %4035 = call ptr @s2n_strerror(i32 noundef %4034, ptr noundef @.str.4)
  %4036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4037 = load i32, ptr %4036, align 4, !tbaa !5
  %4038 = call ptr @s2n_strerror_debug(i32 noundef %4037, ptr noundef @.str.4)
  %4039 = call ptr @__errno_location() #10
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = call ptr @strerror(i32 noundef %4040) #9
  %4042 = call ptr @__errno_location() #10
  %4043 = load i32, ptr %4042, align 4, !tbaa !5
  %4044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4031, ptr noundef @.str.5, i32 noundef %4032, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 157, ptr noundef %4035, ptr noundef %4038, ptr noundef %4041, i32 noundef %4043) #9
  br label %4045

4045:                                             ; preds = %4028, %4011
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %4046

4046:                                             ; preds = %4045
  br label %4047

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

4048:                                             ; No predecessors!
  br label %4049

4049:                                             ; preds = %4048
  br label %4050

4050:                                             ; preds = %4049, %3991
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

4053:                                             ; preds = %4052
  %4054 = load i32, ptr @test_count, align 4, !tbaa !5
  %4055 = add nsw i32 %4054, 1
  store i32 %4055, ptr @test_count, align 4, !tbaa !5
  %4056 = load ptr, ptr %81, align 8, !tbaa !9
  %4057 = load ptr, ptr %12, align 8, !tbaa !9
  %4058 = getelementptr inbounds %struct.s2n_security_policy, ptr %4057, i32 0, i32 1
  %4059 = load ptr, ptr %4058, align 8, !tbaa !42
  %4060 = icmp eq ptr %4056, %4059
  br i1 %4060, label %4114, label %4061

4061:                                             ; preds = %4053
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

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

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

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

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

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

4110:                                             ; preds = %4109
  br label %4111

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

4112:                                             ; No predecessors!
  br label %4113

4113:                                             ; preds = %4112
  br label %4114

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

4115:                                             ; preds = %4114
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

4117:                                             ; preds = %4116
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = add nsw i32 %4118, 1
  store i32 %4119, ptr @test_count, align 4, !tbaa !5
  %4120 = load ptr, ptr %80, align 8, !tbaa !9
  %4121 = call i32 @s2n_connection_get_security_policy(ptr noundef %4120, ptr noundef %82)
  %4122 = icmp eq i32 %4121, -1
  br i1 %4122, label %4123, label %4176

4123:                                             ; preds = %4117
  br label %4124

4124:                                             ; preds = %4123
  br label %4125

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

4132:                                             ; preds = %4125
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = call i32 @fileno(ptr noundef %4133) #9
  %4135 = call i32 @isatty(i32 noundef %4134) #9
  %4136 = icmp ne i32 %4135, 0
  br i1 %4136, label %4137, label %4154

4137:                                             ; preds = %4132
  %4138 = load i32, ptr %90, align 4, !tbaa !5
  %4139 = call ptr @__errno_location() #10
  store i32 %4138, ptr %4139, align 4, !tbaa !5
  %4140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4143 = load i32, ptr %4142, align 4, !tbaa !5
  %4144 = call ptr @s2n_strerror(i32 noundef %4143, ptr noundef @.str.4)
  %4145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call ptr @s2n_strerror_debug(i32 noundef %4146, ptr noundef @.str.4)
  %4148 = call ptr @__errno_location() #10
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @strerror(i32 noundef %4149) #9
  %4151 = call ptr @__errno_location() #10
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4140, ptr noundef @.str.2, i32 noundef %4141, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 160, ptr noundef %4144, ptr noundef %4147, ptr noundef %4150, i32 noundef %4152) #9
  br label %4171

4154:                                             ; preds = %4132, %4125
  %4155 = load i32, ptr %90, align 4, !tbaa !5
  %4156 = call ptr @__errno_location() #10
  store i32 %4155, ptr %4156, align 4, !tbaa !5
  %4157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4158 = load i32, ptr @test_count, align 4, !tbaa !5
  %4159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  %4161 = call ptr @s2n_strerror(i32 noundef %4160, ptr noundef @.str.4)
  %4162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror_debug(i32 noundef %4163, ptr noundef @.str.4)
  %4165 = call ptr @__errno_location() #10
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call ptr @strerror(i32 noundef %4166) #9
  %4168 = call ptr @__errno_location() #10
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4157, ptr noundef @.str.5, i32 noundef %4158, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 160, ptr noundef %4161, ptr noundef %4164, ptr noundef %4167, i32 noundef %4169) #9
  br label %4171

4171:                                             ; preds = %4154, %4137
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %4172

4172:                                             ; preds = %4171
  br label %4173

4173:                                             ; preds = %4172
  call void @exit(i32 noundef 1) #11
  unreachable

4174:                                             ; No predecessors!
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

4176:                                             ; preds = %4175, %4117
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

4178:                                             ; preds = %4177
  br label %4179

4179:                                             ; preds = %4178
  %4180 = load i32, ptr @test_count, align 4, !tbaa !5
  %4181 = add nsw i32 %4180, 1
  store i32 %4181, ptr @test_count, align 4, !tbaa !5
  %4182 = load ptr, ptr %82, align 8, !tbaa !9
  %4183 = load ptr, ptr %12, align 8, !tbaa !9
  %4184 = icmp eq ptr %4182, %4183
  br i1 %4184, label %4238, label %4185

4185:                                             ; preds = %4179
  br label %4186

4186:                                             ; preds = %4185
  br label %4187

4187:                                             ; preds = %4186
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4188 = call ptr @__errno_location() #10
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  store i32 %4189, ptr %91, align 4, !tbaa !5
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = call i32 @s2n_print_stacktrace(ptr noundef %4190)
  %4192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4193 = trunc i8 %4192 to i1
  br i1 %4193, label %4194, label %4216

4194:                                             ; preds = %4187
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = call i32 @fileno(ptr noundef %4195) #9
  %4197 = call i32 @isatty(i32 noundef %4196) #9
  %4198 = icmp ne i32 %4197, 0
  br i1 %4198, label %4199, label %4216

4199:                                             ; preds = %4194
  %4200 = load i32, ptr %91, align 4, !tbaa !5
  %4201 = call ptr @__errno_location() #10
  store i32 %4200, ptr %4201, align 4, !tbaa !5
  %4202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4203 = load i32, ptr @test_count, align 4, !tbaa !5
  %4204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4205 = load i32, ptr %4204, align 4, !tbaa !5
  %4206 = call ptr @s2n_strerror(i32 noundef %4205, ptr noundef @.str.4)
  %4207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror_debug(i32 noundef %4208, ptr noundef @.str.4)
  %4210 = call ptr @__errno_location() #10
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  %4212 = call ptr @strerror(i32 noundef %4211) #9
  %4213 = call ptr @__errno_location() #10
  %4214 = load i32, ptr %4213, align 4, !tbaa !5
  %4215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4202, ptr noundef @.str.2, i32 noundef %4203, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 161, ptr noundef %4206, ptr noundef %4209, ptr noundef %4212, i32 noundef %4214) #9
  br label %4233

4216:                                             ; preds = %4194, %4187
  %4217 = load i32, ptr %91, align 4, !tbaa !5
  %4218 = call ptr @__errno_location() #10
  store i32 %4217, ptr %4218, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = load i32, ptr @test_count, align 4, !tbaa !5
  %4221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4222 = load i32, ptr %4221, align 4, !tbaa !5
  %4223 = call ptr @s2n_strerror(i32 noundef %4222, ptr noundef @.str.4)
  %4224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  %4226 = call ptr @s2n_strerror_debug(i32 noundef %4225, ptr noundef @.str.4)
  %4227 = call ptr @__errno_location() #10
  %4228 = load i32, ptr %4227, align 4, !tbaa !5
  %4229 = call ptr @strerror(i32 noundef %4228) #9
  %4230 = call ptr @__errno_location() #10
  %4231 = load i32, ptr %4230, align 4, !tbaa !5
  %4232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4219, ptr noundef @.str.5, i32 noundef %4220, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 161, ptr noundef %4223, ptr noundef %4226, ptr noundef %4229, i32 noundef %4231) #9
  br label %4233

4233:                                             ; preds = %4216, %4199
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %4234

4234:                                             ; preds = %4233
  br label %4235

4235:                                             ; preds = %4234
  call void @exit(i32 noundef 1) #11
  unreachable

4236:                                             ; No predecessors!
  br label %4237

4237:                                             ; preds = %4236
  br label %4238

4238:                                             ; preds = %4237, %4179
  br label %4239

4239:                                             ; preds = %4238
  br label %4240

4240:                                             ; preds = %4239
  br label %4241

4241:                                             ; preds = %4240
  %4242 = load i32, ptr @test_count, align 4, !tbaa !5
  %4243 = add nsw i32 %4242, 1
  store i32 %4243, ptr @test_count, align 4, !tbaa !5
  %4244 = load ptr, ptr %80, align 8, !tbaa !9
  %4245 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %4244, ptr noundef %83)
  %4246 = icmp eq i32 %4245, -1
  br i1 %4246, label %4247, label %4300

4247:                                             ; preds = %4241
  br label %4248

4248:                                             ; preds = %4247
  br label %4249

4249:                                             ; preds = %4248
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %4250 = call ptr @__errno_location() #10
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  store i32 %4251, ptr %92, align 4, !tbaa !5
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = call i32 @s2n_print_stacktrace(ptr noundef %4252)
  %4254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4255 = trunc i8 %4254 to i1
  br i1 %4255, label %4256, label %4278

4256:                                             ; preds = %4249
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = call i32 @fileno(ptr noundef %4257) #9
  %4259 = call i32 @isatty(i32 noundef %4258) #9
  %4260 = icmp ne i32 %4259, 0
  br i1 %4260, label %4261, label %4278

4261:                                             ; preds = %4256
  %4262 = load i32, ptr %92, align 4, !tbaa !5
  %4263 = call ptr @__errno_location() #10
  store i32 %4262, ptr %4263, align 4, !tbaa !5
  %4264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4265 = load i32, ptr @test_count, align 4, !tbaa !5
  %4266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call ptr @s2n_strerror(i32 noundef %4267, ptr noundef @.str.4)
  %4269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call ptr @s2n_strerror_debug(i32 noundef %4270, ptr noundef @.str.4)
  %4272 = call ptr @__errno_location() #10
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @strerror(i32 noundef %4273) #9
  %4275 = call ptr @__errno_location() #10
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4264, ptr noundef @.str.2, i32 noundef %4265, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 163, ptr noundef %4268, ptr noundef %4271, ptr noundef %4274, i32 noundef %4276) #9
  br label %4295

4278:                                             ; preds = %4256, %4249
  %4279 = load i32, ptr %92, align 4, !tbaa !5
  %4280 = call ptr @__errno_location() #10
  store i32 %4279, ptr %4280, align 4, !tbaa !5
  %4281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4282 = load i32, ptr @test_count, align 4, !tbaa !5
  %4283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4284 = load i32, ptr %4283, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror(i32 noundef %4284, ptr noundef @.str.4)
  %4286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @s2n_strerror_debug(i32 noundef %4287, ptr noundef @.str.4)
  %4289 = call ptr @__errno_location() #10
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @strerror(i32 noundef %4290) #9
  %4292 = call ptr @__errno_location() #10
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4281, ptr noundef @.str.5, i32 noundef %4282, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 163, ptr noundef %4285, ptr noundef %4288, ptr noundef %4291, i32 noundef %4293) #9
  br label %4295

4295:                                             ; preds = %4278, %4261
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296
  call void @exit(i32 noundef 1) #11
  unreachable

4298:                                             ; No predecessors!
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299, %4241
  br label %4301

4301:                                             ; preds = %4300
  br label %4302

4302:                                             ; preds = %4301
  br label %4303

4303:                                             ; preds = %4302
  %4304 = load i32, ptr @test_count, align 4, !tbaa !5
  %4305 = add nsw i32 %4304, 1
  store i32 %4305, ptr @test_count, align 4, !tbaa !5
  %4306 = load ptr, ptr %83, align 8, !tbaa !9
  %4307 = load ptr, ptr %12, align 8, !tbaa !9
  %4308 = getelementptr inbounds %struct.s2n_security_policy, ptr %4307, i32 0, i32 2
  %4309 = load ptr, ptr %4308, align 8, !tbaa !44
  %4310 = icmp eq ptr %4306, %4309
  br i1 %4310, label %4364, label %4311

4311:                                             ; preds = %4303
  br label %4312

4312:                                             ; preds = %4311
  br label %4313

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

4320:                                             ; preds = %4313
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = call i32 @fileno(ptr noundef %4321) #9
  %4323 = call i32 @isatty(i32 noundef %4322) #9
  %4324 = icmp ne i32 %4323, 0
  br i1 %4324, label %4325, label %4342

4325:                                             ; preds = %4320
  %4326 = load i32, ptr %93, align 4, !tbaa !5
  %4327 = call ptr @__errno_location() #10
  store i32 %4326, ptr %4327, align 4, !tbaa !5
  %4328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4329 = load i32, ptr @test_count, align 4, !tbaa !5
  %4330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4331 = load i32, ptr %4330, align 4, !tbaa !5
  %4332 = call ptr @s2n_strerror(i32 noundef %4331, ptr noundef @.str.4)
  %4333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror_debug(i32 noundef %4334, ptr noundef @.str.4)
  %4336 = call ptr @__errno_location() #10
  %4337 = load i32, ptr %4336, align 4, !tbaa !5
  %4338 = call ptr @strerror(i32 noundef %4337) #9
  %4339 = call ptr @__errno_location() #10
  %4340 = load i32, ptr %4339, align 4, !tbaa !5
  %4341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4328, ptr noundef @.str.2, i32 noundef %4329, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 164, ptr noundef %4332, ptr noundef %4335, ptr noundef %4338, i32 noundef %4340) #9
  br label %4359

4342:                                             ; preds = %4320, %4313
  %4343 = load i32, ptr %93, align 4, !tbaa !5
  %4344 = call ptr @__errno_location() #10
  store i32 %4343, ptr %4344, align 4, !tbaa !5
  %4345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @s2n_strerror(i32 noundef %4348, ptr noundef @.str.4)
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror_debug(i32 noundef %4351, ptr noundef @.str.4)
  %4353 = call ptr @__errno_location() #10
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @strerror(i32 noundef %4354) #9
  %4356 = call ptr @__errno_location() #10
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4345, ptr noundef @.str.5, i32 noundef %4346, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 164, ptr noundef %4349, ptr noundef %4352, ptr noundef %4355, i32 noundef %4357) #9
  br label %4359

4359:                                             ; preds = %4342, %4325
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4360

4360:                                             ; preds = %4359
  br label %4361

4361:                                             ; preds = %4360
  call void @exit(i32 noundef 1) #11
  unreachable

4362:                                             ; No predecessors!
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363, %4303
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

4366:                                             ; preds = %4365
  br label %4367

4367:                                             ; preds = %4366
  %4368 = load i32, ptr @test_count, align 4, !tbaa !5
  %4369 = add nsw i32 %4368, 1
  store i32 %4369, ptr @test_count, align 4, !tbaa !5
  %4370 = load ptr, ptr %80, align 8, !tbaa !9
  %4371 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %4370, ptr noundef %84)
  %4372 = icmp eq i32 %4371, -1
  br i1 %4372, label %4373, label %4426

4373:                                             ; preds = %4367
  br label %4374

4374:                                             ; preds = %4373
  br label %4375

4375:                                             ; preds = %4374
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %4376 = call ptr @__errno_location() #10
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  store i32 %4377, ptr %94, align 4, !tbaa !5
  %4378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4379 = call i32 @s2n_print_stacktrace(ptr noundef %4378)
  %4380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4381 = trunc i8 %4380 to i1
  br i1 %4381, label %4382, label %4404

4382:                                             ; preds = %4375
  %4383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4384 = call i32 @fileno(ptr noundef %4383) #9
  %4385 = call i32 @isatty(i32 noundef %4384) #9
  %4386 = icmp ne i32 %4385, 0
  br i1 %4386, label %4387, label %4404

4387:                                             ; preds = %4382
  %4388 = load i32, ptr %94, align 4, !tbaa !5
  %4389 = call ptr @__errno_location() #10
  store i32 %4388, ptr %4389, align 4, !tbaa !5
  %4390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4391 = load i32, ptr @test_count, align 4, !tbaa !5
  %4392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror(i32 noundef %4393, ptr noundef @.str.4)
  %4395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4396 = load i32, ptr %4395, align 4, !tbaa !5
  %4397 = call ptr @s2n_strerror_debug(i32 noundef %4396, ptr noundef @.str.4)
  %4398 = call ptr @__errno_location() #10
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  %4400 = call ptr @strerror(i32 noundef %4399) #9
  %4401 = call ptr @__errno_location() #10
  %4402 = load i32, ptr %4401, align 4, !tbaa !5
  %4403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4390, ptr noundef @.str.2, i32 noundef %4391, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4394, ptr noundef %4397, ptr noundef %4400, i32 noundef %4402) #9
  br label %4421

4404:                                             ; preds = %4382, %4375
  %4405 = load i32, ptr %94, align 4, !tbaa !5
  %4406 = call ptr @__errno_location() #10
  store i32 %4405, ptr %4406, align 4, !tbaa !5
  %4407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4408 = load i32, ptr @test_count, align 4, !tbaa !5
  %4409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror(i32 noundef %4410, ptr noundef @.str.4)
  %4412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror_debug(i32 noundef %4413, ptr noundef @.str.4)
  %4415 = call ptr @__errno_location() #10
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @strerror(i32 noundef %4416) #9
  %4418 = call ptr @__errno_location() #10
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4407, ptr noundef @.str.5, i32 noundef %4408, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4411, ptr noundef %4414, ptr noundef %4417, i32 noundef %4419) #9
  br label %4421

4421:                                             ; preds = %4404, %4387
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %4422

4422:                                             ; preds = %4421
  br label %4423

4423:                                             ; preds = %4422
  call void @exit(i32 noundef 1) #11
  unreachable

4424:                                             ; No predecessors!
  br label %4425

4425:                                             ; preds = %4424
  br label %4426

4426:                                             ; preds = %4425, %4367
  br label %4427

4427:                                             ; preds = %4426
  br label %4428

4428:                                             ; preds = %4427
  br label %4429

4429:                                             ; preds = %4428
  %4430 = load i32, ptr @test_count, align 4, !tbaa !5
  %4431 = add nsw i32 %4430, 1
  store i32 %4431, ptr @test_count, align 4, !tbaa !5
  %4432 = load ptr, ptr %84, align 8, !tbaa !9
  %4433 = load ptr, ptr %12, align 8, !tbaa !9
  %4434 = getelementptr inbounds %struct.s2n_security_policy, ptr %4433, i32 0, i32 3
  %4435 = load ptr, ptr %4434, align 8, !tbaa !45
  %4436 = icmp eq ptr %4432, %4435
  br i1 %4436, label %4490, label %4437

4437:                                             ; preds = %4429
  br label %4438

4438:                                             ; preds = %4437
  br label %4439

4439:                                             ; preds = %4438
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %4440 = call ptr @__errno_location() #10
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  store i32 %4441, ptr %95, align 4, !tbaa !5
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = call i32 @s2n_print_stacktrace(ptr noundef %4442)
  %4444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4445 = trunc i8 %4444 to i1
  br i1 %4445, label %4446, label %4468

4446:                                             ; preds = %4439
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @fileno(ptr noundef %4447) #9
  %4449 = call i32 @isatty(i32 noundef %4448) #9
  %4450 = icmp ne i32 %4449, 0
  br i1 %4450, label %4451, label %4468

4451:                                             ; preds = %4446
  %4452 = load i32, ptr %95, align 4, !tbaa !5
  %4453 = call ptr @__errno_location() #10
  store i32 %4452, ptr %4453, align 4, !tbaa !5
  %4454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4455 = load i32, ptr @test_count, align 4, !tbaa !5
  %4456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4457 = load i32, ptr %4456, align 4, !tbaa !5
  %4458 = call ptr @s2n_strerror(i32 noundef %4457, ptr noundef @.str.4)
  %4459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4460 = load i32, ptr %4459, align 4, !tbaa !5
  %4461 = call ptr @s2n_strerror_debug(i32 noundef %4460, ptr noundef @.str.4)
  %4462 = call ptr @__errno_location() #10
  %4463 = load i32, ptr %4462, align 4, !tbaa !5
  %4464 = call ptr @strerror(i32 noundef %4463) #9
  %4465 = call ptr @__errno_location() #10
  %4466 = load i32, ptr %4465, align 4, !tbaa !5
  %4467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4454, ptr noundef @.str.2, i32 noundef %4455, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 167, ptr noundef %4458, ptr noundef %4461, ptr noundef %4464, i32 noundef %4466) #9
  br label %4485

4468:                                             ; preds = %4446, %4439
  %4469 = load i32, ptr %95, align 4, !tbaa !5
  %4470 = call ptr @__errno_location() #10
  store i32 %4469, ptr %4470, align 4, !tbaa !5
  %4471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4472 = load i32, ptr @test_count, align 4, !tbaa !5
  %4473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call ptr @s2n_strerror(i32 noundef %4474, ptr noundef @.str.4)
  %4476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4477 = load i32, ptr %4476, align 4, !tbaa !5
  %4478 = call ptr @s2n_strerror_debug(i32 noundef %4477, ptr noundef @.str.4)
  %4479 = call ptr @__errno_location() #10
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call ptr @strerror(i32 noundef %4480) #9
  %4482 = call ptr @__errno_location() #10
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  %4484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4471, ptr noundef @.str.5, i32 noundef %4472, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 167, ptr noundef %4475, ptr noundef %4478, ptr noundef %4481, i32 noundef %4483) #9
  br label %4485

4485:                                             ; preds = %4468, %4451
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4486

4486:                                             ; preds = %4485
  br label %4487

4487:                                             ; preds = %4486
  call void @exit(i32 noundef 1) #11
  unreachable

4488:                                             ; No predecessors!
  br label %4489

4489:                                             ; preds = %4488
  br label %4490

4490:                                             ; preds = %4489, %4429
  br label %4491

4491:                                             ; preds = %4490
  br label %4492

4492:                                             ; preds = %4491
  br label %4493

4493:                                             ; preds = %4492
  %4494 = load i32, ptr @test_count, align 4, !tbaa !5
  %4495 = add nsw i32 %4494, 1
  store i32 %4495, ptr @test_count, align 4, !tbaa !5
  %4496 = load ptr, ptr %80, align 8, !tbaa !9
  %4497 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %4496, ptr noundef %85)
  %4498 = icmp eq i32 %4497, -1
  br i1 %4498, label %4499, label %4552

4499:                                             ; preds = %4493
  br label %4500

4500:                                             ; preds = %4499
  br label %4501

4501:                                             ; preds = %4500
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %4502 = call ptr @__errno_location() #10
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  store i32 %4503, ptr %96, align 4, !tbaa !5
  %4504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4505 = call i32 @s2n_print_stacktrace(ptr noundef %4504)
  %4506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4507 = trunc i8 %4506 to i1
  br i1 %4507, label %4508, label %4530

4508:                                             ; preds = %4501
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = call i32 @fileno(ptr noundef %4509) #9
  %4511 = call i32 @isatty(i32 noundef %4510) #9
  %4512 = icmp ne i32 %4511, 0
  br i1 %4512, label %4513, label %4530

4513:                                             ; preds = %4508
  %4514 = load i32, ptr %96, align 4, !tbaa !5
  %4515 = call ptr @__errno_location() #10
  store i32 %4514, ptr %4515, align 4, !tbaa !5
  %4516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4517 = load i32, ptr @test_count, align 4, !tbaa !5
  %4518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = call ptr @s2n_strerror(i32 noundef %4519, ptr noundef @.str.4)
  %4521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4522 = load i32, ptr %4521, align 4, !tbaa !5
  %4523 = call ptr @s2n_strerror_debug(i32 noundef %4522, ptr noundef @.str.4)
  %4524 = call ptr @__errno_location() #10
  %4525 = load i32, ptr %4524, align 4, !tbaa !5
  %4526 = call ptr @strerror(i32 noundef %4525) #9
  %4527 = call ptr @__errno_location() #10
  %4528 = load i32, ptr %4527, align 4, !tbaa !5
  %4529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4516, ptr noundef @.str.2, i32 noundef %4517, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 169, ptr noundef %4520, ptr noundef %4523, ptr noundef %4526, i32 noundef %4528) #9
  br label %4547

4530:                                             ; preds = %4508, %4501
  %4531 = load i32, ptr %96, align 4, !tbaa !5
  %4532 = call ptr @__errno_location() #10
  store i32 %4531, ptr %4532, align 4, !tbaa !5
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = load i32, ptr @test_count, align 4, !tbaa !5
  %4535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  %4537 = call ptr @s2n_strerror(i32 noundef %4536, ptr noundef @.str.4)
  %4538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4539 = load i32, ptr %4538, align 4, !tbaa !5
  %4540 = call ptr @s2n_strerror_debug(i32 noundef %4539, ptr noundef @.str.4)
  %4541 = call ptr @__errno_location() #10
  %4542 = load i32, ptr %4541, align 4, !tbaa !5
  %4543 = call ptr @strerror(i32 noundef %4542) #9
  %4544 = call ptr @__errno_location() #10
  %4545 = load i32, ptr %4544, align 4, !tbaa !5
  %4546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4533, ptr noundef @.str.5, i32 noundef %4534, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 169, ptr noundef %4537, ptr noundef %4540, ptr noundef %4543, i32 noundef %4545) #9
  br label %4547

4547:                                             ; preds = %4530, %4513
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4548

4548:                                             ; preds = %4547
  br label %4549

4549:                                             ; preds = %4548
  call void @exit(i32 noundef 1) #11
  unreachable

4550:                                             ; No predecessors!
  br label %4551

4551:                                             ; preds = %4550
  br label %4552

4552:                                             ; preds = %4551, %4493
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

4554:                                             ; preds = %4553
  br label %4555

4555:                                             ; preds = %4554
  %4556 = load i32, ptr @test_count, align 4, !tbaa !5
  %4557 = add nsw i32 %4556, 1
  store i32 %4557, ptr @test_count, align 4, !tbaa !5
  %4558 = load ptr, ptr %85, align 8, !tbaa !9
  %4559 = load ptr, ptr %12, align 8, !tbaa !9
  %4560 = getelementptr inbounds %struct.s2n_security_policy, ptr %4559, i32 0, i32 5
  %4561 = load ptr, ptr %4560, align 8, !tbaa !46
  %4562 = icmp eq ptr %4558, %4561
  br i1 %4562, label %4616, label %4563

4563:                                             ; preds = %4555
  br label %4564

4564:                                             ; preds = %4563
  br label %4565

4565:                                             ; preds = %4564
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %4566 = call ptr @__errno_location() #10
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  store i32 %4567, ptr %97, align 4, !tbaa !5
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = call i32 @s2n_print_stacktrace(ptr noundef %4568)
  %4570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4571 = trunc i8 %4570 to i1
  br i1 %4571, label %4572, label %4594

4572:                                             ; preds = %4565
  %4573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4574 = call i32 @fileno(ptr noundef %4573) #9
  %4575 = call i32 @isatty(i32 noundef %4574) #9
  %4576 = icmp ne i32 %4575, 0
  br i1 %4576, label %4577, label %4594

4577:                                             ; preds = %4572
  %4578 = load i32, ptr %97, align 4, !tbaa !5
  %4579 = call ptr @__errno_location() #10
  store i32 %4578, ptr %4579, align 4, !tbaa !5
  %4580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4581 = load i32, ptr @test_count, align 4, !tbaa !5
  %4582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = call ptr @s2n_strerror(i32 noundef %4583, ptr noundef @.str.4)
  %4585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  %4587 = call ptr @s2n_strerror_debug(i32 noundef %4586, ptr noundef @.str.4)
  %4588 = call ptr @__errno_location() #10
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call ptr @strerror(i32 noundef %4589) #9
  %4591 = call ptr @__errno_location() #10
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4580, ptr noundef @.str.2, i32 noundef %4581, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 170, ptr noundef %4584, ptr noundef %4587, ptr noundef %4590, i32 noundef %4592) #9
  br label %4611

4594:                                             ; preds = %4572, %4565
  %4595 = load i32, ptr %97, align 4, !tbaa !5
  %4596 = call ptr @__errno_location() #10
  store i32 %4595, ptr %4596, align 4, !tbaa !5
  %4597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4598 = load i32, ptr @test_count, align 4, !tbaa !5
  %4599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  %4601 = call ptr @s2n_strerror(i32 noundef %4600, ptr noundef @.str.4)
  %4602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4603 = load i32, ptr %4602, align 4, !tbaa !5
  %4604 = call ptr @s2n_strerror_debug(i32 noundef %4603, ptr noundef @.str.4)
  %4605 = call ptr @__errno_location() #10
  %4606 = load i32, ptr %4605, align 4, !tbaa !5
  %4607 = call ptr @strerror(i32 noundef %4606) #9
  %4608 = call ptr @__errno_location() #10
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  %4610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4597, ptr noundef @.str.5, i32 noundef %4598, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 170, ptr noundef %4601, ptr noundef %4604, ptr noundef %4607, i32 noundef %4609) #9
  br label %4611

4611:                                             ; preds = %4594, %4577
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4612

4612:                                             ; preds = %4611
  br label %4613

4613:                                             ; preds = %4612
  call void @exit(i32 noundef 1) #11
  unreachable

4614:                                             ; No predecessors!
  br label %4615

4615:                                             ; preds = %4614
  br label %4616

4616:                                             ; preds = %4615, %4555
  br label %4617

4617:                                             ; preds = %4616
  br label %4618

4618:                                             ; preds = %4617
  br label %4619

4619:                                             ; preds = %4618
  %4620 = load i32, ptr @test_count, align 4, !tbaa !5
  %4621 = add nsw i32 %4620, 1
  store i32 %4621, ptr @test_count, align 4, !tbaa !5
  %4622 = load ptr, ptr %80, align 8, !tbaa !9
  %4623 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4622, ptr noundef @.str.54)
  %4624 = icmp eq i32 %4623, -1
  br i1 %4624, label %4625, label %4678

4625:                                             ; preds = %4619
  br label %4626

4626:                                             ; preds = %4625
  br label %4627

4627:                                             ; preds = %4626
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4628 = call ptr @__errno_location() #10
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  store i32 %4629, ptr %98, align 4, !tbaa !5
  %4630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4631 = call i32 @s2n_print_stacktrace(ptr noundef %4630)
  %4632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4633 = trunc i8 %4632 to i1
  br i1 %4633, label %4634, label %4656

4634:                                             ; preds = %4627
  %4635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4636 = call i32 @fileno(ptr noundef %4635) #9
  %4637 = call i32 @isatty(i32 noundef %4636) #9
  %4638 = icmp ne i32 %4637, 0
  br i1 %4638, label %4639, label %4656

4639:                                             ; preds = %4634
  %4640 = load i32, ptr %98, align 4, !tbaa !5
  %4641 = call ptr @__errno_location() #10
  store i32 %4640, ptr %4641, align 4, !tbaa !5
  %4642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4643 = load i32, ptr @test_count, align 4, !tbaa !5
  %4644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call ptr @s2n_strerror(i32 noundef %4645, ptr noundef @.str.4)
  %4647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = call ptr @s2n_strerror_debug(i32 noundef %4648, ptr noundef @.str.4)
  %4650 = call ptr @__errno_location() #10
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call ptr @strerror(i32 noundef %4651) #9
  %4653 = call ptr @__errno_location() #10
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4642, ptr noundef @.str.2, i32 noundef %4643, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4646, ptr noundef %4649, ptr noundef %4652, i32 noundef %4654) #9
  br label %4673

4656:                                             ; preds = %4634, %4627
  %4657 = load i32, ptr %98, align 4, !tbaa !5
  %4658 = call ptr @__errno_location() #10
  store i32 %4657, ptr %4658, align 4, !tbaa !5
  %4659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4660 = load i32, ptr @test_count, align 4, !tbaa !5
  %4661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4662 = load i32, ptr %4661, align 4, !tbaa !5
  %4663 = call ptr @s2n_strerror(i32 noundef %4662, ptr noundef @.str.4)
  %4664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4665 = load i32, ptr %4664, align 4, !tbaa !5
  %4666 = call ptr @s2n_strerror_debug(i32 noundef %4665, ptr noundef @.str.4)
  %4667 = call ptr @__errno_location() #10
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  %4669 = call ptr @strerror(i32 noundef %4668) #9
  %4670 = call ptr @__errno_location() #10
  %4671 = load i32, ptr %4670, align 4, !tbaa !5
  %4672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4659, ptr noundef @.str.5, i32 noundef %4660, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4663, ptr noundef %4666, ptr noundef %4669, i32 noundef %4671) #9
  br label %4673

4673:                                             ; preds = %4656, %4639
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4674

4674:                                             ; preds = %4673
  br label %4675

4675:                                             ; preds = %4674
  call void @exit(i32 noundef 1) #11
  unreachable

4676:                                             ; No predecessors!
  br label %4677

4677:                                             ; preds = %4676
  br label %4678

4678:                                             ; preds = %4677, %4619
  br label %4679

4679:                                             ; preds = %4678
  br label %4680

4680:                                             ; preds = %4679
  br label %4681

4681:                                             ; preds = %4680
  %4682 = load i32, ptr @test_count, align 4, !tbaa !5
  %4683 = add nsw i32 %4682, 1
  store i32 %4683, ptr @test_count, align 4, !tbaa !5
  %4684 = load ptr, ptr %80, align 8, !tbaa !9
  %4685 = getelementptr inbounds %struct.s2n_connection, ptr %4684, i32 0, i32 2
  %4686 = load ptr, ptr %4685, align 8, !tbaa !15
  %4687 = icmp eq ptr %4686, null
  br i1 %4687, label %4688, label %4741

4688:                                             ; preds = %4681
  br label %4689

4689:                                             ; preds = %4688
  br label %4690

4690:                                             ; preds = %4689
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %4691 = call ptr @__errno_location() #10
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  store i32 %4692, ptr %99, align 4, !tbaa !5
  %4693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4694 = call i32 @s2n_print_stacktrace(ptr noundef %4693)
  %4695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4696 = trunc i8 %4695 to i1
  br i1 %4696, label %4697, label %4719

4697:                                             ; preds = %4690
  %4698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4699 = call i32 @fileno(ptr noundef %4698) #9
  %4700 = call i32 @isatty(i32 noundef %4699) #9
  %4701 = icmp ne i32 %4700, 0
  br i1 %4701, label %4702, label %4719

4702:                                             ; preds = %4697
  %4703 = load i32, ptr %99, align 4, !tbaa !5
  %4704 = call ptr @__errno_location() #10
  store i32 %4703, ptr %4704, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4708, ptr noundef @.str.4)
  %4710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4711 = load i32, ptr %4710, align 4, !tbaa !5
  %4712 = call ptr @s2n_strerror_debug(i32 noundef %4711, ptr noundef @.str.4)
  %4713 = call ptr @__errno_location() #10
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @strerror(i32 noundef %4714) #9
  %4716 = call ptr @__errno_location() #10
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4705, ptr noundef @.str.2, i32 noundef %4706, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 173, ptr noundef %4709, ptr noundef %4712, ptr noundef %4715, i32 noundef %4717) #9
  br label %4736

4719:                                             ; preds = %4697, %4690
  %4720 = load i32, ptr %99, align 4, !tbaa !5
  %4721 = call ptr @__errno_location() #10
  store i32 %4720, ptr %4721, align 4, !tbaa !5
  %4722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4723 = load i32, ptr @test_count, align 4, !tbaa !5
  %4724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4725 = load i32, ptr %4724, align 4, !tbaa !5
  %4726 = call ptr @s2n_strerror(i32 noundef %4725, ptr noundef @.str.4)
  %4727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4728 = load i32, ptr %4727, align 4, !tbaa !5
  %4729 = call ptr @s2n_strerror_debug(i32 noundef %4728, ptr noundef @.str.4)
  %4730 = call ptr @__errno_location() #10
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  %4732 = call ptr @strerror(i32 noundef %4731) #9
  %4733 = call ptr @__errno_location() #10
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4722, ptr noundef @.str.5, i32 noundef %4723, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 173, ptr noundef %4726, ptr noundef %4729, ptr noundef %4732, i32 noundef %4734) #9
  br label %4736

4736:                                             ; preds = %4719, %4702
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4737

4737:                                             ; preds = %4736
  br label %4738

4738:                                             ; preds = %4737
  call void @exit(i32 noundef 1) #11
  unreachable

4739:                                             ; No predecessors!
  br label %4740

4740:                                             ; preds = %4739
  br label %4741

4741:                                             ; preds = %4740, %4681
  br label %4742

4742:                                             ; preds = %4741
  br label %4743

4743:                                             ; preds = %4742
  store ptr null, ptr %81, align 8, !tbaa !9
  br label %4744

4744:                                             ; preds = %4743
  %4745 = load i32, ptr @test_count, align 4, !tbaa !5
  %4746 = add nsw i32 %4745, 1
  store i32 %4746, ptr @test_count, align 4, !tbaa !5
  %4747 = load ptr, ptr %80, align 8, !tbaa !9
  %4748 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %4747, ptr noundef %81)
  %4749 = icmp eq i32 %4748, -1
  br i1 %4749, label %4750, label %4803

4750:                                             ; preds = %4744
  br label %4751

4751:                                             ; preds = %4750
  br label %4752

4752:                                             ; preds = %4751
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4753 = call ptr @__errno_location() #10
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  store i32 %4754, ptr %100, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = call i32 @s2n_print_stacktrace(ptr noundef %4755)
  %4757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4758 = trunc i8 %4757 to i1
  br i1 %4758, label %4759, label %4781

4759:                                             ; preds = %4752
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = call i32 @fileno(ptr noundef %4760) #9
  %4762 = call i32 @isatty(i32 noundef %4761) #9
  %4763 = icmp ne i32 %4762, 0
  br i1 %4763, label %4764, label %4781

4764:                                             ; preds = %4759
  %4765 = load i32, ptr %100, align 4, !tbaa !5
  %4766 = call ptr @__errno_location() #10
  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() #10
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #9
  %4778 = call ptr @__errno_location() #10
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4767, ptr noundef @.str.2, i32 noundef %4768, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4771, ptr noundef %4774, ptr noundef %4777, i32 noundef %4779) #9
  br label %4798

4781:                                             ; preds = %4759, %4752
  %4782 = load i32, ptr %100, align 4, !tbaa !5
  %4783 = call ptr @__errno_location() #10
  store i32 %4782, ptr %4783, align 4, !tbaa !5
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = load i32, ptr @test_count, align 4, !tbaa !5
  %4786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror(i32 noundef %4787, ptr noundef @.str.4)
  %4789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call ptr @s2n_strerror_debug(i32 noundef %4790, ptr noundef @.str.4)
  %4792 = call ptr @__errno_location() #10
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @strerror(i32 noundef %4793) #9
  %4795 = call ptr @__errno_location() #10
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4784, ptr noundef @.str.5, i32 noundef %4785, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4788, ptr noundef %4791, ptr noundef %4794, i32 noundef %4796) #9
  br label %4798

4798:                                             ; preds = %4781, %4764
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4799

4799:                                             ; preds = %4798
  br label %4800

4800:                                             ; preds = %4799
  call void @exit(i32 noundef 1) #11
  unreachable

4801:                                             ; No predecessors!
  br label %4802

4802:                                             ; preds = %4801
  br label %4803

4803:                                             ; preds = %4802, %4744
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

4805:                                             ; preds = %4804
  br label %4806

4806:                                             ; preds = %4805
  %4807 = load i32, ptr @test_count, align 4, !tbaa !5
  %4808 = add nsw i32 %4807, 1
  store i32 %4808, ptr @test_count, align 4, !tbaa !5
  %4809 = load ptr, ptr %81, align 8, !tbaa !9
  %4810 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_fips, i32 0, i32 1), align 8, !tbaa !42
  %4811 = icmp eq ptr %4809, %4810
  br i1 %4811, label %4865, label %4812

4812:                                             ; preds = %4806
  br label %4813

4813:                                             ; preds = %4812
  br label %4814

4814:                                             ; preds = %4813
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %4815 = call ptr @__errno_location() #10
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  store i32 %4816, ptr %101, align 4, !tbaa !5
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = call i32 @s2n_print_stacktrace(ptr noundef %4817)
  %4819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4820 = trunc i8 %4819 to i1
  br i1 %4820, label %4821, label %4843

4821:                                             ; preds = %4814
  %4822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4823 = call i32 @fileno(ptr noundef %4822) #9
  %4824 = call i32 @isatty(i32 noundef %4823) #9
  %4825 = icmp ne i32 %4824, 0
  br i1 %4825, label %4826, label %4843

4826:                                             ; preds = %4821
  %4827 = load i32, ptr %101, align 4, !tbaa !5
  %4828 = call ptr @__errno_location() #10
  store i32 %4827, ptr %4828, align 4, !tbaa !5
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = load i32, ptr @test_count, align 4, !tbaa !5
  %4831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call ptr @s2n_strerror(i32 noundef %4832, ptr noundef @.str.4)
  %4834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4835 = load i32, ptr %4834, align 4, !tbaa !5
  %4836 = call ptr @s2n_strerror_debug(i32 noundef %4835, ptr noundef @.str.4)
  %4837 = call ptr @__errno_location() #10
  %4838 = load i32, ptr %4837, align 4, !tbaa !5
  %4839 = call ptr @strerror(i32 noundef %4838) #9
  %4840 = call ptr @__errno_location() #10
  %4841 = load i32, ptr %4840, align 4, !tbaa !5
  %4842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4829, ptr noundef @.str.2, i32 noundef %4830, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 177, ptr noundef %4833, ptr noundef %4836, ptr noundef %4839, i32 noundef %4841) #9
  br label %4860

4843:                                             ; preds = %4821, %4814
  %4844 = load i32, ptr %101, align 4, !tbaa !5
  %4845 = call ptr @__errno_location() #10
  store i32 %4844, ptr %4845, align 4, !tbaa !5
  %4846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4847 = load i32, ptr @test_count, align 4, !tbaa !5
  %4848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror(i32 noundef %4849, ptr noundef @.str.4)
  %4851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call ptr @s2n_strerror_debug(i32 noundef %4852, ptr noundef @.str.4)
  %4854 = call ptr @__errno_location() #10
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  %4856 = call ptr @strerror(i32 noundef %4855) #9
  %4857 = call ptr @__errno_location() #10
  %4858 = load i32, ptr %4857, align 4, !tbaa !5
  %4859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4846, ptr noundef @.str.5, i32 noundef %4847, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 177, ptr noundef %4850, ptr noundef %4853, ptr noundef %4856, i32 noundef %4858) #9
  br label %4860

4860:                                             ; preds = %4843, %4826
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %4861

4861:                                             ; preds = %4860
  br label %4862

4862:                                             ; preds = %4861
  call void @exit(i32 noundef 1) #11
  unreachable

4863:                                             ; No predecessors!
  br label %4864

4864:                                             ; preds = %4863
  br label %4865

4865:                                             ; preds = %4864, %4806
  br label %4866

4866:                                             ; preds = %4865
  br label %4867

4867:                                             ; preds = %4866
  store ptr null, ptr %82, align 8, !tbaa !9
  br label %4868

4868:                                             ; preds = %4867
  %4869 = load i32, ptr @test_count, align 4, !tbaa !5
  %4870 = add nsw i32 %4869, 1
  store i32 %4870, ptr @test_count, align 4, !tbaa !5
  %4871 = load ptr, ptr %80, align 8, !tbaa !9
  %4872 = call i32 @s2n_connection_get_security_policy(ptr noundef %4871, ptr noundef %82)
  %4873 = icmp eq i32 %4872, -1
  br i1 %4873, label %4874, label %4927

4874:                                             ; preds = %4868
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %4877 = call ptr @__errno_location() #10
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  store i32 %4878, ptr %102, align 4, !tbaa !5
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = call i32 @s2n_print_stacktrace(ptr noundef %4879)
  %4881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4882 = trunc i8 %4881 to i1
  br i1 %4882, label %4883, label %4905

4883:                                             ; preds = %4876
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = call i32 @fileno(ptr noundef %4884) #9
  %4886 = call i32 @isatty(i32 noundef %4885) #9
  %4887 = icmp ne i32 %4886, 0
  br i1 %4887, label %4888, label %4905

4888:                                             ; preds = %4883
  %4889 = load i32, ptr %102, align 4, !tbaa !5
  %4890 = call ptr @__errno_location() #10
  store i32 %4889, ptr %4890, align 4, !tbaa !5
  %4891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4892 = load i32, ptr @test_count, align 4, !tbaa !5
  %4893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror(i32 noundef %4894, ptr noundef @.str.4)
  %4896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror_debug(i32 noundef %4897, ptr noundef @.str.4)
  %4899 = call ptr @__errno_location() #10
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call ptr @strerror(i32 noundef %4900) #9
  %4902 = call ptr @__errno_location() #10
  %4903 = load i32, ptr %4902, align 4, !tbaa !5
  %4904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4891, ptr noundef @.str.2, i32 noundef %4892, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 180, ptr noundef %4895, ptr noundef %4898, ptr noundef %4901, i32 noundef %4903) #9
  br label %4922

4905:                                             ; preds = %4883, %4876
  %4906 = load i32, ptr %102, align 4, !tbaa !5
  %4907 = call ptr @__errno_location() #10
  store i32 %4906, ptr %4907, align 4, !tbaa !5
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = load i32, ptr @test_count, align 4, !tbaa !5
  %4910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call ptr @s2n_strerror(i32 noundef %4911, ptr noundef @.str.4)
  %4913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call ptr @s2n_strerror_debug(i32 noundef %4914, ptr noundef @.str.4)
  %4916 = call ptr @__errno_location() #10
  %4917 = load i32, ptr %4916, align 4, !tbaa !5
  %4918 = call ptr @strerror(i32 noundef %4917) #9
  %4919 = call ptr @__errno_location() #10
  %4920 = load i32, ptr %4919, align 4, !tbaa !5
  %4921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4908, ptr noundef @.str.5, i32 noundef %4909, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 180, ptr noundef %4912, ptr noundef %4915, ptr noundef %4918, i32 noundef %4920) #9
  br label %4922

4922:                                             ; preds = %4905, %4888
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923
  call void @exit(i32 noundef 1) #11
  unreachable

4925:                                             ; No predecessors!
  br label %4926

4926:                                             ; preds = %4925
  br label %4927

4927:                                             ; preds = %4926, %4868
  br label %4928

4928:                                             ; preds = %4927
  br label %4929

4929:                                             ; preds = %4928
  br label %4930

4930:                                             ; preds = %4929
  %4931 = load i32, ptr @test_count, align 4, !tbaa !5
  %4932 = add nsw i32 %4931, 1
  store i32 %4932, ptr @test_count, align 4, !tbaa !5
  %4933 = load ptr, ptr %82, align 8, !tbaa !9
  %4934 = icmp eq ptr %4933, @security_policy_test_all_fips
  br i1 %4934, label %4988, label %4935

4935:                                             ; preds = %4930
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

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

4944:                                             ; preds = %4937
  %4945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4946 = call i32 @fileno(ptr noundef %4945) #9
  %4947 = call i32 @isatty(i32 noundef %4946) #9
  %4948 = icmp ne i32 %4947, 0
  br i1 %4948, label %4949, label %4966

4949:                                             ; preds = %4944
  %4950 = load i32, ptr %103, align 4, !tbaa !5
  %4951 = call ptr @__errno_location() #10
  store i32 %4950, ptr %4951, align 4, !tbaa !5
  %4952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4953 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4955, ptr noundef @.str.4)
  %4957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @s2n_strerror_debug(i32 noundef %4958, ptr noundef @.str.4)
  %4960 = call ptr @__errno_location() #10
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call ptr @strerror(i32 noundef %4961) #9
  %4963 = call ptr @__errno_location() #10
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4952, ptr noundef @.str.2, i32 noundef %4953, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 181, ptr noundef %4956, ptr noundef %4959, ptr noundef %4962, i32 noundef %4964) #9
  br label %4983

4966:                                             ; preds = %4944, %4937
  %4967 = load i32, ptr %103, align 4, !tbaa !5
  %4968 = call ptr @__errno_location() #10
  store i32 %4967, ptr %4968, align 4, !tbaa !5
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4972, ptr noundef @.str.4)
  %4974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call ptr @s2n_strerror_debug(i32 noundef %4975, ptr noundef @.str.4)
  %4977 = call ptr @__errno_location() #10
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call ptr @strerror(i32 noundef %4978) #9
  %4980 = call ptr @__errno_location() #10
  %4981 = load i32, ptr %4980, align 4, !tbaa !5
  %4982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4969, ptr noundef @.str.5, i32 noundef %4970, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 181, ptr noundef %4973, ptr noundef %4976, ptr noundef %4979, i32 noundef %4981) #9
  br label %4983

4983:                                             ; preds = %4966, %4949
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4984

4984:                                             ; preds = %4983
  br label %4985

4985:                                             ; preds = %4984
  call void @exit(i32 noundef 1) #11
  unreachable

4986:                                             ; No predecessors!
  br label %4987

4987:                                             ; preds = %4986
  br label %4988

4988:                                             ; preds = %4987, %4930
  br label %4989

4989:                                             ; preds = %4988
  br label %4990

4990:                                             ; preds = %4989
  store ptr null, ptr %83, align 8, !tbaa !9
  br label %4991

4991:                                             ; preds = %4990
  %4992 = load i32, ptr @test_count, align 4, !tbaa !5
  %4993 = add nsw i32 %4992, 1
  store i32 %4993, ptr @test_count, align 4, !tbaa !5
  %4994 = load ptr, ptr %80, align 8, !tbaa !9
  %4995 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %4994, ptr noundef %83)
  %4996 = icmp eq i32 %4995, -1
  br i1 %4996, label %4997, label %5050

4997:                                             ; preds = %4991
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

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

5006:                                             ; preds = %4999
  %5007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5008 = call i32 @fileno(ptr noundef %5007) #9
  %5009 = call i32 @isatty(i32 noundef %5008) #9
  %5010 = icmp ne i32 %5009, 0
  br i1 %5010, label %5011, label %5028

5011:                                             ; preds = %5006
  %5012 = load i32, ptr %104, align 4, !tbaa !5
  %5013 = call ptr @__errno_location() #10
  store i32 %5012, ptr %5013, align 4, !tbaa !5
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = load i32, ptr @test_count, align 4, !tbaa !5
  %5016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @s2n_strerror(i32 noundef %5017, ptr noundef @.str.4)
  %5019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call ptr @s2n_strerror_debug(i32 noundef %5020, ptr noundef @.str.4)
  %5022 = call ptr @__errno_location() #10
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @strerror(i32 noundef %5023) #9
  %5025 = call ptr @__errno_location() #10
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5014, ptr noundef @.str.2, i32 noundef %5015, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 184, ptr noundef %5018, ptr noundef %5021, ptr noundef %5024, i32 noundef %5026) #9
  br label %5045

5028:                                             ; preds = %5006, %4999
  %5029 = load i32, ptr %104, align 4, !tbaa !5
  %5030 = call ptr @__errno_location() #10
  store i32 %5029, ptr %5030, align 4, !tbaa !5
  %5031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5032 = load i32, ptr @test_count, align 4, !tbaa !5
  %5033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call ptr @s2n_strerror(i32 noundef %5034, ptr noundef @.str.4)
  %5036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5037 = load i32, ptr %5036, align 4, !tbaa !5
  %5038 = call ptr @s2n_strerror_debug(i32 noundef %5037, ptr noundef @.str.4)
  %5039 = call ptr @__errno_location() #10
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  %5041 = call ptr @strerror(i32 noundef %5040) #9
  %5042 = call ptr @__errno_location() #10
  %5043 = load i32, ptr %5042, align 4, !tbaa !5
  %5044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5031, ptr noundef @.str.5, i32 noundef %5032, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 184, ptr noundef %5035, ptr noundef %5038, ptr noundef %5041, i32 noundef %5043) #9
  br label %5045

5045:                                             ; preds = %5028, %5011
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %5046

5046:                                             ; preds = %5045
  br label %5047

5047:                                             ; preds = %5046
  call void @exit(i32 noundef 1) #11
  unreachable

5048:                                             ; No predecessors!
  br label %5049

5049:                                             ; preds = %5048
  br label %5050

5050:                                             ; preds = %5049, %4991
  br label %5051

5051:                                             ; preds = %5050
  br label %5052

5052:                                             ; preds = %5051
  br label %5053

5053:                                             ; preds = %5052
  %5054 = load i32, ptr @test_count, align 4, !tbaa !5
  %5055 = add nsw i32 %5054, 1
  store i32 %5055, ptr @test_count, align 4, !tbaa !5
  %5056 = load ptr, ptr %83, align 8, !tbaa !9
  %5057 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_fips, i32 0, i32 2), align 8, !tbaa !44
  %5058 = icmp eq ptr %5056, %5057
  br i1 %5058, label %5112, label %5059

5059:                                             ; preds = %5053
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

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

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

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

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

5107:                                             ; preds = %5090, %5073
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

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

5110:                                             ; No predecessors!
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111, %5053
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113
  store ptr null, ptr %84, align 8, !tbaa !9
  br label %5115

5115:                                             ; preds = %5114
  %5116 = load i32, ptr @test_count, align 4, !tbaa !5
  %5117 = add nsw i32 %5116, 1
  store i32 %5117, ptr @test_count, align 4, !tbaa !5
  %5118 = load ptr, ptr %80, align 8, !tbaa !9
  %5119 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %5118, ptr noundef %84)
  %5120 = icmp eq i32 %5119, -1
  br i1 %5120, label %5121, label %5174

5121:                                             ; preds = %5115
  br label %5122

5122:                                             ; preds = %5121
  br label %5123

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

5130:                                             ; preds = %5123
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = call i32 @fileno(ptr noundef %5131) #9
  %5133 = call i32 @isatty(i32 noundef %5132) #9
  %5134 = icmp ne i32 %5133, 0
  br i1 %5134, label %5135, label %5152

5135:                                             ; preds = %5130
  %5136 = load i32, ptr %106, align 4, !tbaa !5
  %5137 = call ptr @__errno_location() #10
  store i32 %5136, ptr %5137, align 4, !tbaa !5
  %5138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5139 = load i32, ptr @test_count, align 4, !tbaa !5
  %5140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef @.str.4)
  %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_debug(i32 noundef %5144, ptr noundef @.str.4)
  %5146 = call ptr @__errno_location() #10
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @strerror(i32 noundef %5147) #9
  %5149 = call ptr @__errno_location() #10
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5138, ptr noundef @.str.2, i32 noundef %5139, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 188, ptr noundef %5142, ptr noundef %5145, ptr noundef %5148, i32 noundef %5150) #9
  br label %5169

5152:                                             ; preds = %5130, %5123
  %5153 = load i32, ptr %106, align 4, !tbaa !5
  %5154 = call ptr @__errno_location() #10
  store i32 %5153, ptr %5154, align 4, !tbaa !5
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = load i32, ptr @test_count, align 4, !tbaa !5
  %5157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @s2n_strerror(i32 noundef %5158, ptr noundef @.str.4)
  %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_debug(i32 noundef %5161, ptr noundef @.str.4)
  %5163 = call ptr @__errno_location() #10
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @strerror(i32 noundef %5164) #9
  %5166 = call ptr @__errno_location() #10
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5155, ptr noundef @.str.5, i32 noundef %5156, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 188, ptr noundef %5159, ptr noundef %5162, ptr noundef %5165, i32 noundef %5167) #9
  br label %5169

5169:                                             ; preds = %5152, %5135
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %5170

5170:                                             ; preds = %5169
  br label %5171

5171:                                             ; preds = %5170
  call void @exit(i32 noundef 1) #11
  unreachable

5172:                                             ; No predecessors!
  br label %5173

5173:                                             ; preds = %5172
  br label %5174

5174:                                             ; preds = %5173, %5115
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175
  br label %5177

5177:                                             ; preds = %5176
  %5178 = load i32, ptr @test_count, align 4, !tbaa !5
  %5179 = add nsw i32 %5178, 1
  store i32 %5179, ptr @test_count, align 4, !tbaa !5
  %5180 = load ptr, ptr %84, align 8, !tbaa !9
  %5181 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_fips, i32 0, i32 3), align 8, !tbaa !45
  %5182 = icmp eq ptr %5180, %5181
  br i1 %5182, label %5236, label %5183

5183:                                             ; preds = %5177
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

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

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

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

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

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

5232:                                             ; preds = %5231
  br label %5233

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

5234:                                             ; No predecessors!
  br label %5235

5235:                                             ; preds = %5234
  br label %5236

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

5237:                                             ; preds = %5236
  br label %5238

5238:                                             ; preds = %5237
  store ptr null, ptr %85, align 8, !tbaa !9
  br label %5239

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

5245:                                             ; preds = %5239
  br label %5246

5246:                                             ; preds = %5245
  br label %5247

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

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

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

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

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

5294:                                             ; preds = %5293
  br label %5295

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

5296:                                             ; No predecessors!
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

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

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300
  %5302 = load i32, ptr @test_count, align 4, !tbaa !5
  %5303 = add nsw i32 %5302, 1
  store i32 %5303, ptr @test_count, align 4, !tbaa !5
  %5304 = load ptr, ptr %85, align 8, !tbaa !9
  %5305 = load ptr, ptr getelementptr inbounds (%struct.s2n_security_policy, ptr @security_policy_test_all_fips, i32 0, i32 5), align 8, !tbaa !46
  %5306 = icmp eq ptr %5304, %5305
  br i1 %5306, label %5360, label %5307

5307:                                             ; preds = %5301
  br label %5308

5308:                                             ; preds = %5307
  br label %5309

5309:                                             ; preds = %5308
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  %5310 = call ptr @__errno_location() #10
  %5311 = load i32, ptr %5310, align 4, !tbaa !5
  store i32 %5311, ptr %109, align 4, !tbaa !5
  %5312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5313 = call i32 @s2n_print_stacktrace(ptr noundef %5312)
  %5314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5315 = trunc i8 %5314 to i1
  br i1 %5315, label %5316, label %5338

5316:                                             ; preds = %5309
  %5317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5318 = call i32 @fileno(ptr noundef %5317) #9
  %5319 = call i32 @isatty(i32 noundef %5318) #9
  %5320 = icmp ne i32 %5319, 0
  br i1 %5320, label %5321, label %5338

5321:                                             ; preds = %5316
  %5322 = load i32, ptr %109, align 4, !tbaa !5
  %5323 = call ptr @__errno_location() #10
  store i32 %5322, ptr %5323, align 4, !tbaa !5
  %5324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5325 = load i32, ptr @test_count, align 4, !tbaa !5
  %5326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5327 = load i32, ptr %5326, align 4, !tbaa !5
  %5328 = call ptr @s2n_strerror(i32 noundef %5327, ptr noundef @.str.4)
  %5329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5330 = load i32, ptr %5329, align 4, !tbaa !5
  %5331 = call ptr @s2n_strerror_debug(i32 noundef %5330, ptr noundef @.str.4)
  %5332 = call ptr @__errno_location() #10
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call ptr @strerror(i32 noundef %5333) #9
  %5335 = call ptr @__errno_location() #10
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5324, ptr noundef @.str.2, i32 noundef %5325, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 193, ptr noundef %5328, ptr noundef %5331, ptr noundef %5334, i32 noundef %5336) #9
  br label %5355

5338:                                             ; preds = %5316, %5309
  %5339 = load i32, ptr %109, align 4, !tbaa !5
  %5340 = call ptr @__errno_location() #10
  store i32 %5339, ptr %5340, align 4, !tbaa !5
  %5341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5342 = load i32, ptr @test_count, align 4, !tbaa !5
  %5343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call ptr @s2n_strerror(i32 noundef %5344, ptr noundef @.str.4)
  %5346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call ptr @s2n_strerror_debug(i32 noundef %5347, ptr noundef @.str.4)
  %5349 = call ptr @__errno_location() #10
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call ptr @strerror(i32 noundef %5350) #9
  %5352 = call ptr @__errno_location() #10
  %5353 = load i32, ptr %5352, align 4, !tbaa !5
  %5354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5341, ptr noundef @.str.5, i32 noundef %5342, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 193, ptr noundef %5345, ptr noundef %5348, ptr noundef %5351, i32 noundef %5353) #9
  br label %5355

5355:                                             ; preds = %5338, %5321
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %5356

5356:                                             ; preds = %5355
  br label %5357

5357:                                             ; preds = %5356
  call void @exit(i32 noundef 1) #11
  unreachable

5358:                                             ; No predecessors!
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

5360:                                             ; preds = %5359, %5301
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362
  %5364 = load i32, ptr @test_count, align 4, !tbaa !5
  %5365 = add nsw i32 %5364, 1
  store i32 %5365, ptr @test_count, align 4, !tbaa !5
  %5366 = load ptr, ptr %80, align 8, !tbaa !9
  %5367 = call i32 @s2n_connection_free(ptr noundef %5366)
  %5368 = icmp eq i32 %5367, -1
  br i1 %5368, label %5369, label %5422

5369:                                             ; preds = %5363
  br label %5370

5370:                                             ; preds = %5369
  br label %5371

5371:                                             ; preds = %5370
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  %5372 = call ptr @__errno_location() #10
  %5373 = load i32, ptr %5372, align 4, !tbaa !5
  store i32 %5373, ptr %110, align 4, !tbaa !5
  %5374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5375 = call i32 @s2n_print_stacktrace(ptr noundef %5374)
  %5376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5377 = trunc i8 %5376 to i1
  br i1 %5377, label %5378, label %5400

5378:                                             ; preds = %5371
  %5379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5380 = call i32 @fileno(ptr noundef %5379) #9
  %5381 = call i32 @isatty(i32 noundef %5380) #9
  %5382 = icmp ne i32 %5381, 0
  br i1 %5382, label %5383, label %5400

5383:                                             ; preds = %5378
  %5384 = load i32, ptr %110, align 4, !tbaa !5
  %5385 = call ptr @__errno_location() #10
  store i32 %5384, ptr %5385, align 4, !tbaa !5
  %5386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5387 = load i32, ptr @test_count, align 4, !tbaa !5
  %5388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5389 = load i32, ptr %5388, align 4, !tbaa !5
  %5390 = call ptr @s2n_strerror(i32 noundef %5389, ptr noundef @.str.4)
  %5391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5392 = load i32, ptr %5391, align 4, !tbaa !5
  %5393 = call ptr @s2n_strerror_debug(i32 noundef %5392, ptr noundef @.str.4)
  %5394 = call ptr @__errno_location() #10
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @strerror(i32 noundef %5395) #9
  %5397 = call ptr @__errno_location() #10
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5386, ptr noundef @.str.2, i32 noundef %5387, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 195, ptr noundef %5390, ptr noundef %5393, ptr noundef %5396, i32 noundef %5398) #9
  br label %5417

5400:                                             ; preds = %5378, %5371
  %5401 = load i32, ptr %110, align 4, !tbaa !5
  %5402 = call ptr @__errno_location() #10
  store i32 %5401, ptr %5402, align 4, !tbaa !5
  %5403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5404 = load i32, ptr @test_count, align 4, !tbaa !5
  %5405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5406 = load i32, ptr %5405, align 4, !tbaa !5
  %5407 = call ptr @s2n_strerror(i32 noundef %5406, ptr noundef @.str.4)
  %5408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  %5410 = call ptr @s2n_strerror_debug(i32 noundef %5409, ptr noundef @.str.4)
  %5411 = call ptr @__errno_location() #10
  %5412 = load i32, ptr %5411, align 4, !tbaa !5
  %5413 = call ptr @strerror(i32 noundef %5412) #9
  %5414 = call ptr @__errno_location() #10
  %5415 = load i32, ptr %5414, align 4, !tbaa !5
  %5416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5403, ptr noundef @.str.5, i32 noundef %5404, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 195, ptr noundef %5407, ptr noundef %5410, ptr noundef %5413, i32 noundef %5415) #9
  br label %5417

5417:                                             ; preds = %5400, %5383
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %5418

5418:                                             ; preds = %5417
  br label %5419

5419:                                             ; preds = %5418
  call void @exit(i32 noundef 1) #11
  unreachable

5420:                                             ; No predecessors!
  br label %5421

5421:                                             ; preds = %5420
  br label %5422

5422:                                             ; preds = %5421, %5363
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  br label %5425

5425:                                             ; preds = %5424, %3864
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  store ptr null, ptr %111, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  store ptr null, ptr %112, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #9
  store ptr null, ptr %113, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #9
  store ptr null, ptr %114, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #9
  store ptr null, ptr %115, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #9
  store ptr null, ptr %116, align 8, !tbaa !9
  br label %5426

5426:                                             ; preds = %5425
  %5427 = load i32, ptr @test_count, align 4, !tbaa !5
  %5428 = add nsw i32 %5427, 1
  store i32 %5428, ptr @test_count, align 4, !tbaa !5
  %5429 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5429, ptr %111, align 8, !tbaa !9
  %5430 = icmp eq ptr %5429, null
  br i1 %5430, label %5431, label %5484

5431:                                             ; preds = %5426
  br label %5432

5432:                                             ; preds = %5431
  br label %5433

5433:                                             ; preds = %5432
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %5434 = call ptr @__errno_location() #10
  %5435 = load i32, ptr %5434, align 4, !tbaa !5
  store i32 %5435, ptr %117, align 4, !tbaa !5
  %5436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5437 = call i32 @s2n_print_stacktrace(ptr noundef %5436)
  %5438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5439 = trunc i8 %5438 to i1
  br i1 %5439, label %5440, label %5462

5440:                                             ; preds = %5433
  %5441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5442 = call i32 @fileno(ptr noundef %5441) #9
  %5443 = call i32 @isatty(i32 noundef %5442) #9
  %5444 = icmp ne i32 %5443, 0
  br i1 %5444, label %5445, label %5462

5445:                                             ; preds = %5440
  %5446 = load i32, ptr %117, align 4, !tbaa !5
  %5447 = call ptr @__errno_location() #10
  store i32 %5446, ptr %5447, align 4, !tbaa !5
  %5448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5449 = load i32, ptr @test_count, align 4, !tbaa !5
  %5450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror(i32 noundef %5451, ptr noundef @.str.4)
  %5453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call ptr @s2n_strerror_debug(i32 noundef %5454, ptr noundef @.str.4)
  %5456 = call ptr @__errno_location() #10
  %5457 = load i32, ptr %5456, align 4, !tbaa !5
  %5458 = call ptr @strerror(i32 noundef %5457) #9
  %5459 = call ptr @__errno_location() #10
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5448, ptr noundef @.str.2, i32 noundef %5449, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 207, ptr noundef %5452, ptr noundef %5455, ptr noundef %5458, i32 noundef %5460) #9
  br label %5479

5462:                                             ; preds = %5440, %5433
  %5463 = load i32, ptr %117, align 4, !tbaa !5
  %5464 = call ptr @__errno_location() #10
  store i32 %5463, ptr %5464, align 4, !tbaa !5
  %5465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5466 = load i32, ptr @test_count, align 4, !tbaa !5
  %5467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror(i32 noundef %5468, ptr noundef @.str.4)
  %5470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @s2n_strerror_debug(i32 noundef %5471, ptr noundef @.str.4)
  %5473 = call ptr @__errno_location() #10
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call ptr @strerror(i32 noundef %5474) #9
  %5476 = call ptr @__errno_location() #10
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5465, ptr noundef @.str.5, i32 noundef %5466, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 207, ptr noundef %5469, ptr noundef %5472, ptr noundef %5475, i32 noundef %5477) #9
  br label %5479

5479:                                             ; preds = %5462, %5445
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

5481:                                             ; preds = %5480
  call void @exit(i32 noundef 1) #11
  unreachable

5482:                                             ; No predecessors!
  br label %5483

5483:                                             ; preds = %5482
  br label %5484

5484:                                             ; preds = %5483, %5426
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485
  br label %5487

5487:                                             ; preds = %5486
  %5488 = load i32, ptr @test_count, align 4, !tbaa !5
  %5489 = add nsw i32 %5488, 1
  store i32 %5489, ptr @test_count, align 4, !tbaa !5
  %5490 = load ptr, ptr %111, align 8, !tbaa !9
  %5491 = getelementptr inbounds %struct.s2n_connection, ptr %5490, i32 0, i32 2
  %5492 = load ptr, ptr %5491, align 8, !tbaa !15
  %5493 = icmp eq ptr %5492, null
  br i1 %5493, label %5547, label %5494

5494:                                             ; preds = %5487
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

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

5503:                                             ; preds = %5496
  %5504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5505 = call i32 @fileno(ptr noundef %5504) #9
  %5506 = call i32 @isatty(i32 noundef %5505) #9
  %5507 = icmp ne i32 %5506, 0
  br i1 %5507, label %5508, label %5525

5508:                                             ; preds = %5503
  %5509 = load i32, ptr %118, align 4, !tbaa !5
  %5510 = call ptr @__errno_location() #10
  store i32 %5509, ptr %5510, align 4, !tbaa !5
  %5511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5512 = load i32, ptr @test_count, align 4, !tbaa !5
  %5513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5514 = load i32, ptr %5513, align 4, !tbaa !5
  %5515 = call ptr @s2n_strerror(i32 noundef %5514, ptr noundef @.str.4)
  %5516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5517 = load i32, ptr %5516, align 4, !tbaa !5
  %5518 = call ptr @s2n_strerror_debug(i32 noundef %5517, ptr noundef @.str.4)
  %5519 = call ptr @__errno_location() #10
  %5520 = load i32, ptr %5519, align 4, !tbaa !5
  %5521 = call ptr @strerror(i32 noundef %5520) #9
  %5522 = call ptr @__errno_location() #10
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5511, ptr noundef @.str.2, i32 noundef %5512, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5515, ptr noundef %5518, ptr noundef %5521, i32 noundef %5523) #9
  br label %5542

5525:                                             ; preds = %5503, %5496
  %5526 = load i32, ptr %118, align 4, !tbaa !5
  %5527 = call ptr @__errno_location() #10
  store i32 %5526, ptr %5527, align 4, !tbaa !5
  %5528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5529 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5531, ptr noundef @.str.4)
  %5533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call ptr @s2n_strerror_debug(i32 noundef %5534, ptr noundef @.str.4)
  %5536 = call ptr @__errno_location() #10
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call ptr @strerror(i32 noundef %5537) #9
  %5539 = call ptr @__errno_location() #10
  %5540 = load i32, ptr %5539, align 4, !tbaa !5
  %5541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5528, ptr noundef @.str.5, i32 noundef %5529, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5532, ptr noundef %5535, ptr noundef %5538, i32 noundef %5540) #9
  br label %5542

5542:                                             ; preds = %5525, %5508
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543
  call void @exit(i32 noundef 1) #11
  unreachable

5545:                                             ; No predecessors!
  br label %5546

5546:                                             ; preds = %5545
  br label %5547

5547:                                             ; preds = %5546, %5487
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

5549:                                             ; preds = %5548
  br label %5550

5550:                                             ; preds = %5549
  br label %5551

5551:                                             ; preds = %5550
  %5552 = load i32, ptr @test_count, align 4, !tbaa !5
  %5553 = add nsw i32 %5552, 1
  store i32 %5553, ptr @test_count, align 4, !tbaa !5
  %5554 = load ptr, ptr %111, align 8, !tbaa !9
  %5555 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5554, ptr noundef null)
  %5556 = icmp eq i32 %5555, -1
  br i1 %5556, label %5610, label %5557

5557:                                             ; preds = %5551
  br label %5558

5558:                                             ; preds = %5557
  br label %5559

5559:                                             ; preds = %5558
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #9
  %5560 = call ptr @__errno_location() #10
  %5561 = load i32, ptr %5560, align 4, !tbaa !5
  store i32 %5561, ptr %119, align 4, !tbaa !5
  %5562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5563 = call i32 @s2n_print_stacktrace(ptr noundef %5562)
  %5564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5565 = trunc i8 %5564 to i1
  br i1 %5565, label %5566, label %5588

5566:                                             ; preds = %5559
  %5567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5568 = call i32 @fileno(ptr noundef %5567) #9
  %5569 = call i32 @isatty(i32 noundef %5568) #9
  %5570 = icmp ne i32 %5569, 0
  br i1 %5570, label %5571, label %5588

5571:                                             ; preds = %5566
  %5572 = load i32, ptr %119, align 4, !tbaa !5
  %5573 = call ptr @__errno_location() #10
  store i32 %5572, ptr %5573, align 4, !tbaa !5
  %5574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5575 = load i32, ptr @test_count, align 4, !tbaa !5
  %5576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @s2n_strerror(i32 noundef %5577, ptr noundef @.str.4)
  %5579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call ptr @s2n_strerror_debug(i32 noundef %5580, ptr noundef @.str.4)
  %5582 = call ptr @__errno_location() #10
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call ptr @strerror(i32 noundef %5583) #9
  %5585 = call ptr @__errno_location() #10
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5574, ptr noundef @.str.2, i32 noundef %5575, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5578, ptr noundef %5581, ptr noundef %5584, i32 noundef %5586) #9
  br label %5605

5588:                                             ; preds = %5566, %5559
  %5589 = load i32, ptr %119, align 4, !tbaa !5
  %5590 = call ptr @__errno_location() #10
  store i32 %5589, ptr %5590, align 4, !tbaa !5
  %5591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5592 = load i32, ptr @test_count, align 4, !tbaa !5
  %5593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @s2n_strerror(i32 noundef %5594, ptr noundef @.str.4)
  %5596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call ptr @s2n_strerror_debug(i32 noundef %5597, ptr noundef @.str.4)
  %5599 = call ptr @__errno_location() #10
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call ptr @strerror(i32 noundef %5600) #9
  %5602 = call ptr @__errno_location() #10
  %5603 = load i32, ptr %5602, align 4, !tbaa !5
  %5604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5591, ptr noundef @.str.5, i32 noundef %5592, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5595, ptr noundef %5598, ptr noundef %5601, i32 noundef %5603) #9
  br label %5605

5605:                                             ; preds = %5588, %5571
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #9
  br label %5606

5606:                                             ; preds = %5605
  br label %5607

5607:                                             ; preds = %5606
  call void @exit(i32 noundef 1) #11
  unreachable

5608:                                             ; No predecessors!
  br label %5609

5609:                                             ; preds = %5608
  br label %5610

5610:                                             ; preds = %5609, %5551
  br label %5611

5611:                                             ; preds = %5610
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  %5614 = load i32, ptr @test_count, align 4, !tbaa !5
  %5615 = add nsw i32 %5614, 1
  store i32 %5615, ptr @test_count, align 4, !tbaa !5
  %5616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = icmp eq i32 %5617, 0
  br i1 %5618, label %5619, label %5672

5619:                                             ; preds = %5613
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

5621:                                             ; preds = %5620
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #9
  %5622 = call ptr @__errno_location() #10
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  store i32 %5623, ptr %120, align 4, !tbaa !5
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = call i32 @s2n_print_stacktrace(ptr noundef %5624)
  %5626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5627 = trunc i8 %5626 to i1
  br i1 %5627, label %5628, label %5650

5628:                                             ; preds = %5621
  %5629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5630 = call i32 @fileno(ptr noundef %5629) #9
  %5631 = call i32 @isatty(i32 noundef %5630) #9
  %5632 = icmp ne i32 %5631, 0
  br i1 %5632, label %5633, label %5650

5633:                                             ; preds = %5628
  %5634 = load i32, ptr %120, align 4, !tbaa !5
  %5635 = call ptr @__errno_location() #10
  store i32 %5634, ptr %5635, align 4, !tbaa !5
  %5636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5637 = load i32, ptr @test_count, align 4, !tbaa !5
  %5638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5639 = load i32, ptr %5638, align 4, !tbaa !5
  %5640 = call ptr @s2n_strerror(i32 noundef %5639, ptr noundef @.str.4)
  %5641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  %5643 = call ptr @s2n_strerror_debug(i32 noundef %5642, ptr noundef @.str.4)
  %5644 = call ptr @__errno_location() #10
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  %5646 = call ptr @strerror(i32 noundef %5645) #9
  %5647 = call ptr @__errno_location() #10
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5636, ptr noundef @.str.2, i32 noundef %5637, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5640, ptr noundef %5643, ptr noundef %5646, i32 noundef %5648) #9
  br label %5667

5650:                                             ; preds = %5628, %5621
  %5651 = load i32, ptr %120, align 4, !tbaa !5
  %5652 = call ptr @__errno_location() #10
  store i32 %5651, ptr %5652, align 4, !tbaa !5
  %5653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5654 = load i32, ptr @test_count, align 4, !tbaa !5
  %5655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @s2n_strerror(i32 noundef %5656, ptr noundef @.str.4)
  %5658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror_debug(i32 noundef %5659, ptr noundef @.str.4)
  %5661 = call ptr @__errno_location() #10
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @strerror(i32 noundef %5662) #9
  %5664 = call ptr @__errno_location() #10
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5653, ptr noundef @.str.5, i32 noundef %5654, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5657, ptr noundef %5660, ptr noundef %5663, i32 noundef %5665) #9
  br label %5667

5667:                                             ; preds = %5650, %5633
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668
  call void @exit(i32 noundef 1) #11
  unreachable

5670:                                             ; No predecessors!
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

5672:                                             ; preds = %5671, %5613
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  br label %5675

5675:                                             ; preds = %5674
  %5676 = load i32, ptr @test_count, align 4, !tbaa !5
  %5677 = add nsw i32 %5676, 1
  store i32 %5677, ptr @test_count, align 4, !tbaa !5
  %5678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5679 = load i32, ptr %5678, align 4, !tbaa !5
  %5680 = call ptr @s2n_strerror_debug(i32 noundef %5679, ptr noundef @.str.4)
  %5681 = icmp eq ptr %5680, null
  br i1 %5681, label %5682, label %5735

5682:                                             ; preds = %5675
  br label %5683

5683:                                             ; preds = %5682
  br label %5684

5684:                                             ; preds = %5683
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #9
  %5685 = call ptr @__errno_location() #10
  %5686 = load i32, ptr %5685, align 4, !tbaa !5
  store i32 %5686, ptr %121, align 4, !tbaa !5
  %5687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5688 = call i32 @s2n_print_stacktrace(ptr noundef %5687)
  %5689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5690 = trunc i8 %5689 to i1
  br i1 %5690, label %5691, label %5713

5691:                                             ; preds = %5684
  %5692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5693 = call i32 @fileno(ptr noundef %5692) #9
  %5694 = call i32 @isatty(i32 noundef %5693) #9
  %5695 = icmp ne i32 %5694, 0
  br i1 %5695, label %5696, label %5713

5696:                                             ; preds = %5691
  %5697 = load i32, ptr %121, align 4, !tbaa !5
  %5698 = call ptr @__errno_location() #10
  store i32 %5697, ptr %5698, align 4, !tbaa !5
  %5699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5700 = load i32, ptr @test_count, align 4, !tbaa !5
  %5701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @s2n_strerror(i32 noundef %5702, ptr noundef @.str.4)
  %5704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call ptr @s2n_strerror_debug(i32 noundef %5705, ptr noundef @.str.4)
  %5707 = call ptr @__errno_location() #10
  %5708 = load i32, ptr %5707, align 4, !tbaa !5
  %5709 = call ptr @strerror(i32 noundef %5708) #9
  %5710 = call ptr @__errno_location() #10
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5699, ptr noundef @.str.2, i32 noundef %5700, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5703, ptr noundef %5706, ptr noundef %5709, i32 noundef %5711) #9
  br label %5730

5713:                                             ; preds = %5691, %5684
  %5714 = load i32, ptr %121, align 4, !tbaa !5
  %5715 = call ptr @__errno_location() #10
  store i32 %5714, ptr %5715, align 4, !tbaa !5
  %5716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5717 = load i32, ptr @test_count, align 4, !tbaa !5
  %5718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5719 = load i32, ptr %5718, align 4, !tbaa !5
  %5720 = call ptr @s2n_strerror(i32 noundef %5719, ptr noundef @.str.4)
  %5721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call ptr @s2n_strerror_debug(i32 noundef %5722, ptr noundef @.str.4)
  %5724 = call ptr @__errno_location() #10
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  %5726 = call ptr @strerror(i32 noundef %5725) #9
  %5727 = call ptr @__errno_location() #10
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5716, ptr noundef @.str.5, i32 noundef %5717, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5720, ptr noundef %5723, ptr noundef %5726, i32 noundef %5728) #9
  br label %5730

5730:                                             ; preds = %5713, %5696
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #9
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731
  call void @exit(i32 noundef 1) #11
  unreachable

5733:                                             ; No predecessors!
  br label %5734

5734:                                             ; preds = %5733
  br label %5735

5735:                                             ; preds = %5734, %5675
  br label %5736

5736:                                             ; preds = %5735
  br label %5737

5737:                                             ; preds = %5736
  br label %5738

5738:                                             ; preds = %5737
  %5739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5739, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5740 = call ptr @__errno_location() #10
  store i32 0, ptr %5740, align 4, !tbaa !5
  br label %5741

5741:                                             ; preds = %5738
  br label %5742

5742:                                             ; preds = %5741
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

5744:                                             ; preds = %5743
  br label %5745

5745:                                             ; preds = %5744
  %5746 = load i32, ptr @test_count, align 4, !tbaa !5
  %5747 = add nsw i32 %5746, 1
  store i32 %5747, ptr @test_count, align 4, !tbaa !5
  %5748 = load ptr, ptr %111, align 8, !tbaa !9
  %5749 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5748, ptr noundef @.str.64)
  %5750 = icmp eq i32 %5749, -1
  br i1 %5750, label %5751, label %5804

5751:                                             ; preds = %5745
  br label %5752

5752:                                             ; preds = %5751
  br label %5753

5753:                                             ; preds = %5752
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #9
  %5754 = call ptr @__errno_location() #10
  %5755 = load i32, ptr %5754, align 4, !tbaa !5
  store i32 %5755, ptr %122, align 4, !tbaa !5
  %5756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5757 = call i32 @s2n_print_stacktrace(ptr noundef %5756)
  %5758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5759 = trunc i8 %5758 to i1
  br i1 %5759, label %5760, label %5782

5760:                                             ; preds = %5753
  %5761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5762 = call i32 @fileno(ptr noundef %5761) #9
  %5763 = call i32 @isatty(i32 noundef %5762) #9
  %5764 = icmp ne i32 %5763, 0
  br i1 %5764, label %5765, label %5782

5765:                                             ; preds = %5760
  %5766 = load i32, ptr %122, align 4, !tbaa !5
  %5767 = call ptr @__errno_location() #10
  store i32 %5766, ptr %5767, align 4, !tbaa !5
  %5768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5769 = load i32, ptr @test_count, align 4, !tbaa !5
  %5770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5771 = load i32, ptr %5770, align 4, !tbaa !5
  %5772 = call ptr @s2n_strerror(i32 noundef %5771, ptr noundef @.str.4)
  %5773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5774 = load i32, ptr %5773, align 4, !tbaa !5
  %5775 = call ptr @s2n_strerror_debug(i32 noundef %5774, ptr noundef @.str.4)
  %5776 = call ptr @__errno_location() #10
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call ptr @strerror(i32 noundef %5777) #9
  %5779 = call ptr @__errno_location() #10
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  %5781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5768, ptr noundef @.str.2, i32 noundef %5769, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 210, ptr noundef %5772, ptr noundef %5775, ptr noundef %5778, i32 noundef %5780) #9
  br label %5799

5782:                                             ; preds = %5760, %5753
  %5783 = load i32, ptr %122, align 4, !tbaa !5
  %5784 = call ptr @__errno_location() #10
  store i32 %5783, ptr %5784, align 4, !tbaa !5
  %5785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5786 = load i32, ptr @test_count, align 4, !tbaa !5
  %5787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5788 = load i32, ptr %5787, align 4, !tbaa !5
  %5789 = call ptr @s2n_strerror(i32 noundef %5788, ptr noundef @.str.4)
  %5790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5791 = load i32, ptr %5790, align 4, !tbaa !5
  %5792 = call ptr @s2n_strerror_debug(i32 noundef %5791, ptr noundef @.str.4)
  %5793 = call ptr @__errno_location() #10
  %5794 = load i32, ptr %5793, align 4, !tbaa !5
  %5795 = call ptr @strerror(i32 noundef %5794) #9
  %5796 = call ptr @__errno_location() #10
  %5797 = load i32, ptr %5796, align 4, !tbaa !5
  %5798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5785, ptr noundef @.str.5, i32 noundef %5786, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 210, ptr noundef %5789, ptr noundef %5792, ptr noundef %5795, i32 noundef %5797) #9
  br label %5799

5799:                                             ; preds = %5782, %5765
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  br label %5800

5800:                                             ; preds = %5799
  br label %5801

5801:                                             ; preds = %5800
  call void @exit(i32 noundef 1) #11
  unreachable

5802:                                             ; No predecessors!
  br label %5803

5803:                                             ; preds = %5802
  br label %5804

5804:                                             ; preds = %5803, %5745
  br label %5805

5805:                                             ; preds = %5804
  br label %5806

5806:                                             ; preds = %5805
  br label %5807

5807:                                             ; preds = %5806
  %5808 = load i32, ptr @test_count, align 4, !tbaa !5
  %5809 = add nsw i32 %5808, 1
  store i32 %5809, ptr @test_count, align 4, !tbaa !5
  %5810 = load ptr, ptr %111, align 8, !tbaa !9
  %5811 = getelementptr inbounds %struct.s2n_connection, ptr %5810, i32 0, i32 2
  %5812 = load ptr, ptr %5811, align 8, !tbaa !15
  %5813 = icmp eq ptr %5812, null
  br i1 %5813, label %5814, label %5867

5814:                                             ; preds = %5807
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

5816:                                             ; preds = %5815
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #9
  %5817 = call ptr @__errno_location() #10
  %5818 = load i32, ptr %5817, align 4, !tbaa !5
  store i32 %5818, ptr %123, align 4, !tbaa !5
  %5819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5820 = call i32 @s2n_print_stacktrace(ptr noundef %5819)
  %5821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5822 = trunc i8 %5821 to i1
  br i1 %5822, label %5823, label %5845

5823:                                             ; preds = %5816
  %5824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5825 = call i32 @fileno(ptr noundef %5824) #9
  %5826 = call i32 @isatty(i32 noundef %5825) #9
  %5827 = icmp ne i32 %5826, 0
  br i1 %5827, label %5828, label %5845

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

5845:                                             ; preds = %5823, %5816
  %5846 = load i32, ptr %123, align 4, !tbaa !5
  %5847 = call ptr @__errno_location() #10
  store i32 %5846, ptr %5847, align 4, !tbaa !5
  %5848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5849 = load i32, ptr @test_count, align 4, !tbaa !5
  %5850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call ptr @s2n_strerror(i32 noundef %5851, ptr noundef @.str.4)
  %5853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call ptr @s2n_strerror_debug(i32 noundef %5854, ptr noundef @.str.4)
  %5856 = call ptr @__errno_location() #10
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call ptr @strerror(i32 noundef %5857) #9
  %5859 = call ptr @__errno_location() #10
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5848, ptr noundef @.str.5, i32 noundef %5849, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 211, ptr noundef %5852, ptr noundef %5855, ptr noundef %5858, i32 noundef %5860) #9
  br label %5862

5862:                                             ; preds = %5845, %5828
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #9
  br label %5863

5863:                                             ; preds = %5862
  br label %5864

5864:                                             ; preds = %5863
  call void @exit(i32 noundef 1) #11
  unreachable

5865:                                             ; No predecessors!
  br label %5866

5866:                                             ; preds = %5865
  br label %5867

5867:                                             ; preds = %5866, %5807
  br label %5868

5868:                                             ; preds = %5867
  br label %5869

5869:                                             ; preds = %5868
  br label %5870

5870:                                             ; preds = %5869
  %5871 = load i32, ptr @test_count, align 4, !tbaa !5
  %5872 = add nsw i32 %5871, 1
  store i32 %5872, ptr @test_count, align 4, !tbaa !5
  %5873 = load ptr, ptr %111, align 8, !tbaa !9
  %5874 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %5873, ptr noundef %112)
  %5875 = icmp eq i32 %5874, -1
  br i1 %5875, label %5876, label %5929

5876:                                             ; preds = %5870
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

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

5885:                                             ; preds = %5878
  %5886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5887 = call i32 @fileno(ptr noundef %5886) #9
  %5888 = call i32 @isatty(i32 noundef %5887) #9
  %5889 = icmp ne i32 %5888, 0
  br i1 %5889, label %5890, label %5907

5890:                                             ; preds = %5885
  %5891 = load i32, ptr %124, align 4, !tbaa !5
  %5892 = call ptr @__errno_location() #10
  store i32 %5891, ptr %5892, align 4, !tbaa !5
  %5893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5894 = load i32, ptr @test_count, align 4, !tbaa !5
  %5895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5896 = load i32, ptr %5895, align 4, !tbaa !5
  %5897 = call ptr @s2n_strerror(i32 noundef %5896, ptr noundef @.str.4)
  %5898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5899 = load i32, ptr %5898, align 4, !tbaa !5
  %5900 = call ptr @s2n_strerror_debug(i32 noundef %5899, ptr noundef @.str.4)
  %5901 = call ptr @__errno_location() #10
  %5902 = load i32, ptr %5901, align 4, !tbaa !5
  %5903 = call ptr @strerror(i32 noundef %5902) #9
  %5904 = call ptr @__errno_location() #10
  %5905 = load i32, ptr %5904, align 4, !tbaa !5
  %5906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5893, ptr noundef @.str.2, i32 noundef %5894, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 213, ptr noundef %5897, ptr noundef %5900, ptr noundef %5903, i32 noundef %5905) #9
  br label %5924

5907:                                             ; preds = %5885, %5878
  %5908 = load i32, ptr %124, align 4, !tbaa !5
  %5909 = call ptr @__errno_location() #10
  store i32 %5908, ptr %5909, align 4, !tbaa !5
  %5910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5911 = load i32, ptr @test_count, align 4, !tbaa !5
  %5912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call ptr @s2n_strerror(i32 noundef %5913, ptr noundef @.str.4)
  %5915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5916 = load i32, ptr %5915, align 4, !tbaa !5
  %5917 = call ptr @s2n_strerror_debug(i32 noundef %5916, ptr noundef @.str.4)
  %5918 = call ptr @__errno_location() #10
  %5919 = load i32, ptr %5918, align 4, !tbaa !5
  %5920 = call ptr @strerror(i32 noundef %5919) #9
  %5921 = call ptr @__errno_location() #10
  %5922 = load i32, ptr %5921, align 4, !tbaa !5
  %5923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5910, ptr noundef @.str.5, i32 noundef %5911, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 213, ptr noundef %5914, ptr noundef %5917, ptr noundef %5920, i32 noundef %5922) #9
  br label %5924

5924:                                             ; preds = %5907, %5890
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #9
  br label %5925

5925:                                             ; preds = %5924
  br label %5926

5926:                                             ; preds = %5925
  call void @exit(i32 noundef 1) #11
  unreachable

5927:                                             ; No predecessors!
  br label %5928

5928:                                             ; preds = %5927
  br label %5929

5929:                                             ; preds = %5928, %5870
  br label %5930

5930:                                             ; preds = %5929
  br label %5931

5931:                                             ; preds = %5930
  br label %5932

5932:                                             ; preds = %5931
  %5933 = load i32, ptr @test_count, align 4, !tbaa !5
  %5934 = add nsw i32 %5933, 1
  store i32 %5934, ptr @test_count, align 4, !tbaa !5
  %5935 = load ptr, ptr %112, align 8, !tbaa !9
  %5936 = icmp eq ptr %5935, @cipher_preferences_null
  br i1 %5936, label %5990, label %5937

5937:                                             ; preds = %5932
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

5939:                                             ; preds = %5938
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #9
  %5940 = call ptr @__errno_location() #10
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  store i32 %5941, ptr %125, align 4, !tbaa !5
  %5942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5943 = call i32 @s2n_print_stacktrace(ptr noundef %5942)
  %5944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5945 = trunc i8 %5944 to i1
  br i1 %5945, label %5946, label %5968

5946:                                             ; preds = %5939
  %5947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5948 = call i32 @fileno(ptr noundef %5947) #9
  %5949 = call i32 @isatty(i32 noundef %5948) #9
  %5950 = icmp ne i32 %5949, 0
  br i1 %5950, label %5951, label %5968

5951:                                             ; preds = %5946
  %5952 = load i32, ptr %125, align 4, !tbaa !5
  %5953 = call ptr @__errno_location() #10
  store i32 %5952, ptr %5953, align 4, !tbaa !5
  %5954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5955 = load i32, ptr @test_count, align 4, !tbaa !5
  %5956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  %5958 = call ptr @s2n_strerror(i32 noundef %5957, ptr noundef @.str.4)
  %5959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5960 = load i32, ptr %5959, align 4, !tbaa !5
  %5961 = call ptr @s2n_strerror_debug(i32 noundef %5960, ptr noundef @.str.4)
  %5962 = call ptr @__errno_location() #10
  %5963 = load i32, ptr %5962, align 4, !tbaa !5
  %5964 = call ptr @strerror(i32 noundef %5963) #9
  %5965 = call ptr @__errno_location() #10
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  %5967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5954, ptr noundef @.str.2, i32 noundef %5955, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5958, ptr noundef %5961, ptr noundef %5964, i32 noundef %5966) #9
  br label %5985

5968:                                             ; preds = %5946, %5939
  %5969 = load i32, ptr %125, align 4, !tbaa !5
  %5970 = call ptr @__errno_location() #10
  store i32 %5969, ptr %5970, align 4, !tbaa !5
  %5971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5972 = load i32, ptr @test_count, align 4, !tbaa !5
  %5973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5974 = load i32, ptr %5973, align 4, !tbaa !5
  %5975 = call ptr @s2n_strerror(i32 noundef %5974, ptr noundef @.str.4)
  %5976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5977 = load i32, ptr %5976, align 4, !tbaa !5
  %5978 = call ptr @s2n_strerror_debug(i32 noundef %5977, ptr noundef @.str.4)
  %5979 = call ptr @__errno_location() #10
  %5980 = load i32, ptr %5979, align 4, !tbaa !5
  %5981 = call ptr @strerror(i32 noundef %5980) #9
  %5982 = call ptr @__errno_location() #10
  %5983 = load i32, ptr %5982, align 4, !tbaa !5
  %5984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5971, ptr noundef @.str.5, i32 noundef %5972, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5975, ptr noundef %5978, ptr noundef %5981, i32 noundef %5983) #9
  br label %5985

5985:                                             ; preds = %5968, %5951
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #9
  br label %5986

5986:                                             ; preds = %5985
  br label %5987

5987:                                             ; preds = %5986
  call void @exit(i32 noundef 1) #11
  unreachable

5988:                                             ; No predecessors!
  br label %5989

5989:                                             ; preds = %5988
  br label %5990

5990:                                             ; preds = %5989, %5932
  br label %5991

5991:                                             ; preds = %5990
  br label %5992

5992:                                             ; preds = %5991
  br label %5993

5993:                                             ; preds = %5992
  %5994 = load i32, ptr @test_count, align 4, !tbaa !5
  %5995 = add nsw i32 %5994, 1
  store i32 %5995, ptr @test_count, align 4, !tbaa !5
  %5996 = load ptr, ptr %111, align 8, !tbaa !9
  %5997 = call i32 @s2n_connection_get_security_policy(ptr noundef %5996, ptr noundef %113)
  %5998 = icmp eq i32 %5997, -1
  br i1 %5998, label %5999, label %6052

5999:                                             ; preds = %5993
  br label %6000

6000:                                             ; preds = %5999
  br label %6001

6001:                                             ; preds = %6000
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  %6002 = call ptr @__errno_location() #10
  %6003 = load i32, ptr %6002, align 4, !tbaa !5
  store i32 %6003, ptr %126, align 4, !tbaa !5
  %6004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6005 = call i32 @s2n_print_stacktrace(ptr noundef %6004)
  %6006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6007 = trunc i8 %6006 to i1
  br i1 %6007, label %6008, label %6030

6008:                                             ; preds = %6001
  %6009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6010 = call i32 @fileno(ptr noundef %6009) #9
  %6011 = call i32 @isatty(i32 noundef %6010) #9
  %6012 = icmp ne i32 %6011, 0
  br i1 %6012, label %6013, label %6030

6013:                                             ; preds = %6008
  %6014 = load i32, ptr %126, align 4, !tbaa !5
  %6015 = call ptr @__errno_location() #10
  store i32 %6014, ptr %6015, align 4, !tbaa !5
  %6016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6017 = load i32, ptr @test_count, align 4, !tbaa !5
  %6018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6019 = load i32, ptr %6018, align 4, !tbaa !5
  %6020 = call ptr @s2n_strerror(i32 noundef %6019, ptr noundef @.str.4)
  %6021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6022 = load i32, ptr %6021, align 4, !tbaa !5
  %6023 = call ptr @s2n_strerror_debug(i32 noundef %6022, ptr noundef @.str.4)
  %6024 = call ptr @__errno_location() #10
  %6025 = load i32, ptr %6024, align 4, !tbaa !5
  %6026 = call ptr @strerror(i32 noundef %6025) #9
  %6027 = call ptr @__errno_location() #10
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6016, ptr noundef @.str.2, i32 noundef %6017, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 216, ptr noundef %6020, ptr noundef %6023, ptr noundef %6026, i32 noundef %6028) #9
  br label %6047

6030:                                             ; preds = %6008, %6001
  %6031 = load i32, ptr %126, align 4, !tbaa !5
  %6032 = call ptr @__errno_location() #10
  store i32 %6031, ptr %6032, align 4, !tbaa !5
  %6033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6034 = load i32, ptr @test_count, align 4, !tbaa !5
  %6035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6036 = load i32, ptr %6035, align 4, !tbaa !5
  %6037 = call ptr @s2n_strerror(i32 noundef %6036, ptr noundef @.str.4)
  %6038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6039 = load i32, ptr %6038, align 4, !tbaa !5
  %6040 = call ptr @s2n_strerror_debug(i32 noundef %6039, ptr noundef @.str.4)
  %6041 = call ptr @__errno_location() #10
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  %6043 = call ptr @strerror(i32 noundef %6042) #9
  %6044 = call ptr @__errno_location() #10
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6033, ptr noundef @.str.5, i32 noundef %6034, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 216, ptr noundef %6037, ptr noundef %6040, ptr noundef %6043, i32 noundef %6045) #9
  br label %6047

6047:                                             ; preds = %6030, %6013
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  br label %6048

6048:                                             ; preds = %6047
  br label %6049

6049:                                             ; preds = %6048
  call void @exit(i32 noundef 1) #11
  unreachable

6050:                                             ; No predecessors!
  br label %6051

6051:                                             ; preds = %6050
  br label %6052

6052:                                             ; preds = %6051, %5993
  br label %6053

6053:                                             ; preds = %6052
  br label %6054

6054:                                             ; preds = %6053
  br label %6055

6055:                                             ; preds = %6054
  %6056 = load i32, ptr @test_count, align 4, !tbaa !5
  %6057 = add nsw i32 %6056, 1
  store i32 %6057, ptr @test_count, align 4, !tbaa !5
  %6058 = load ptr, ptr %113, align 8, !tbaa !9
  %6059 = icmp eq ptr %6058, @security_policy_null
  br i1 %6059, label %6113, label %6060

6060:                                             ; preds = %6055
  br label %6061

6061:                                             ; preds = %6060
  br label %6062

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

6069:                                             ; preds = %6062
  %6070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6071 = call i32 @fileno(ptr noundef %6070) #9
  %6072 = call i32 @isatty(i32 noundef %6071) #9
  %6073 = icmp ne i32 %6072, 0
  br i1 %6073, label %6074, label %6091

6074:                                             ; preds = %6069
  %6075 = load i32, ptr %127, align 4, !tbaa !5
  %6076 = call ptr @__errno_location() #10
  store i32 %6075, ptr %6076, align 4, !tbaa !5
  %6077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6078 = load i32, ptr @test_count, align 4, !tbaa !5
  %6079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call ptr @s2n_strerror(i32 noundef %6080, ptr noundef @.str.4)
  %6082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  %6084 = call ptr @s2n_strerror_debug(i32 noundef %6083, ptr noundef @.str.4)
  %6085 = call ptr @__errno_location() #10
  %6086 = load i32, ptr %6085, align 4, !tbaa !5
  %6087 = call ptr @strerror(i32 noundef %6086) #9
  %6088 = call ptr @__errno_location() #10
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6077, ptr noundef @.str.2, i32 noundef %6078, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 217, ptr noundef %6081, ptr noundef %6084, ptr noundef %6087, i32 noundef %6089) #9
  br label %6108

6091:                                             ; preds = %6069, %6062
  %6092 = load i32, ptr %127, align 4, !tbaa !5
  %6093 = call ptr @__errno_location() #10
  store i32 %6092, ptr %6093, align 4, !tbaa !5
  %6094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6095 = load i32, ptr @test_count, align 4, !tbaa !5
  %6096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call ptr @s2n_strerror(i32 noundef %6097, ptr noundef @.str.4)
  %6099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6100 = load i32, ptr %6099, align 4, !tbaa !5
  %6101 = call ptr @s2n_strerror_debug(i32 noundef %6100, ptr noundef @.str.4)
  %6102 = call ptr @__errno_location() #10
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  %6104 = call ptr @strerror(i32 noundef %6103) #9
  %6105 = call ptr @__errno_location() #10
  %6106 = load i32, ptr %6105, align 4, !tbaa !5
  %6107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6094, ptr noundef @.str.5, i32 noundef %6095, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 217, ptr noundef %6098, ptr noundef %6101, ptr noundef %6104, i32 noundef %6106) #9
  br label %6108

6108:                                             ; preds = %6091, %6074
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #9
  br label %6109

6109:                                             ; preds = %6108
  br label %6110

6110:                                             ; preds = %6109
  call void @exit(i32 noundef 1) #11
  unreachable

6111:                                             ; No predecessors!
  br label %6112

6112:                                             ; preds = %6111
  br label %6113

6113:                                             ; preds = %6112, %6055
  br label %6114

6114:                                             ; preds = %6113
  br label %6115

6115:                                             ; preds = %6114
  br label %6116

6116:                                             ; preds = %6115
  %6117 = load i32, ptr @test_count, align 4, !tbaa !5
  %6118 = add nsw i32 %6117, 1
  store i32 %6118, ptr @test_count, align 4, !tbaa !5
  %6119 = load ptr, ptr %111, align 8, !tbaa !9
  %6120 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %6119, ptr noundef %114)
  %6121 = icmp eq i32 %6120, -1
  br i1 %6121, label %6122, label %6175

6122:                                             ; preds = %6116
  br label %6123

6123:                                             ; preds = %6122
  br label %6124

6124:                                             ; preds = %6123
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  %6125 = call ptr @__errno_location() #10
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  store i32 %6126, ptr %128, align 4, !tbaa !5
  %6127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6128 = call i32 @s2n_print_stacktrace(ptr noundef %6127)
  %6129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6130 = trunc i8 %6129 to i1
  br i1 %6130, label %6131, label %6153

6131:                                             ; preds = %6124
  %6132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6133 = call i32 @fileno(ptr noundef %6132) #9
  %6134 = call i32 @isatty(i32 noundef %6133) #9
  %6135 = icmp ne i32 %6134, 0
  br i1 %6135, label %6136, label %6153

6136:                                             ; preds = %6131
  %6137 = load i32, ptr %128, align 4, !tbaa !5
  %6138 = call ptr @__errno_location() #10
  store i32 %6137, ptr %6138, align 4, !tbaa !5
  %6139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6140 = load i32, ptr @test_count, align 4, !tbaa !5
  %6141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6142 = load i32, ptr %6141, align 4, !tbaa !5
  %6143 = call ptr @s2n_strerror(i32 noundef %6142, ptr noundef @.str.4)
  %6144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  %6146 = call ptr @s2n_strerror_debug(i32 noundef %6145, ptr noundef @.str.4)
  %6147 = call ptr @__errno_location() #10
  %6148 = load i32, ptr %6147, align 4, !tbaa !5
  %6149 = call ptr @strerror(i32 noundef %6148) #9
  %6150 = call ptr @__errno_location() #10
  %6151 = load i32, ptr %6150, align 4, !tbaa !5
  %6152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6139, ptr noundef @.str.2, i32 noundef %6140, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 219, ptr noundef %6143, ptr noundef %6146, ptr noundef %6149, i32 noundef %6151) #9
  br label %6170

6153:                                             ; preds = %6131, %6124
  %6154 = load i32, ptr %128, align 4, !tbaa !5
  %6155 = call ptr @__errno_location() #10
  store i32 %6154, ptr %6155, align 4, !tbaa !5
  %6156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6157 = load i32, ptr @test_count, align 4, !tbaa !5
  %6158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6159 = load i32, ptr %6158, align 4, !tbaa !5
  %6160 = call ptr @s2n_strerror(i32 noundef %6159, ptr noundef @.str.4)
  %6161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call ptr @s2n_strerror_debug(i32 noundef %6162, ptr noundef @.str.4)
  %6164 = call ptr @__errno_location() #10
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @strerror(i32 noundef %6165) #9
  %6167 = call ptr @__errno_location() #10
  %6168 = load i32, ptr %6167, align 4, !tbaa !5
  %6169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6156, ptr noundef @.str.5, i32 noundef %6157, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 219, ptr noundef %6160, ptr noundef %6163, ptr noundef %6166, i32 noundef %6168) #9
  br label %6170

6170:                                             ; preds = %6153, %6136
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  br label %6171

6171:                                             ; preds = %6170
  br label %6172

6172:                                             ; preds = %6171
  call void @exit(i32 noundef 1) #11
  unreachable

6173:                                             ; No predecessors!
  br label %6174

6174:                                             ; preds = %6173
  br label %6175

6175:                                             ; preds = %6174, %6116
  br label %6176

6176:                                             ; preds = %6175
  br label %6177

6177:                                             ; preds = %6176
  br label %6178

6178:                                             ; preds = %6177
  %6179 = load i32, ptr @test_count, align 4, !tbaa !5
  %6180 = add nsw i32 %6179, 1
  store i32 %6180, ptr @test_count, align 4, !tbaa !5
  %6181 = load ptr, ptr %114, align 8, !tbaa !9
  %6182 = icmp eq ptr %6181, @kem_preferences_null
  br i1 %6182, label %6236, label %6183

6183:                                             ; preds = %6178
  br label %6184

6184:                                             ; preds = %6183
  br label %6185

6185:                                             ; preds = %6184
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #9
  %6186 = call ptr @__errno_location() #10
  %6187 = load i32, ptr %6186, align 4, !tbaa !5
  store i32 %6187, ptr %129, align 4, !tbaa !5
  %6188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6189 = call i32 @s2n_print_stacktrace(ptr noundef %6188)
  %6190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6191 = trunc i8 %6190 to i1
  br i1 %6191, label %6192, label %6214

6192:                                             ; preds = %6185
  %6193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6194 = call i32 @fileno(ptr noundef %6193) #9
  %6195 = call i32 @isatty(i32 noundef %6194) #9
  %6196 = icmp ne i32 %6195, 0
  br i1 %6196, label %6197, label %6214

6197:                                             ; preds = %6192
  %6198 = load i32, ptr %129, align 4, !tbaa !5
  %6199 = call ptr @__errno_location() #10
  store i32 %6198, ptr %6199, align 4, !tbaa !5
  %6200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6201 = load i32, ptr @test_count, align 4, !tbaa !5
  %6202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @s2n_strerror(i32 noundef %6203, ptr noundef @.str.4)
  %6205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call ptr @s2n_strerror_debug(i32 noundef %6206, ptr noundef @.str.4)
  %6208 = call ptr @__errno_location() #10
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call ptr @strerror(i32 noundef %6209) #9
  %6211 = call ptr @__errno_location() #10
  %6212 = load i32, ptr %6211, align 4, !tbaa !5
  %6213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6200, ptr noundef @.str.2, i32 noundef %6201, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 220, ptr noundef %6204, ptr noundef %6207, ptr noundef %6210, i32 noundef %6212) #9
  br label %6231

6214:                                             ; preds = %6192, %6185
  %6215 = load i32, ptr %129, align 4, !tbaa !5
  %6216 = call ptr @__errno_location() #10
  store i32 %6215, ptr %6216, align 4, !tbaa !5
  %6217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6218 = load i32, ptr @test_count, align 4, !tbaa !5
  %6219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6220 = load i32, ptr %6219, align 4, !tbaa !5
  %6221 = call ptr @s2n_strerror(i32 noundef %6220, ptr noundef @.str.4)
  %6222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6223 = load i32, ptr %6222, align 4, !tbaa !5
  %6224 = call ptr @s2n_strerror_debug(i32 noundef %6223, ptr noundef @.str.4)
  %6225 = call ptr @__errno_location() #10
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call ptr @strerror(i32 noundef %6226) #9
  %6228 = call ptr @__errno_location() #10
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  %6230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6217, ptr noundef @.str.5, i32 noundef %6218, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 220, ptr noundef %6221, ptr noundef %6224, ptr noundef %6227, i32 noundef %6229) #9
  br label %6231

6231:                                             ; preds = %6214, %6197
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #9
  br label %6232

6232:                                             ; preds = %6231
  br label %6233

6233:                                             ; preds = %6232
  call void @exit(i32 noundef 1) #11
  unreachable

6234:                                             ; No predecessors!
  br label %6235

6235:                                             ; preds = %6234
  br label %6236

6236:                                             ; preds = %6235, %6178
  br label %6237

6237:                                             ; preds = %6236
  br label %6238

6238:                                             ; preds = %6237
  br label %6239

6239:                                             ; preds = %6238
  %6240 = load i32, ptr @test_count, align 4, !tbaa !5
  %6241 = add nsw i32 %6240, 1
  store i32 %6241, ptr @test_count, align 4, !tbaa !5
  %6242 = load ptr, ptr %111, align 8, !tbaa !9
  %6243 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %6242, ptr noundef %115)
  %6244 = icmp eq i32 %6243, -1
  br i1 %6244, label %6245, label %6298

6245:                                             ; preds = %6239
  br label %6246

6246:                                             ; preds = %6245
  br label %6247

6247:                                             ; preds = %6246
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #9
  %6248 = call ptr @__errno_location() #10
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  store i32 %6249, ptr %130, align 4, !tbaa !5
  %6250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6251 = call i32 @s2n_print_stacktrace(ptr noundef %6250)
  %6252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6253 = trunc i8 %6252 to i1
  br i1 %6253, label %6254, label %6276

6254:                                             ; preds = %6247
  %6255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6256 = call i32 @fileno(ptr noundef %6255) #9
  %6257 = call i32 @isatty(i32 noundef %6256) #9
  %6258 = icmp ne i32 %6257, 0
  br i1 %6258, label %6259, label %6276

6259:                                             ; preds = %6254
  %6260 = load i32, ptr %130, align 4, !tbaa !5
  %6261 = call ptr @__errno_location() #10
  store i32 %6260, ptr %6261, align 4, !tbaa !5
  %6262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6263 = load i32, ptr @test_count, align 4, !tbaa !5
  %6264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6265 = load i32, ptr %6264, align 4, !tbaa !5
  %6266 = call ptr @s2n_strerror(i32 noundef %6265, ptr noundef @.str.4)
  %6267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = call ptr @s2n_strerror_debug(i32 noundef %6268, ptr noundef @.str.4)
  %6270 = call ptr @__errno_location() #10
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call ptr @strerror(i32 noundef %6271) #9
  %6273 = call ptr @__errno_location() #10
  %6274 = load i32, ptr %6273, align 4, !tbaa !5
  %6275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6262, ptr noundef @.str.2, i32 noundef %6263, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 222, ptr noundef %6266, ptr noundef %6269, ptr noundef %6272, i32 noundef %6274) #9
  br label %6293

6276:                                             ; preds = %6254, %6247
  %6277 = load i32, ptr %130, align 4, !tbaa !5
  %6278 = call ptr @__errno_location() #10
  store i32 %6277, ptr %6278, align 4, !tbaa !5
  %6279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6280 = load i32, ptr @test_count, align 4, !tbaa !5
  %6281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  %6283 = call ptr @s2n_strerror(i32 noundef %6282, ptr noundef @.str.4)
  %6284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = call ptr @s2n_strerror_debug(i32 noundef %6285, ptr noundef @.str.4)
  %6287 = call ptr @__errno_location() #10
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call ptr @strerror(i32 noundef %6288) #9
  %6290 = call ptr @__errno_location() #10
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  %6292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6279, ptr noundef @.str.5, i32 noundef %6280, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 222, ptr noundef %6283, ptr noundef %6286, ptr noundef %6289, i32 noundef %6291) #9
  br label %6293

6293:                                             ; preds = %6276, %6259
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #9
  br label %6294

6294:                                             ; preds = %6293
  br label %6295

6295:                                             ; preds = %6294
  call void @exit(i32 noundef 1) #11
  unreachable

6296:                                             ; No predecessors!
  br label %6297

6297:                                             ; preds = %6296
  br label %6298

6298:                                             ; preds = %6297, %6239
  br label %6299

6299:                                             ; preds = %6298
  br label %6300

6300:                                             ; preds = %6299
  br label %6301

6301:                                             ; preds = %6300
  %6302 = load i32, ptr @test_count, align 4, !tbaa !5
  %6303 = add nsw i32 %6302, 1
  store i32 %6303, ptr @test_count, align 4, !tbaa !5
  %6304 = load ptr, ptr %115, align 8, !tbaa !9
  %6305 = icmp eq ptr %6304, @s2n_signature_preferences_null
  br i1 %6305, label %6359, label %6306

6306:                                             ; preds = %6301
  br label %6307

6307:                                             ; preds = %6306
  br label %6308

6308:                                             ; preds = %6307
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #9
  %6309 = call ptr @__errno_location() #10
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  store i32 %6310, ptr %131, align 4, !tbaa !5
  %6311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6312 = call i32 @s2n_print_stacktrace(ptr noundef %6311)
  %6313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6314 = trunc i8 %6313 to i1
  br i1 %6314, label %6315, label %6337

6315:                                             ; preds = %6308
  %6316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6317 = call i32 @fileno(ptr noundef %6316) #9
  %6318 = call i32 @isatty(i32 noundef %6317) #9
  %6319 = icmp ne i32 %6318, 0
  br i1 %6319, label %6320, label %6337

6320:                                             ; preds = %6315
  %6321 = load i32, ptr %131, align 4, !tbaa !5
  %6322 = call ptr @__errno_location() #10
  store i32 %6321, ptr %6322, align 4, !tbaa !5
  %6323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6324 = load i32, ptr @test_count, align 4, !tbaa !5
  %6325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6326 = load i32, ptr %6325, align 4, !tbaa !5
  %6327 = call ptr @s2n_strerror(i32 noundef %6326, ptr noundef @.str.4)
  %6328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6329 = load i32, ptr %6328, align 4, !tbaa !5
  %6330 = call ptr @s2n_strerror_debug(i32 noundef %6329, ptr noundef @.str.4)
  %6331 = call ptr @__errno_location() #10
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  %6333 = call ptr @strerror(i32 noundef %6332) #9
  %6334 = call ptr @__errno_location() #10
  %6335 = load i32, ptr %6334, align 4, !tbaa !5
  %6336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6323, ptr noundef @.str.2, i32 noundef %6324, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 223, ptr noundef %6327, ptr noundef %6330, ptr noundef %6333, i32 noundef %6335) #9
  br label %6354

6337:                                             ; preds = %6315, %6308
  %6338 = load i32, ptr %131, align 4, !tbaa !5
  %6339 = call ptr @__errno_location() #10
  store i32 %6338, ptr %6339, align 4, !tbaa !5
  %6340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6341 = load i32, ptr @test_count, align 4, !tbaa !5
  %6342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call ptr @s2n_strerror(i32 noundef %6343, ptr noundef @.str.4)
  %6345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = call ptr @s2n_strerror_debug(i32 noundef %6346, ptr noundef @.str.4)
  %6348 = call ptr @__errno_location() #10
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call ptr @strerror(i32 noundef %6349) #9
  %6351 = call ptr @__errno_location() #10
  %6352 = load i32, ptr %6351, align 4, !tbaa !5
  %6353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6340, ptr noundef @.str.5, i32 noundef %6341, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 223, ptr noundef %6344, ptr noundef %6347, ptr noundef %6350, i32 noundef %6352) #9
  br label %6354

6354:                                             ; preds = %6337, %6320
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #9
  br label %6355

6355:                                             ; preds = %6354
  br label %6356

6356:                                             ; preds = %6355
  call void @exit(i32 noundef 1) #11
  unreachable

6357:                                             ; No predecessors!
  br label %6358

6358:                                             ; preds = %6357
  br label %6359

6359:                                             ; preds = %6358, %6301
  br label %6360

6360:                                             ; preds = %6359
  br label %6361

6361:                                             ; preds = %6360
  br label %6362

6362:                                             ; preds = %6361
  %6363 = load i32, ptr @test_count, align 4, !tbaa !5
  %6364 = add nsw i32 %6363, 1
  store i32 %6364, ptr @test_count, align 4, !tbaa !5
  %6365 = load ptr, ptr %111, align 8, !tbaa !9
  %6366 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %6365, ptr noundef %116)
  %6367 = icmp eq i32 %6366, -1
  br i1 %6367, label %6368, label %6421

6368:                                             ; preds = %6362
  br label %6369

6369:                                             ; preds = %6368
  br label %6370

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

6377:                                             ; preds = %6370
  %6378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6379 = call i32 @fileno(ptr noundef %6378) #9
  %6380 = call i32 @isatty(i32 noundef %6379) #9
  %6381 = icmp ne i32 %6380, 0
  br i1 %6381, label %6382, label %6399

6382:                                             ; preds = %6377
  %6383 = load i32, ptr %132, align 4, !tbaa !5
  %6384 = call ptr @__errno_location() #10
  store i32 %6383, ptr %6384, align 4, !tbaa !5
  %6385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6386 = load i32, ptr @test_count, align 4, !tbaa !5
  %6387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror(i32 noundef %6388, ptr noundef @.str.4)
  %6390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @s2n_strerror_debug(i32 noundef %6391, ptr noundef @.str.4)
  %6393 = call ptr @__errno_location() #10
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call ptr @strerror(i32 noundef %6394) #9
  %6396 = call ptr @__errno_location() #10
  %6397 = load i32, ptr %6396, align 4, !tbaa !5
  %6398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6385, ptr noundef @.str.2, i32 noundef %6386, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 225, ptr noundef %6389, ptr noundef %6392, ptr noundef %6395, i32 noundef %6397) #9
  br label %6416

6399:                                             ; preds = %6377, %6370
  %6400 = load i32, ptr %132, align 4, !tbaa !5
  %6401 = call ptr @__errno_location() #10
  store i32 %6400, ptr %6401, align 4, !tbaa !5
  %6402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6403 = load i32, ptr @test_count, align 4, !tbaa !5
  %6404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6405 = load i32, ptr %6404, align 4, !tbaa !5
  %6406 = call ptr @s2n_strerror(i32 noundef %6405, ptr noundef @.str.4)
  %6407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @s2n_strerror_debug(i32 noundef %6408, ptr noundef @.str.4)
  %6410 = call ptr @__errno_location() #10
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call ptr @strerror(i32 noundef %6411) #9
  %6413 = call ptr @__errno_location() #10
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  %6415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6402, ptr noundef @.str.5, i32 noundef %6403, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 225, ptr noundef %6406, ptr noundef %6409, ptr noundef %6412, i32 noundef %6414) #9
  br label %6416

6416:                                             ; preds = %6399, %6382
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #9
  br label %6417

6417:                                             ; preds = %6416
  br label %6418

6418:                                             ; preds = %6417
  call void @exit(i32 noundef 1) #11
  unreachable

6419:                                             ; No predecessors!
  br label %6420

6420:                                             ; preds = %6419
  br label %6421

6421:                                             ; preds = %6420, %6362
  br label %6422

6422:                                             ; preds = %6421
  br label %6423

6423:                                             ; preds = %6422
  br label %6424

6424:                                             ; preds = %6423
  %6425 = load i32, ptr @test_count, align 4, !tbaa !5
  %6426 = add nsw i32 %6425, 1
  store i32 %6426, ptr @test_count, align 4, !tbaa !5
  %6427 = load ptr, ptr %116, align 8, !tbaa !9
  %6428 = icmp eq ptr %6427, @s2n_ecc_preferences_null
  br i1 %6428, label %6482, label %6429

6429:                                             ; preds = %6424
  br label %6430

6430:                                             ; preds = %6429
  br label %6431

6431:                                             ; preds = %6430
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #9
  %6432 = call ptr @__errno_location() #10
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  store i32 %6433, ptr %133, align 4, !tbaa !5
  %6434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6435 = call i32 @s2n_print_stacktrace(ptr noundef %6434)
  %6436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6437 = trunc i8 %6436 to i1
  br i1 %6437, label %6438, label %6460

6438:                                             ; preds = %6431
  %6439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6440 = call i32 @fileno(ptr noundef %6439) #9
  %6441 = call i32 @isatty(i32 noundef %6440) #9
  %6442 = icmp ne i32 %6441, 0
  br i1 %6442, label %6443, label %6460

6443:                                             ; preds = %6438
  %6444 = load i32, ptr %133, align 4, !tbaa !5
  %6445 = call ptr @__errno_location() #10
  store i32 %6444, ptr %6445, align 4, !tbaa !5
  %6446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6447 = load i32, ptr @test_count, align 4, !tbaa !5
  %6448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6449 = load i32, ptr %6448, align 4, !tbaa !5
  %6450 = call ptr @s2n_strerror(i32 noundef %6449, ptr noundef @.str.4)
  %6451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6452 = load i32, ptr %6451, align 4, !tbaa !5
  %6453 = call ptr @s2n_strerror_debug(i32 noundef %6452, ptr noundef @.str.4)
  %6454 = call ptr @__errno_location() #10
  %6455 = load i32, ptr %6454, align 4, !tbaa !5
  %6456 = call ptr @strerror(i32 noundef %6455) #9
  %6457 = call ptr @__errno_location() #10
  %6458 = load i32, ptr %6457, align 4, !tbaa !5
  %6459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6446, ptr noundef @.str.2, i32 noundef %6447, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 226, ptr noundef %6450, ptr noundef %6453, ptr noundef %6456, i32 noundef %6458) #9
  br label %6477

6460:                                             ; preds = %6438, %6431
  %6461 = load i32, ptr %133, align 4, !tbaa !5
  %6462 = call ptr @__errno_location() #10
  store i32 %6461, ptr %6462, align 4, !tbaa !5
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = load i32, ptr @test_count, align 4, !tbaa !5
  %6465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6466 = load i32, ptr %6465, align 4, !tbaa !5
  %6467 = call ptr @s2n_strerror(i32 noundef %6466, ptr noundef @.str.4)
  %6468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = call ptr @s2n_strerror_debug(i32 noundef %6469, ptr noundef @.str.4)
  %6471 = call ptr @__errno_location() #10
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  %6473 = call ptr @strerror(i32 noundef %6472) #9
  %6474 = call ptr @__errno_location() #10
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  %6476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6463, ptr noundef @.str.5, i32 noundef %6464, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 226, ptr noundef %6467, ptr noundef %6470, ptr noundef %6473, i32 noundef %6475) #9
  br label %6477

6477:                                             ; preds = %6460, %6443
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #9
  br label %6478

6478:                                             ; preds = %6477
  br label %6479

6479:                                             ; preds = %6478
  call void @exit(i32 noundef 1) #11
  unreachable

6480:                                             ; No predecessors!
  br label %6481

6481:                                             ; preds = %6480
  br label %6482

6482:                                             ; preds = %6481, %6424
  br label %6483

6483:                                             ; preds = %6482
  br label %6484

6484:                                             ; preds = %6483
  br label %6485

6485:                                             ; preds = %6484
  %6486 = load i32, ptr @test_count, align 4, !tbaa !5
  %6487 = add nsw i32 %6486, 1
  store i32 %6487, ptr @test_count, align 4, !tbaa !5
  %6488 = load ptr, ptr %111, align 8, !tbaa !9
  %6489 = call i32 @s2n_connection_free(ptr noundef %6488)
  %6490 = icmp eq i32 %6489, -1
  br i1 %6490, label %6491, label %6544

6491:                                             ; preds = %6485
  br label %6492

6492:                                             ; preds = %6491
  br label %6493

6493:                                             ; preds = %6492
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #9
  %6494 = call ptr @__errno_location() #10
  %6495 = load i32, ptr %6494, align 4, !tbaa !5
  store i32 %6495, ptr %134, align 4, !tbaa !5
  %6496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6497 = call i32 @s2n_print_stacktrace(ptr noundef %6496)
  %6498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6499 = trunc i8 %6498 to i1
  br i1 %6499, label %6500, label %6522

6500:                                             ; preds = %6493
  %6501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6502 = call i32 @fileno(ptr noundef %6501) #9
  %6503 = call i32 @isatty(i32 noundef %6502) #9
  %6504 = icmp ne i32 %6503, 0
  br i1 %6504, label %6505, label %6522

6505:                                             ; preds = %6500
  %6506 = load i32, ptr %134, align 4, !tbaa !5
  %6507 = call ptr @__errno_location() #10
  store i32 %6506, ptr %6507, align 4, !tbaa !5
  %6508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6509 = load i32, ptr @test_count, align 4, !tbaa !5
  %6510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call ptr @s2n_strerror(i32 noundef %6511, ptr noundef @.str.4)
  %6513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6514 = load i32, ptr %6513, align 4, !tbaa !5
  %6515 = call ptr @s2n_strerror_debug(i32 noundef %6514, ptr noundef @.str.4)
  %6516 = call ptr @__errno_location() #10
  %6517 = load i32, ptr %6516, align 4, !tbaa !5
  %6518 = call ptr @strerror(i32 noundef %6517) #9
  %6519 = call ptr @__errno_location() #10
  %6520 = load i32, ptr %6519, align 4, !tbaa !5
  %6521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6508, ptr noundef @.str.2, i32 noundef %6509, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 228, ptr noundef %6512, ptr noundef %6515, ptr noundef %6518, i32 noundef %6520) #9
  br label %6539

6522:                                             ; preds = %6500, %6493
  %6523 = load i32, ptr %134, align 4, !tbaa !5
  %6524 = call ptr @__errno_location() #10
  store i32 %6523, ptr %6524, align 4, !tbaa !5
  %6525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6526 = load i32, ptr @test_count, align 4, !tbaa !5
  %6527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6528 = load i32, ptr %6527, align 4, !tbaa !5
  %6529 = call ptr @s2n_strerror(i32 noundef %6528, ptr noundef @.str.4)
  %6530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6531 = load i32, ptr %6530, align 4, !tbaa !5
  %6532 = call ptr @s2n_strerror_debug(i32 noundef %6531, ptr noundef @.str.4)
  %6533 = call ptr @__errno_location() #10
  %6534 = load i32, ptr %6533, align 4, !tbaa !5
  %6535 = call ptr @strerror(i32 noundef %6534) #9
  %6536 = call ptr @__errno_location() #10
  %6537 = load i32, ptr %6536, align 4, !tbaa !5
  %6538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6525, ptr noundef @.str.5, i32 noundef %6526, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 228, ptr noundef %6529, ptr noundef %6532, ptr noundef %6535, i32 noundef %6537) #9
  br label %6539

6539:                                             ; preds = %6522, %6505
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #9
  br label %6540

6540:                                             ; preds = %6539
  br label %6541

6541:                                             ; preds = %6540
  call void @exit(i32 noundef 1) #11
  unreachable

6542:                                             ; No predecessors!
  br label %6543

6543:                                             ; preds = %6542
  br label %6544

6544:                                             ; preds = %6543, %6485
  br label %6545

6545:                                             ; preds = %6544
  br label %6546

6546:                                             ; preds = %6545
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #9
  store ptr null, ptr %135, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #9
  store ptr null, ptr %136, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #9
  store ptr null, ptr %137, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #9
  store ptr null, ptr %138, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #9
  store ptr null, ptr %139, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #9
  store ptr null, ptr %140, align 8, !tbaa !9
  br label %6547

6547:                                             ; preds = %6546
  br label %6548

6548:                                             ; preds = %6547
  %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 %135, align 8, !tbaa !9
  %6552 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %6551, ptr noundef %136)
  %6553 = icmp eq i32 %6552, -1
  br i1 %6553, label %6607, label %6554

6554:                                             ; preds = %6548
  br label %6555

6555:                                             ; preds = %6554
  br label %6556

6556:                                             ; preds = %6555
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #9
  %6557 = call ptr @__errno_location() #10
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  store i32 %6558, ptr %141, align 4, !tbaa !5
  %6559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6560 = call i32 @s2n_print_stacktrace(ptr noundef %6559)
  %6561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6562 = trunc i8 %6561 to i1
  br i1 %6562, label %6563, label %6585

6563:                                             ; preds = %6556
  %6564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6565 = call i32 @fileno(ptr noundef %6564) #9
  %6566 = call i32 @isatty(i32 noundef %6565) #9
  %6567 = icmp ne i32 %6566, 0
  br i1 %6567, label %6568, label %6585

6568:                                             ; preds = %6563
  %6569 = load i32, ptr %141, align 4, !tbaa !5
  %6570 = call ptr @__errno_location() #10
  store i32 %6569, ptr %6570, align 4, !tbaa !5
  %6571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6572 = load i32, ptr @test_count, align 4, !tbaa !5
  %6573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6574 = load i32, ptr %6573, align 4, !tbaa !5
  %6575 = call ptr @s2n_strerror(i32 noundef %6574, ptr noundef @.str.4)
  %6576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6577 = load i32, ptr %6576, align 4, !tbaa !5
  %6578 = call ptr @s2n_strerror_debug(i32 noundef %6577, ptr noundef @.str.4)
  %6579 = call ptr @__errno_location() #10
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  %6581 = call ptr @strerror(i32 noundef %6580) #9
  %6582 = call ptr @__errno_location() #10
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  %6584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6571, ptr noundef @.str.2, i32 noundef %6572, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 240, ptr noundef %6575, ptr noundef %6578, ptr noundef %6581, i32 noundef %6583) #9
  br label %6602

6585:                                             ; preds = %6563, %6556
  %6586 = load i32, ptr %141, align 4, !tbaa !5
  %6587 = call ptr @__errno_location() #10
  store i32 %6586, ptr %6587, align 4, !tbaa !5
  %6588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6589 = load i32, ptr @test_count, align 4, !tbaa !5
  %6590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6591 = load i32, ptr %6590, align 4, !tbaa !5
  %6592 = call ptr @s2n_strerror(i32 noundef %6591, ptr noundef @.str.4)
  %6593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6594 = load i32, ptr %6593, align 4, !tbaa !5
  %6595 = call ptr @s2n_strerror_debug(i32 noundef %6594, ptr noundef @.str.4)
  %6596 = call ptr @__errno_location() #10
  %6597 = load i32, ptr %6596, align 4, !tbaa !5
  %6598 = call ptr @strerror(i32 noundef %6597) #9
  %6599 = call ptr @__errno_location() #10
  %6600 = load i32, ptr %6599, align 4, !tbaa !5
  %6601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6588, ptr noundef @.str.5, i32 noundef %6589, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 240, ptr noundef %6592, ptr noundef %6595, ptr noundef %6598, i32 noundef %6600) #9
  br label %6602

6602:                                             ; preds = %6585, %6568
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #9
  br label %6603

6603:                                             ; preds = %6602
  br label %6604

6604:                                             ; preds = %6603
  call void @exit(i32 noundef 1) #11
  unreachable

6605:                                             ; No predecessors!
  br label %6606

6606:                                             ; preds = %6605
  br label %6607

6607:                                             ; preds = %6606, %6548
  br label %6608

6608:                                             ; preds = %6607
  br label %6609

6609:                                             ; preds = %6608
  br label %6610

6610:                                             ; preds = %6609
  %6611 = load i32, ptr @test_count, align 4, !tbaa !5
  %6612 = add nsw i32 %6611, 1
  store i32 %6612, ptr @test_count, align 4, !tbaa !5
  %6613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6614 = load i32, ptr %6613, align 4, !tbaa !5
  %6615 = icmp eq i32 %6614, 0
  br i1 %6615, label %6616, label %6669

6616:                                             ; preds = %6610
  br label %6617

6617:                                             ; preds = %6616
  br label %6618

6618:                                             ; preds = %6617
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #9
  %6619 = call ptr @__errno_location() #10
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  store i32 %6620, ptr %142, align 4, !tbaa !5
  %6621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6622 = call i32 @s2n_print_stacktrace(ptr noundef %6621)
  %6623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6624 = trunc i8 %6623 to i1
  br i1 %6624, label %6625, label %6647

6625:                                             ; preds = %6618
  %6626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6627 = call i32 @fileno(ptr noundef %6626) #9
  %6628 = call i32 @isatty(i32 noundef %6627) #9
  %6629 = icmp ne i32 %6628, 0
  br i1 %6629, label %6630, label %6647

6630:                                             ; preds = %6625
  %6631 = load i32, ptr %142, align 4, !tbaa !5
  %6632 = call ptr @__errno_location() #10
  store i32 %6631, ptr %6632, align 4, !tbaa !5
  %6633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6634 = load i32, ptr @test_count, align 4, !tbaa !5
  %6635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6636 = load i32, ptr %6635, align 4, !tbaa !5
  %6637 = call ptr @s2n_strerror(i32 noundef %6636, ptr noundef @.str.4)
  %6638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6639 = load i32, ptr %6638, align 4, !tbaa !5
  %6640 = call ptr @s2n_strerror_debug(i32 noundef %6639, ptr noundef @.str.4)
  %6641 = call ptr @__errno_location() #10
  %6642 = load i32, ptr %6641, align 4, !tbaa !5
  %6643 = call ptr @strerror(i32 noundef %6642) #9
  %6644 = call ptr @__errno_location() #10
  %6645 = load i32, ptr %6644, align 4, !tbaa !5
  %6646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6633, ptr noundef @.str.2, i32 noundef %6634, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 240, ptr noundef %6637, ptr noundef %6640, ptr noundef %6643, i32 noundef %6645) #9
  br label %6664

6647:                                             ; preds = %6625, %6618
  %6648 = load i32, ptr %142, align 4, !tbaa !5
  %6649 = call ptr @__errno_location() #10
  store i32 %6648, ptr %6649, align 4, !tbaa !5
  %6650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6651 = load i32, ptr @test_count, align 4, !tbaa !5
  %6652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6653 = load i32, ptr %6652, align 4, !tbaa !5
  %6654 = call ptr @s2n_strerror(i32 noundef %6653, ptr noundef @.str.4)
  %6655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6656 = load i32, ptr %6655, align 4, !tbaa !5
  %6657 = call ptr @s2n_strerror_debug(i32 noundef %6656, ptr noundef @.str.4)
  %6658 = call ptr @__errno_location() #10
  %6659 = load i32, ptr %6658, align 4, !tbaa !5
  %6660 = call ptr @strerror(i32 noundef %6659) #9
  %6661 = call ptr @__errno_location() #10
  %6662 = load i32, ptr %6661, align 4, !tbaa !5
  %6663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6650, ptr noundef @.str.5, i32 noundef %6651, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 240, ptr noundef %6654, ptr noundef %6657, ptr noundef %6660, i32 noundef %6662) #9
  br label %6664

6664:                                             ; preds = %6647, %6630
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #9
  br label %6665

6665:                                             ; preds = %6664
  br label %6666

6666:                                             ; preds = %6665
  call void @exit(i32 noundef 1) #11
  unreachable

6667:                                             ; No predecessors!
  br label %6668

6668:                                             ; preds = %6667
  br label %6669

6669:                                             ; preds = %6668, %6610
  br label %6670

6670:                                             ; preds = %6669
  br label %6671

6671:                                             ; preds = %6670
  br label %6672

6672:                                             ; preds = %6671
  %6673 = load i32, ptr @test_count, align 4, !tbaa !5
  %6674 = add nsw i32 %6673, 1
  store i32 %6674, ptr @test_count, align 4, !tbaa !5
  %6675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6676 = load i32, ptr %6675, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror_debug(i32 noundef %6676, ptr noundef @.str.4)
  %6678 = icmp eq ptr %6677, null
  br i1 %6678, label %6679, label %6732

6679:                                             ; preds = %6672
  br label %6680

6680:                                             ; preds = %6679
  br label %6681

6681:                                             ; preds = %6680
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #9
  %6682 = call ptr @__errno_location() #10
  %6683 = load i32, ptr %6682, align 4, !tbaa !5
  store i32 %6683, ptr %143, align 4, !tbaa !5
  %6684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6685 = call i32 @s2n_print_stacktrace(ptr noundef %6684)
  %6686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6687 = trunc i8 %6686 to i1
  br i1 %6687, label %6688, label %6710

6688:                                             ; preds = %6681
  %6689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6690 = call i32 @fileno(ptr noundef %6689) #9
  %6691 = call i32 @isatty(i32 noundef %6690) #9
  %6692 = icmp ne i32 %6691, 0
  br i1 %6692, label %6693, label %6710

6693:                                             ; preds = %6688
  %6694 = load i32, ptr %143, align 4, !tbaa !5
  %6695 = call ptr @__errno_location() #10
  store i32 %6694, ptr %6695, align 4, !tbaa !5
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = load i32, ptr @test_count, align 4, !tbaa !5
  %6698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @s2n_strerror(i32 noundef %6699, ptr noundef @.str.4)
  %6701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call ptr @s2n_strerror_debug(i32 noundef %6702, ptr noundef @.str.4)
  %6704 = call ptr @__errno_location() #10
  %6705 = load i32, ptr %6704, align 4, !tbaa !5
  %6706 = call ptr @strerror(i32 noundef %6705) #9
  %6707 = call ptr @__errno_location() #10
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6696, ptr noundef @.str.2, i32 noundef %6697, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 240, ptr noundef %6700, ptr noundef %6703, ptr noundef %6706, i32 noundef %6708) #9
  br label %6727

6710:                                             ; preds = %6688, %6681
  %6711 = load i32, ptr %143, align 4, !tbaa !5
  %6712 = call ptr @__errno_location() #10
  store i32 %6711, ptr %6712, align 4, !tbaa !5
  %6713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6714 = load i32, ptr @test_count, align 4, !tbaa !5
  %6715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6716 = load i32, ptr %6715, align 4, !tbaa !5
  %6717 = call ptr @s2n_strerror(i32 noundef %6716, ptr noundef @.str.4)
  %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_debug(i32 noundef %6719, ptr noundef @.str.4)
  %6721 = call ptr @__errno_location() #10
  %6722 = load i32, ptr %6721, align 4, !tbaa !5
  %6723 = call ptr @strerror(i32 noundef %6722) #9
  %6724 = call ptr @__errno_location() #10
  %6725 = load i32, ptr %6724, align 4, !tbaa !5
  %6726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6713, ptr noundef @.str.5, i32 noundef %6714, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 240, ptr noundef %6717, ptr noundef %6720, ptr noundef %6723, i32 noundef %6725) #9
  br label %6727

6727:                                             ; preds = %6710, %6693
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #9
  br label %6728

6728:                                             ; preds = %6727
  br label %6729

6729:                                             ; preds = %6728
  call void @exit(i32 noundef 1) #11
  unreachable

6730:                                             ; No predecessors!
  br label %6731

6731:                                             ; preds = %6730
  br label %6732

6732:                                             ; preds = %6731, %6672
  br label %6733

6733:                                             ; preds = %6732
  br label %6734

6734:                                             ; preds = %6733
  br label %6735

6735:                                             ; preds = %6734
  %6736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6736, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6737 = call ptr @__errno_location() #10
  store i32 0, ptr %6737, align 4, !tbaa !5
  br label %6738

6738:                                             ; preds = %6735
  br label %6739

6739:                                             ; preds = %6738
  br label %6740

6740:                                             ; preds = %6739
  br label %6741

6741:                                             ; preds = %6740
  br label %6742

6742:                                             ; preds = %6741
  br label %6743

6743:                                             ; preds = %6742
  %6744 = load i32, ptr @test_count, align 4, !tbaa !5
  %6745 = add nsw i32 %6744, 1
  store i32 %6745, ptr @test_count, align 4, !tbaa !5
  %6746 = load ptr, ptr %135, align 8, !tbaa !9
  %6747 = call i32 @s2n_connection_get_security_policy(ptr noundef %6746, ptr noundef %137)
  %6748 = icmp eq i32 %6747, -1
  br i1 %6748, label %6802, label %6749

6749:                                             ; preds = %6743
  br label %6750

6750:                                             ; preds = %6749
  br label %6751

6751:                                             ; preds = %6750
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #9
  %6752 = call ptr @__errno_location() #10
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  store i32 %6753, ptr %144, align 4, !tbaa !5
  %6754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6755 = call i32 @s2n_print_stacktrace(ptr noundef %6754)
  %6756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6757 = trunc i8 %6756 to i1
  br i1 %6757, label %6758, label %6780

6758:                                             ; preds = %6751
  %6759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6760 = call i32 @fileno(ptr noundef %6759) #9
  %6761 = call i32 @isatty(i32 noundef %6760) #9
  %6762 = icmp ne i32 %6761, 0
  br i1 %6762, label %6763, label %6780

6763:                                             ; preds = %6758
  %6764 = load i32, ptr %144, align 4, !tbaa !5
  %6765 = call ptr @__errno_location() #10
  store i32 %6764, ptr %6765, align 4, !tbaa !5
  %6766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6767 = load i32, ptr @test_count, align 4, !tbaa !5
  %6768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6769 = load i32, ptr %6768, align 4, !tbaa !5
  %6770 = call ptr @s2n_strerror(i32 noundef %6769, ptr noundef @.str.4)
  %6771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  %6773 = call ptr @s2n_strerror_debug(i32 noundef %6772, ptr noundef @.str.4)
  %6774 = call ptr @__errno_location() #10
  %6775 = load i32, ptr %6774, align 4, !tbaa !5
  %6776 = call ptr @strerror(i32 noundef %6775) #9
  %6777 = call ptr @__errno_location() #10
  %6778 = load i32, ptr %6777, align 4, !tbaa !5
  %6779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6766, ptr noundef @.str.2, i32 noundef %6767, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6770, ptr noundef %6773, ptr noundef %6776, i32 noundef %6778) #9
  br label %6797

6780:                                             ; preds = %6758, %6751
  %6781 = load i32, ptr %144, align 4, !tbaa !5
  %6782 = call ptr @__errno_location() #10
  store i32 %6781, ptr %6782, align 4, !tbaa !5
  %6783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6784 = load i32, ptr @test_count, align 4, !tbaa !5
  %6785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6786 = load i32, ptr %6785, align 4, !tbaa !5
  %6787 = call ptr @s2n_strerror(i32 noundef %6786, ptr noundef @.str.4)
  %6788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  %6790 = call ptr @s2n_strerror_debug(i32 noundef %6789, ptr noundef @.str.4)
  %6791 = call ptr @__errno_location() #10
  %6792 = load i32, ptr %6791, align 4, !tbaa !5
  %6793 = call ptr @strerror(i32 noundef %6792) #9
  %6794 = call ptr @__errno_location() #10
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  %6796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6783, ptr noundef @.str.5, i32 noundef %6784, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6787, ptr noundef %6790, ptr noundef %6793, i32 noundef %6795) #9
  br label %6797

6797:                                             ; preds = %6780, %6763
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #9
  br label %6798

6798:                                             ; preds = %6797
  br label %6799

6799:                                             ; preds = %6798
  call void @exit(i32 noundef 1) #11
  unreachable

6800:                                             ; No predecessors!
  br label %6801

6801:                                             ; preds = %6800
  br label %6802

6802:                                             ; preds = %6801, %6743
  br label %6803

6803:                                             ; preds = %6802
  br label %6804

6804:                                             ; preds = %6803
  br label %6805

6805:                                             ; preds = %6804
  %6806 = load i32, ptr @test_count, align 4, !tbaa !5
  %6807 = add nsw i32 %6806, 1
  store i32 %6807, ptr @test_count, align 4, !tbaa !5
  %6808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = icmp eq i32 %6809, 0
  br i1 %6810, label %6811, label %6864

6811:                                             ; preds = %6805
  br label %6812

6812:                                             ; preds = %6811
  br label %6813

6813:                                             ; preds = %6812
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #9
  %6814 = call ptr @__errno_location() #10
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  store i32 %6815, ptr %145, align 4, !tbaa !5
  %6816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6817 = call i32 @s2n_print_stacktrace(ptr noundef %6816)
  %6818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6819 = trunc i8 %6818 to i1
  br i1 %6819, label %6820, label %6842

6820:                                             ; preds = %6813
  %6821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6822 = call i32 @fileno(ptr noundef %6821) #9
  %6823 = call i32 @isatty(i32 noundef %6822) #9
  %6824 = icmp ne i32 %6823, 0
  br i1 %6824, label %6825, label %6842

6825:                                             ; preds = %6820
  %6826 = load i32, ptr %145, align 4, !tbaa !5
  %6827 = call ptr @__errno_location() #10
  store i32 %6826, ptr %6827, align 4, !tbaa !5
  %6828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6829 = load i32, ptr @test_count, align 4, !tbaa !5
  %6830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call ptr @s2n_strerror(i32 noundef %6831, ptr noundef @.str.4)
  %6833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call ptr @s2n_strerror_debug(i32 noundef %6834, ptr noundef @.str.4)
  %6836 = call ptr @__errno_location() #10
  %6837 = load i32, ptr %6836, align 4, !tbaa !5
  %6838 = call ptr @strerror(i32 noundef %6837) #9
  %6839 = call ptr @__errno_location() #10
  %6840 = load i32, ptr %6839, align 4, !tbaa !5
  %6841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6828, ptr noundef @.str.2, i32 noundef %6829, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6832, ptr noundef %6835, ptr noundef %6838, i32 noundef %6840) #9
  br label %6859

6842:                                             ; preds = %6820, %6813
  %6843 = load i32, ptr %145, align 4, !tbaa !5
  %6844 = call ptr @__errno_location() #10
  store i32 %6843, ptr %6844, align 4, !tbaa !5
  %6845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6846 = load i32, ptr @test_count, align 4, !tbaa !5
  %6847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6848 = load i32, ptr %6847, align 4, !tbaa !5
  %6849 = call ptr @s2n_strerror(i32 noundef %6848, ptr noundef @.str.4)
  %6850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6851 = load i32, ptr %6850, align 4, !tbaa !5
  %6852 = call ptr @s2n_strerror_debug(i32 noundef %6851, ptr noundef @.str.4)
  %6853 = call ptr @__errno_location() #10
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  %6855 = call ptr @strerror(i32 noundef %6854) #9
  %6856 = call ptr @__errno_location() #10
  %6857 = load i32, ptr %6856, align 4, !tbaa !5
  %6858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6845, ptr noundef @.str.5, i32 noundef %6846, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6849, ptr noundef %6852, ptr noundef %6855, i32 noundef %6857) #9
  br label %6859

6859:                                             ; preds = %6842, %6825
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #9
  br label %6860

6860:                                             ; preds = %6859
  br label %6861

6861:                                             ; preds = %6860
  call void @exit(i32 noundef 1) #11
  unreachable

6862:                                             ; No predecessors!
  br label %6863

6863:                                             ; preds = %6862
  br label %6864

6864:                                             ; preds = %6863, %6805
  br label %6865

6865:                                             ; preds = %6864
  br label %6866

6866:                                             ; preds = %6865
  br label %6867

6867:                                             ; preds = %6866
  %6868 = load i32, ptr @test_count, align 4, !tbaa !5
  %6869 = add nsw i32 %6868, 1
  store i32 %6869, ptr @test_count, align 4, !tbaa !5
  %6870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6871 = load i32, ptr %6870, align 4, !tbaa !5
  %6872 = call ptr @s2n_strerror_debug(i32 noundef %6871, ptr noundef @.str.4)
  %6873 = icmp eq ptr %6872, null
  br i1 %6873, label %6874, label %6927

6874:                                             ; preds = %6867
  br label %6875

6875:                                             ; preds = %6874
  br label %6876

6876:                                             ; preds = %6875
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #9
  %6877 = call ptr @__errno_location() #10
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  store i32 %6878, ptr %146, align 4, !tbaa !5
  %6879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6880 = call i32 @s2n_print_stacktrace(ptr noundef %6879)
  %6881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6882 = trunc i8 %6881 to i1
  br i1 %6882, label %6883, label %6905

6883:                                             ; preds = %6876
  %6884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6885 = call i32 @fileno(ptr noundef %6884) #9
  %6886 = call i32 @isatty(i32 noundef %6885) #9
  %6887 = icmp ne i32 %6886, 0
  br i1 %6887, label %6888, label %6905

6888:                                             ; preds = %6883
  %6889 = load i32, ptr %146, align 4, !tbaa !5
  %6890 = call ptr @__errno_location() #10
  store i32 %6889, ptr %6890, align 4, !tbaa !5
  %6891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6892 = load i32, ptr @test_count, align 4, !tbaa !5
  %6893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6894 = load i32, ptr %6893, align 4, !tbaa !5
  %6895 = call ptr @s2n_strerror(i32 noundef %6894, ptr noundef @.str.4)
  %6896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6897 = load i32, ptr %6896, align 4, !tbaa !5
  %6898 = call ptr @s2n_strerror_debug(i32 noundef %6897, ptr noundef @.str.4)
  %6899 = call ptr @__errno_location() #10
  %6900 = load i32, ptr %6899, align 4, !tbaa !5
  %6901 = call ptr @strerror(i32 noundef %6900) #9
  %6902 = call ptr @__errno_location() #10
  %6903 = load i32, ptr %6902, align 4, !tbaa !5
  %6904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6891, ptr noundef @.str.2, i32 noundef %6892, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6895, ptr noundef %6898, ptr noundef %6901, i32 noundef %6903) #9
  br label %6922

6905:                                             ; preds = %6883, %6876
  %6906 = load i32, ptr %146, align 4, !tbaa !5
  %6907 = call ptr @__errno_location() #10
  store i32 %6906, ptr %6907, align 4, !tbaa !5
  %6908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6909 = load i32, ptr @test_count, align 4, !tbaa !5
  %6910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6911 = load i32, ptr %6910, align 4, !tbaa !5
  %6912 = call ptr @s2n_strerror(i32 noundef %6911, ptr noundef @.str.4)
  %6913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6914 = load i32, ptr %6913, align 4, !tbaa !5
  %6915 = call ptr @s2n_strerror_debug(i32 noundef %6914, ptr noundef @.str.4)
  %6916 = call ptr @__errno_location() #10
  %6917 = load i32, ptr %6916, align 4, !tbaa !5
  %6918 = call ptr @strerror(i32 noundef %6917) #9
  %6919 = call ptr @__errno_location() #10
  %6920 = load i32, ptr %6919, align 4, !tbaa !5
  %6921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6908, ptr noundef @.str.5, i32 noundef %6909, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6912, ptr noundef %6915, ptr noundef %6918, i32 noundef %6920) #9
  br label %6922

6922:                                             ; preds = %6905, %6888
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #9
  br label %6923

6923:                                             ; preds = %6922
  br label %6924

6924:                                             ; preds = %6923
  call void @exit(i32 noundef 1) #11
  unreachable

6925:                                             ; No predecessors!
  br label %6926

6926:                                             ; preds = %6925
  br label %6927

6927:                                             ; preds = %6926, %6867
  br label %6928

6928:                                             ; preds = %6927
  br label %6929

6929:                                             ; preds = %6928
  br label %6930

6930:                                             ; preds = %6929
  %6931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6931, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6932 = call ptr @__errno_location() #10
  store i32 0, ptr %6932, align 4, !tbaa !5
  br label %6933

6933:                                             ; preds = %6930
  br label %6934

6934:                                             ; preds = %6933
  br label %6935

6935:                                             ; preds = %6934
  br label %6936

6936:                                             ; preds = %6935
  br label %6937

6937:                                             ; preds = %6936
  br label %6938

6938:                                             ; preds = %6937
  %6939 = load i32, ptr @test_count, align 4, !tbaa !5
  %6940 = add nsw i32 %6939, 1
  store i32 %6940, ptr @test_count, align 4, !tbaa !5
  %6941 = load ptr, ptr %135, align 8, !tbaa !9
  %6942 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %6941, ptr noundef %138)
  %6943 = icmp eq i32 %6942, -1
  br i1 %6943, label %6997, label %6944

6944:                                             ; preds = %6938
  br label %6945

6945:                                             ; preds = %6944
  br label %6946

6946:                                             ; preds = %6945
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #9
  %6947 = call ptr @__errno_location() #10
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  store i32 %6948, ptr %147, align 4, !tbaa !5
  %6949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6950 = call i32 @s2n_print_stacktrace(ptr noundef %6949)
  %6951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6952 = trunc i8 %6951 to i1
  br i1 %6952, label %6953, label %6975

6953:                                             ; preds = %6946
  %6954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6955 = call i32 @fileno(ptr noundef %6954) #9
  %6956 = call i32 @isatty(i32 noundef %6955) #9
  %6957 = icmp ne i32 %6956, 0
  br i1 %6957, label %6958, label %6975

6958:                                             ; preds = %6953
  %6959 = load i32, ptr %147, align 4, !tbaa !5
  %6960 = call ptr @__errno_location() #10
  store i32 %6959, ptr %6960, align 4, !tbaa !5
  %6961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6962 = load i32, ptr @test_count, align 4, !tbaa !5
  %6963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6964 = load i32, ptr %6963, align 4, !tbaa !5
  %6965 = call ptr @s2n_strerror(i32 noundef %6964, ptr noundef @.str.4)
  %6966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6967 = load i32, ptr %6966, align 4, !tbaa !5
  %6968 = call ptr @s2n_strerror_debug(i32 noundef %6967, ptr noundef @.str.4)
  %6969 = call ptr @__errno_location() #10
  %6970 = load i32, ptr %6969, align 4, !tbaa !5
  %6971 = call ptr @strerror(i32 noundef %6970) #9
  %6972 = call ptr @__errno_location() #10
  %6973 = load i32, ptr %6972, align 4, !tbaa !5
  %6974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6961, ptr noundef @.str.2, i32 noundef %6962, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 242, ptr noundef %6965, ptr noundef %6968, ptr noundef %6971, i32 noundef %6973) #9
  br label %6992

6975:                                             ; preds = %6953, %6946
  %6976 = load i32, ptr %147, align 4, !tbaa !5
  %6977 = call ptr @__errno_location() #10
  store i32 %6976, ptr %6977, align 4, !tbaa !5
  %6978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6979 = load i32, ptr @test_count, align 4, !tbaa !5
  %6980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6981 = load i32, ptr %6980, align 4, !tbaa !5
  %6982 = call ptr @s2n_strerror(i32 noundef %6981, ptr noundef @.str.4)
  %6983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6984 = load i32, ptr %6983, align 4, !tbaa !5
  %6985 = call ptr @s2n_strerror_debug(i32 noundef %6984, ptr noundef @.str.4)
  %6986 = call ptr @__errno_location() #10
  %6987 = load i32, ptr %6986, align 4, !tbaa !5
  %6988 = call ptr @strerror(i32 noundef %6987) #9
  %6989 = call ptr @__errno_location() #10
  %6990 = load i32, ptr %6989, align 4, !tbaa !5
  %6991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6978, ptr noundef @.str.5, i32 noundef %6979, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 242, ptr noundef %6982, ptr noundef %6985, ptr noundef %6988, i32 noundef %6990) #9
  br label %6992

6992:                                             ; preds = %6975, %6958
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #9
  br label %6993

6993:                                             ; preds = %6992
  br label %6994

6994:                                             ; preds = %6993
  call void @exit(i32 noundef 1) #11
  unreachable

6995:                                             ; No predecessors!
  br label %6996

6996:                                             ; preds = %6995
  br label %6997

6997:                                             ; preds = %6996, %6938
  br label %6998

6998:                                             ; preds = %6997
  br label %6999

6999:                                             ; preds = %6998
  br label %7000

7000:                                             ; preds = %6999
  %7001 = load i32, ptr @test_count, align 4, !tbaa !5
  %7002 = add nsw i32 %7001, 1
  store i32 %7002, 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 = icmp eq i32 %7004, 0
  br i1 %7005, label %7006, label %7059

7006:                                             ; preds = %7000
  br label %7007

7007:                                             ; preds = %7006
  br label %7008

7008:                                             ; preds = %7007
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #9
  %7009 = call ptr @__errno_location() #10
  %7010 = load i32, ptr %7009, align 4, !tbaa !5
  store i32 %7010, ptr %148, align 4, !tbaa !5
  %7011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7012 = call i32 @s2n_print_stacktrace(ptr noundef %7011)
  %7013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7014 = trunc i8 %7013 to i1
  br i1 %7014, label %7015, label %7037

7015:                                             ; preds = %7008
  %7016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7017 = call i32 @fileno(ptr noundef %7016) #9
  %7018 = call i32 @isatty(i32 noundef %7017) #9
  %7019 = icmp ne i32 %7018, 0
  br i1 %7019, label %7020, label %7037

7020:                                             ; preds = %7015
  %7021 = load i32, ptr %148, align 4, !tbaa !5
  %7022 = call ptr @__errno_location() #10
  store i32 %7021, ptr %7022, align 4, !tbaa !5
  %7023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7024 = load i32, ptr @test_count, align 4, !tbaa !5
  %7025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7026 = load i32, ptr %7025, align 4, !tbaa !5
  %7027 = call ptr @s2n_strerror(i32 noundef %7026, ptr noundef @.str.4)
  %7028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7029 = load i32, ptr %7028, align 4, !tbaa !5
  %7030 = call ptr @s2n_strerror_debug(i32 noundef %7029, ptr noundef @.str.4)
  %7031 = call ptr @__errno_location() #10
  %7032 = load i32, ptr %7031, align 4, !tbaa !5
  %7033 = call ptr @strerror(i32 noundef %7032) #9
  %7034 = call ptr @__errno_location() #10
  %7035 = load i32, ptr %7034, align 4, !tbaa !5
  %7036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7023, ptr noundef @.str.2, i32 noundef %7024, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 242, ptr noundef %7027, ptr noundef %7030, ptr noundef %7033, i32 noundef %7035) #9
  br label %7054

7037:                                             ; preds = %7015, %7008
  %7038 = load i32, ptr %148, align 4, !tbaa !5
  %7039 = call ptr @__errno_location() #10
  store i32 %7038, ptr %7039, align 4, !tbaa !5
  %7040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7041 = load i32, ptr @test_count, align 4, !tbaa !5
  %7042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7043 = load i32, ptr %7042, align 4, !tbaa !5
  %7044 = call ptr @s2n_strerror(i32 noundef %7043, ptr noundef @.str.4)
  %7045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  %7047 = call ptr @s2n_strerror_debug(i32 noundef %7046, ptr noundef @.str.4)
  %7048 = call ptr @__errno_location() #10
  %7049 = load i32, ptr %7048, align 4, !tbaa !5
  %7050 = call ptr @strerror(i32 noundef %7049) #9
  %7051 = call ptr @__errno_location() #10
  %7052 = load i32, ptr %7051, align 4, !tbaa !5
  %7053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7040, ptr noundef @.str.5, i32 noundef %7041, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 242, ptr noundef %7044, ptr noundef %7047, ptr noundef %7050, i32 noundef %7052) #9
  br label %7054

7054:                                             ; preds = %7037, %7020
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #9
  br label %7055

7055:                                             ; preds = %7054
  br label %7056

7056:                                             ; preds = %7055
  call void @exit(i32 noundef 1) #11
  unreachable

7057:                                             ; No predecessors!
  br label %7058

7058:                                             ; preds = %7057
  br label %7059

7059:                                             ; preds = %7058, %7000
  br label %7060

7060:                                             ; preds = %7059
  br label %7061

7061:                                             ; preds = %7060
  br label %7062

7062:                                             ; preds = %7061
  %7063 = load i32, ptr @test_count, align 4, !tbaa !5
  %7064 = add nsw i32 %7063, 1
  store i32 %7064, ptr @test_count, align 4, !tbaa !5
  %7065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call ptr @s2n_strerror_debug(i32 noundef %7066, ptr noundef @.str.4)
  %7068 = icmp eq ptr %7067, null
  br i1 %7068, label %7069, label %7122

7069:                                             ; preds = %7062
  br label %7070

7070:                                             ; preds = %7069
  br label %7071

7071:                                             ; preds = %7070
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #9
  %7072 = call ptr @__errno_location() #10
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  store i32 %7073, ptr %149, align 4, !tbaa !5
  %7074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7075 = call i32 @s2n_print_stacktrace(ptr noundef %7074)
  %7076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7077 = trunc i8 %7076 to i1
  br i1 %7077, label %7078, label %7100

7078:                                             ; preds = %7071
  %7079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7080 = call i32 @fileno(ptr noundef %7079) #9
  %7081 = call i32 @isatty(i32 noundef %7080) #9
  %7082 = icmp ne i32 %7081, 0
  br i1 %7082, label %7083, label %7100

7083:                                             ; preds = %7078
  %7084 = load i32, ptr %149, align 4, !tbaa !5
  %7085 = call ptr @__errno_location() #10
  store i32 %7084, ptr %7085, align 4, !tbaa !5
  %7086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7087 = load i32, ptr @test_count, align 4, !tbaa !5
  %7088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7089 = load i32, ptr %7088, align 4, !tbaa !5
  %7090 = call ptr @s2n_strerror(i32 noundef %7089, ptr noundef @.str.4)
  %7091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7092 = load i32, ptr %7091, align 4, !tbaa !5
  %7093 = call ptr @s2n_strerror_debug(i32 noundef %7092, ptr noundef @.str.4)
  %7094 = call ptr @__errno_location() #10
  %7095 = load i32, ptr %7094, align 4, !tbaa !5
  %7096 = call ptr @strerror(i32 noundef %7095) #9
  %7097 = call ptr @__errno_location() #10
  %7098 = load i32, ptr %7097, align 4, !tbaa !5
  %7099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7086, ptr noundef @.str.2, i32 noundef %7087, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 242, ptr noundef %7090, ptr noundef %7093, ptr noundef %7096, i32 noundef %7098) #9
  br label %7117

7100:                                             ; preds = %7078, %7071
  %7101 = load i32, ptr %149, align 4, !tbaa !5
  %7102 = call ptr @__errno_location() #10
  store i32 %7101, ptr %7102, align 4, !tbaa !5
  %7103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7104 = load i32, ptr @test_count, align 4, !tbaa !5
  %7105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7106 = load i32, ptr %7105, align 4, !tbaa !5
  %7107 = call ptr @s2n_strerror(i32 noundef %7106, ptr noundef @.str.4)
  %7108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7109 = load i32, ptr %7108, align 4, !tbaa !5
  %7110 = call ptr @s2n_strerror_debug(i32 noundef %7109, ptr noundef @.str.4)
  %7111 = call ptr @__errno_location() #10
  %7112 = load i32, ptr %7111, align 4, !tbaa !5
  %7113 = call ptr @strerror(i32 noundef %7112) #9
  %7114 = call ptr @__errno_location() #10
  %7115 = load i32, ptr %7114, align 4, !tbaa !5
  %7116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7103, ptr noundef @.str.5, i32 noundef %7104, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 242, ptr noundef %7107, ptr noundef %7110, ptr noundef %7113, i32 noundef %7115) #9
  br label %7117

7117:                                             ; preds = %7100, %7083
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %7118

7118:                                             ; preds = %7117
  br label %7119

7119:                                             ; preds = %7118
  call void @exit(i32 noundef 1) #11
  unreachable

7120:                                             ; No predecessors!
  br label %7121

7121:                                             ; preds = %7120
  br label %7122

7122:                                             ; preds = %7121, %7062
  br label %7123

7123:                                             ; preds = %7122
  br label %7124

7124:                                             ; preds = %7123
  br label %7125

7125:                                             ; preds = %7124
  %7126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7126, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7127 = call ptr @__errno_location() #10
  store i32 0, ptr %7127, align 4, !tbaa !5
  br label %7128

7128:                                             ; preds = %7125
  br label %7129

7129:                                             ; preds = %7128
  br label %7130

7130:                                             ; preds = %7129
  br label %7131

7131:                                             ; preds = %7130
  br label %7132

7132:                                             ; preds = %7131
  br label %7133

7133:                                             ; preds = %7132
  %7134 = load i32, ptr @test_count, align 4, !tbaa !5
  %7135 = add nsw i32 %7134, 1
  store i32 %7135, ptr @test_count, align 4, !tbaa !5
  %7136 = load ptr, ptr %135, align 8, !tbaa !9
  %7137 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %7136, ptr noundef %139)
  %7138 = icmp eq i32 %7137, -1
  br i1 %7138, label %7192, label %7139

7139:                                             ; preds = %7133
  br label %7140

7140:                                             ; preds = %7139
  br label %7141

7141:                                             ; preds = %7140
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #9
  %7142 = call ptr @__errno_location() #10
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  store i32 %7143, ptr %150, align 4, !tbaa !5
  %7144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7145 = call i32 @s2n_print_stacktrace(ptr noundef %7144)
  %7146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7147 = trunc i8 %7146 to i1
  br i1 %7147, label %7148, label %7170

7148:                                             ; preds = %7141
  %7149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7150 = call i32 @fileno(ptr noundef %7149) #9
  %7151 = call i32 @isatty(i32 noundef %7150) #9
  %7152 = icmp ne i32 %7151, 0
  br i1 %7152, label %7153, label %7170

7153:                                             ; preds = %7148
  %7154 = load i32, ptr %150, align 4, !tbaa !5
  %7155 = call ptr @__errno_location() #10
  store i32 %7154, ptr %7155, align 4, !tbaa !5
  %7156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7157 = load i32, ptr @test_count, align 4, !tbaa !5
  %7158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7159 = load i32, ptr %7158, align 4, !tbaa !5
  %7160 = call ptr @s2n_strerror(i32 noundef %7159, ptr noundef @.str.4)
  %7161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7162 = load i32, ptr %7161, align 4, !tbaa !5
  %7163 = call ptr @s2n_strerror_debug(i32 noundef %7162, ptr noundef @.str.4)
  %7164 = call ptr @__errno_location() #10
  %7165 = load i32, ptr %7164, align 4, !tbaa !5
  %7166 = call ptr @strerror(i32 noundef %7165) #9
  %7167 = call ptr @__errno_location() #10
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7156, ptr noundef @.str.2, i32 noundef %7157, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 243, ptr noundef %7160, ptr noundef %7163, ptr noundef %7166, i32 noundef %7168) #9
  br label %7187

7170:                                             ; preds = %7148, %7141
  %7171 = load i32, ptr %150, align 4, !tbaa !5
  %7172 = call ptr @__errno_location() #10
  store i32 %7171, ptr %7172, align 4, !tbaa !5
  %7173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7174 = load i32, ptr @test_count, align 4, !tbaa !5
  %7175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7176 = load i32, ptr %7175, align 4, !tbaa !5
  %7177 = call ptr @s2n_strerror(i32 noundef %7176, ptr noundef @.str.4)
  %7178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7179 = load i32, ptr %7178, align 4, !tbaa !5
  %7180 = call ptr @s2n_strerror_debug(i32 noundef %7179, ptr noundef @.str.4)
  %7181 = call ptr @__errno_location() #10
  %7182 = load i32, ptr %7181, align 4, !tbaa !5
  %7183 = call ptr @strerror(i32 noundef %7182) #9
  %7184 = call ptr @__errno_location() #10
  %7185 = load i32, ptr %7184, align 4, !tbaa !5
  %7186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7173, ptr noundef @.str.5, i32 noundef %7174, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 243, ptr noundef %7177, ptr noundef %7180, ptr noundef %7183, i32 noundef %7185) #9
  br label %7187

7187:                                             ; preds = %7170, %7153
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #9
  br label %7188

7188:                                             ; preds = %7187
  br label %7189

7189:                                             ; preds = %7188
  call void @exit(i32 noundef 1) #11
  unreachable

7190:                                             ; No predecessors!
  br label %7191

7191:                                             ; preds = %7190
  br label %7192

7192:                                             ; preds = %7191, %7133
  br label %7193

7193:                                             ; preds = %7192
  br label %7194

7194:                                             ; preds = %7193
  br label %7195

7195:                                             ; preds = %7194
  %7196 = load i32, ptr @test_count, align 4, !tbaa !5
  %7197 = add nsw i32 %7196, 1
  store i32 %7197, ptr @test_count, align 4, !tbaa !5
  %7198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  %7200 = icmp eq i32 %7199, 0
  br i1 %7200, label %7201, label %7254

7201:                                             ; preds = %7195
  br label %7202

7202:                                             ; preds = %7201
  br label %7203

7203:                                             ; preds = %7202
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #9
  %7204 = call ptr @__errno_location() #10
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  store i32 %7205, ptr %151, align 4, !tbaa !5
  %7206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7207 = call i32 @s2n_print_stacktrace(ptr noundef %7206)
  %7208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7209 = trunc i8 %7208 to i1
  br i1 %7209, label %7210, label %7232

7210:                                             ; preds = %7203
  %7211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7212 = call i32 @fileno(ptr noundef %7211) #9
  %7213 = call i32 @isatty(i32 noundef %7212) #9
  %7214 = icmp ne i32 %7213, 0
  br i1 %7214, label %7215, label %7232

7215:                                             ; preds = %7210
  %7216 = load i32, ptr %151, align 4, !tbaa !5
  %7217 = call ptr @__errno_location() #10
  store i32 %7216, ptr %7217, align 4, !tbaa !5
  %7218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7219 = load i32, ptr @test_count, align 4, !tbaa !5
  %7220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7221 = load i32, ptr %7220, align 4, !tbaa !5
  %7222 = call ptr @s2n_strerror(i32 noundef %7221, ptr noundef @.str.4)
  %7223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7224 = load i32, ptr %7223, align 4, !tbaa !5
  %7225 = call ptr @s2n_strerror_debug(i32 noundef %7224, ptr noundef @.str.4)
  %7226 = call ptr @__errno_location() #10
  %7227 = load i32, ptr %7226, align 4, !tbaa !5
  %7228 = call ptr @strerror(i32 noundef %7227) #9
  %7229 = call ptr @__errno_location() #10
  %7230 = load i32, ptr %7229, align 4, !tbaa !5
  %7231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7218, ptr noundef @.str.2, i32 noundef %7219, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 243, ptr noundef %7222, ptr noundef %7225, ptr noundef %7228, i32 noundef %7230) #9
  br label %7249

7232:                                             ; preds = %7210, %7203
  %7233 = load i32, ptr %151, align 4, !tbaa !5
  %7234 = call ptr @__errno_location() #10
  store i32 %7233, ptr %7234, align 4, !tbaa !5
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = load i32, ptr @test_count, align 4, !tbaa !5
  %7237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7238 = load i32, ptr %7237, align 4, !tbaa !5
  %7239 = call ptr @s2n_strerror(i32 noundef %7238, ptr noundef @.str.4)
  %7240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7241 = load i32, ptr %7240, align 4, !tbaa !5
  %7242 = call ptr @s2n_strerror_debug(i32 noundef %7241, ptr noundef @.str.4)
  %7243 = call ptr @__errno_location() #10
  %7244 = load i32, ptr %7243, align 4, !tbaa !5
  %7245 = call ptr @strerror(i32 noundef %7244) #9
  %7246 = call ptr @__errno_location() #10
  %7247 = load i32, ptr %7246, align 4, !tbaa !5
  %7248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7235, ptr noundef @.str.5, i32 noundef %7236, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 243, ptr noundef %7239, ptr noundef %7242, ptr noundef %7245, i32 noundef %7247) #9
  br label %7249

7249:                                             ; preds = %7232, %7215
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #9
  br label %7250

7250:                                             ; preds = %7249
  br label %7251

7251:                                             ; preds = %7250
  call void @exit(i32 noundef 1) #11
  unreachable

7252:                                             ; No predecessors!
  br label %7253

7253:                                             ; preds = %7252
  br label %7254

7254:                                             ; preds = %7253, %7195
  br label %7255

7255:                                             ; preds = %7254
  br label %7256

7256:                                             ; preds = %7255
  br label %7257

7257:                                             ; preds = %7256
  %7258 = load i32, ptr @test_count, align 4, !tbaa !5
  %7259 = add nsw i32 %7258, 1
  store i32 %7259, ptr @test_count, align 4, !tbaa !5
  %7260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7261 = load i32, ptr %7260, align 4, !tbaa !5
  %7262 = call ptr @s2n_strerror_debug(i32 noundef %7261, ptr noundef @.str.4)
  %7263 = icmp eq ptr %7262, null
  br i1 %7263, label %7264, label %7317

7264:                                             ; preds = %7257
  br label %7265

7265:                                             ; preds = %7264
  br label %7266

7266:                                             ; preds = %7265
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #9
  %7267 = call ptr @__errno_location() #10
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  store i32 %7268, ptr %152, align 4, !tbaa !5
  %7269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7270 = call i32 @s2n_print_stacktrace(ptr noundef %7269)
  %7271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7272 = trunc i8 %7271 to i1
  br i1 %7272, label %7273, label %7295

7273:                                             ; preds = %7266
  %7274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7275 = call i32 @fileno(ptr noundef %7274) #9
  %7276 = call i32 @isatty(i32 noundef %7275) #9
  %7277 = icmp ne i32 %7276, 0
  br i1 %7277, label %7278, label %7295

7278:                                             ; preds = %7273
  %7279 = load i32, ptr %152, align 4, !tbaa !5
  %7280 = call ptr @__errno_location() #10
  store i32 %7279, ptr %7280, align 4, !tbaa !5
  %7281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7282 = load i32, ptr @test_count, align 4, !tbaa !5
  %7283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7284 = load i32, ptr %7283, align 4, !tbaa !5
  %7285 = call ptr @s2n_strerror(i32 noundef %7284, ptr noundef @.str.4)
  %7286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7287 = load i32, ptr %7286, align 4, !tbaa !5
  %7288 = call ptr @s2n_strerror_debug(i32 noundef %7287, ptr noundef @.str.4)
  %7289 = call ptr @__errno_location() #10
  %7290 = load i32, ptr %7289, align 4, !tbaa !5
  %7291 = call ptr @strerror(i32 noundef %7290) #9
  %7292 = call ptr @__errno_location() #10
  %7293 = load i32, ptr %7292, align 4, !tbaa !5
  %7294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7281, ptr noundef @.str.2, i32 noundef %7282, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 243, ptr noundef %7285, ptr noundef %7288, ptr noundef %7291, i32 noundef %7293) #9
  br label %7312

7295:                                             ; preds = %7273, %7266
  %7296 = load i32, ptr %152, align 4, !tbaa !5
  %7297 = call ptr @__errno_location() #10
  store i32 %7296, ptr %7297, align 4, !tbaa !5
  %7298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7299 = load i32, ptr @test_count, align 4, !tbaa !5
  %7300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7301 = load i32, ptr %7300, align 4, !tbaa !5
  %7302 = call ptr @s2n_strerror(i32 noundef %7301, ptr noundef @.str.4)
  %7303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7304 = load i32, ptr %7303, align 4, !tbaa !5
  %7305 = call ptr @s2n_strerror_debug(i32 noundef %7304, ptr noundef @.str.4)
  %7306 = call ptr @__errno_location() #10
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @strerror(i32 noundef %7307) #9
  %7309 = call ptr @__errno_location() #10
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7298, ptr noundef @.str.5, i32 noundef %7299, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 243, ptr noundef %7302, ptr noundef %7305, ptr noundef %7308, i32 noundef %7310) #9
  br label %7312

7312:                                             ; preds = %7295, %7278
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #9
  br label %7313

7313:                                             ; preds = %7312
  br label %7314

7314:                                             ; preds = %7313
  call void @exit(i32 noundef 1) #11
  unreachable

7315:                                             ; No predecessors!
  br label %7316

7316:                                             ; preds = %7315
  br label %7317

7317:                                             ; preds = %7316, %7257
  br label %7318

7318:                                             ; preds = %7317
  br label %7319

7319:                                             ; preds = %7318
  br label %7320

7320:                                             ; preds = %7319
  %7321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7321, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7322 = call ptr @__errno_location() #10
  store i32 0, ptr %7322, align 4, !tbaa !5
  br label %7323

7323:                                             ; preds = %7320
  br label %7324

7324:                                             ; preds = %7323
  br label %7325

7325:                                             ; preds = %7324
  br label %7326

7326:                                             ; preds = %7325
  br label %7327

7327:                                             ; preds = %7326
  br label %7328

7328:                                             ; preds = %7327
  %7329 = load i32, ptr @test_count, align 4, !tbaa !5
  %7330 = add nsw i32 %7329, 1
  store i32 %7330, ptr @test_count, align 4, !tbaa !5
  %7331 = load ptr, ptr %135, align 8, !tbaa !9
  %7332 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %7331, ptr noundef %140)
  %7333 = icmp eq i32 %7332, -1
  br i1 %7333, label %7387, label %7334

7334:                                             ; preds = %7328
  br label %7335

7335:                                             ; preds = %7334
  br label %7336

7336:                                             ; preds = %7335
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #9
  %7337 = call ptr @__errno_location() #10
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  store i32 %7338, ptr %153, align 4, !tbaa !5
  %7339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7340 = call i32 @s2n_print_stacktrace(ptr noundef %7339)
  %7341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7342 = trunc i8 %7341 to i1
  br i1 %7342, label %7343, label %7365

7343:                                             ; preds = %7336
  %7344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7345 = call i32 @fileno(ptr noundef %7344) #9
  %7346 = call i32 @isatty(i32 noundef %7345) #9
  %7347 = icmp ne i32 %7346, 0
  br i1 %7347, label %7348, label %7365

7348:                                             ; preds = %7343
  %7349 = load i32, ptr %153, align 4, !tbaa !5
  %7350 = call ptr @__errno_location() #10
  store i32 %7349, ptr %7350, align 4, !tbaa !5
  %7351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7352 = load i32, ptr @test_count, align 4, !tbaa !5
  %7353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7354 = load i32, ptr %7353, align 4, !tbaa !5
  %7355 = call ptr @s2n_strerror(i32 noundef %7354, ptr noundef @.str.4)
  %7356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  %7358 = call ptr @s2n_strerror_debug(i32 noundef %7357, ptr noundef @.str.4)
  %7359 = call ptr @__errno_location() #10
  %7360 = load i32, ptr %7359, align 4, !tbaa !5
  %7361 = call ptr @strerror(i32 noundef %7360) #9
  %7362 = call ptr @__errno_location() #10
  %7363 = load i32, ptr %7362, align 4, !tbaa !5
  %7364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7351, ptr noundef @.str.2, i32 noundef %7352, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 244, ptr noundef %7355, ptr noundef %7358, ptr noundef %7361, i32 noundef %7363) #9
  br label %7382

7365:                                             ; preds = %7343, %7336
  %7366 = load i32, ptr %153, align 4, !tbaa !5
  %7367 = call ptr @__errno_location() #10
  store i32 %7366, ptr %7367, align 4, !tbaa !5
  %7368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7369 = load i32, ptr @test_count, align 4, !tbaa !5
  %7370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7371 = load i32, ptr %7370, align 4, !tbaa !5
  %7372 = call ptr @s2n_strerror(i32 noundef %7371, ptr noundef @.str.4)
  %7373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7374 = load i32, ptr %7373, align 4, !tbaa !5
  %7375 = call ptr @s2n_strerror_debug(i32 noundef %7374, ptr noundef @.str.4)
  %7376 = call ptr @__errno_location() #10
  %7377 = load i32, ptr %7376, align 4, !tbaa !5
  %7378 = call ptr @strerror(i32 noundef %7377) #9
  %7379 = call ptr @__errno_location() #10
  %7380 = load i32, ptr %7379, align 4, !tbaa !5
  %7381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7368, ptr noundef @.str.5, i32 noundef %7369, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 244, ptr noundef %7372, ptr noundef %7375, ptr noundef %7378, i32 noundef %7380) #9
  br label %7382

7382:                                             ; preds = %7365, %7348
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #9
  br label %7383

7383:                                             ; preds = %7382
  br label %7384

7384:                                             ; preds = %7383
  call void @exit(i32 noundef 1) #11
  unreachable

7385:                                             ; No predecessors!
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386, %7328
  br label %7388

7388:                                             ; preds = %7387
  br label %7389

7389:                                             ; preds = %7388
  br label %7390

7390:                                             ; preds = %7389
  %7391 = load i32, ptr @test_count, align 4, !tbaa !5
  %7392 = add nsw i32 %7391, 1
  store i32 %7392, ptr @test_count, align 4, !tbaa !5
  %7393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7394 = load i32, ptr %7393, align 4, !tbaa !5
  %7395 = icmp eq i32 %7394, 0
  br i1 %7395, label %7396, label %7449

7396:                                             ; preds = %7390
  br label %7397

7397:                                             ; preds = %7396
  br label %7398

7398:                                             ; preds = %7397
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #9
  %7399 = call ptr @__errno_location() #10
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  store i32 %7400, ptr %154, align 4, !tbaa !5
  %7401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7402 = call i32 @s2n_print_stacktrace(ptr noundef %7401)
  %7403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7404 = trunc i8 %7403 to i1
  br i1 %7404, label %7405, label %7427

7405:                                             ; preds = %7398
  %7406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7407 = call i32 @fileno(ptr noundef %7406) #9
  %7408 = call i32 @isatty(i32 noundef %7407) #9
  %7409 = icmp ne i32 %7408, 0
  br i1 %7409, label %7410, label %7427

7410:                                             ; preds = %7405
  %7411 = load i32, ptr %154, align 4, !tbaa !5
  %7412 = call ptr @__errno_location() #10
  store i32 %7411, ptr %7412, align 4, !tbaa !5
  %7413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7414 = load i32, ptr @test_count, align 4, !tbaa !5
  %7415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7416 = load i32, ptr %7415, align 4, !tbaa !5
  %7417 = call ptr @s2n_strerror(i32 noundef %7416, ptr noundef @.str.4)
  %7418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7419 = load i32, ptr %7418, align 4, !tbaa !5
  %7420 = call ptr @s2n_strerror_debug(i32 noundef %7419, ptr noundef @.str.4)
  %7421 = call ptr @__errno_location() #10
  %7422 = load i32, ptr %7421, align 4, !tbaa !5
  %7423 = call ptr @strerror(i32 noundef %7422) #9
  %7424 = call ptr @__errno_location() #10
  %7425 = load i32, ptr %7424, align 4, !tbaa !5
  %7426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7413, ptr noundef @.str.2, i32 noundef %7414, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 244, ptr noundef %7417, ptr noundef %7420, ptr noundef %7423, i32 noundef %7425) #9
  br label %7444

7427:                                             ; preds = %7405, %7398
  %7428 = load i32, ptr %154, align 4, !tbaa !5
  %7429 = call ptr @__errno_location() #10
  store i32 %7428, ptr %7429, align 4, !tbaa !5
  %7430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7431 = load i32, ptr @test_count, align 4, !tbaa !5
  %7432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7433 = load i32, ptr %7432, align 4, !tbaa !5
  %7434 = call ptr @s2n_strerror(i32 noundef %7433, ptr noundef @.str.4)
  %7435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7436 = load i32, ptr %7435, align 4, !tbaa !5
  %7437 = call ptr @s2n_strerror_debug(i32 noundef %7436, ptr noundef @.str.4)
  %7438 = call ptr @__errno_location() #10
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call ptr @strerror(i32 noundef %7439) #9
  %7441 = call ptr @__errno_location() #10
  %7442 = load i32, ptr %7441, align 4, !tbaa !5
  %7443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7430, ptr noundef @.str.5, i32 noundef %7431, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 244, ptr noundef %7434, ptr noundef %7437, ptr noundef %7440, i32 noundef %7442) #9
  br label %7444

7444:                                             ; preds = %7427, %7410
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #9
  br label %7445

7445:                                             ; preds = %7444
  br label %7446

7446:                                             ; preds = %7445
  call void @exit(i32 noundef 1) #11
  unreachable

7447:                                             ; No predecessors!
  br label %7448

7448:                                             ; preds = %7447
  br label %7449

7449:                                             ; preds = %7448, %7390
  br label %7450

7450:                                             ; preds = %7449
  br label %7451

7451:                                             ; preds = %7450
  br label %7452

7452:                                             ; preds = %7451
  %7453 = load i32, ptr @test_count, align 4, !tbaa !5
  %7454 = add nsw i32 %7453, 1
  store i32 %7454, ptr @test_count, align 4, !tbaa !5
  %7455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7456 = load i32, ptr %7455, align 4, !tbaa !5
  %7457 = call ptr @s2n_strerror_debug(i32 noundef %7456, ptr noundef @.str.4)
  %7458 = icmp eq ptr %7457, null
  br i1 %7458, label %7459, label %7512

7459:                                             ; preds = %7452
  br label %7460

7460:                                             ; preds = %7459
  br label %7461

7461:                                             ; preds = %7460
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #9
  %7462 = call ptr @__errno_location() #10
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  store i32 %7463, ptr %155, align 4, !tbaa !5
  %7464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7465 = call i32 @s2n_print_stacktrace(ptr noundef %7464)
  %7466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7467 = trunc i8 %7466 to i1
  br i1 %7467, label %7468, label %7490

7468:                                             ; preds = %7461
  %7469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7470 = call i32 @fileno(ptr noundef %7469) #9
  %7471 = call i32 @isatty(i32 noundef %7470) #9
  %7472 = icmp ne i32 %7471, 0
  br i1 %7472, label %7473, label %7490

7473:                                             ; preds = %7468
  %7474 = load i32, ptr %155, align 4, !tbaa !5
  %7475 = call ptr @__errno_location() #10
  store i32 %7474, ptr %7475, align 4, !tbaa !5
  %7476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7477 = load i32, ptr @test_count, align 4, !tbaa !5
  %7478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7479 = load i32, ptr %7478, align 4, !tbaa !5
  %7480 = call ptr @s2n_strerror(i32 noundef %7479, ptr noundef @.str.4)
  %7481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7482 = load i32, ptr %7481, align 4, !tbaa !5
  %7483 = call ptr @s2n_strerror_debug(i32 noundef %7482, ptr noundef @.str.4)
  %7484 = call ptr @__errno_location() #10
  %7485 = load i32, ptr %7484, align 4, !tbaa !5
  %7486 = call ptr @strerror(i32 noundef %7485) #9
  %7487 = call ptr @__errno_location() #10
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  %7489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7476, ptr noundef @.str.2, i32 noundef %7477, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 244, ptr noundef %7480, ptr noundef %7483, ptr noundef %7486, i32 noundef %7488) #9
  br label %7507

7490:                                             ; preds = %7468, %7461
  %7491 = load i32, ptr %155, align 4, !tbaa !5
  %7492 = call ptr @__errno_location() #10
  store i32 %7491, ptr %7492, align 4, !tbaa !5
  %7493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7494 = load i32, ptr @test_count, align 4, !tbaa !5
  %7495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7496 = load i32, ptr %7495, align 4, !tbaa !5
  %7497 = call ptr @s2n_strerror(i32 noundef %7496, ptr noundef @.str.4)
  %7498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7499 = load i32, ptr %7498, align 4, !tbaa !5
  %7500 = call ptr @s2n_strerror_debug(i32 noundef %7499, ptr noundef @.str.4)
  %7501 = call ptr @__errno_location() #10
  %7502 = load i32, ptr %7501, align 4, !tbaa !5
  %7503 = call ptr @strerror(i32 noundef %7502) #9
  %7504 = call ptr @__errno_location() #10
  %7505 = load i32, ptr %7504, align 4, !tbaa !5
  %7506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7493, ptr noundef @.str.5, i32 noundef %7494, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 244, ptr noundef %7497, ptr noundef %7500, ptr noundef %7503, i32 noundef %7505) #9
  br label %7507

7507:                                             ; preds = %7490, %7473
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #9
  br label %7508

7508:                                             ; preds = %7507
  br label %7509

7509:                                             ; preds = %7508
  call void @exit(i32 noundef 1) #11
  unreachable

7510:                                             ; No predecessors!
  br label %7511

7511:                                             ; preds = %7510
  br label %7512

7512:                                             ; preds = %7511, %7452
  br label %7513

7513:                                             ; preds = %7512
  br label %7514

7514:                                             ; preds = %7513
  br label %7515

7515:                                             ; preds = %7514
  %7516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7516, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7517 = call ptr @__errno_location() #10
  store i32 0, ptr %7517, align 4, !tbaa !5
  br label %7518

7518:                                             ; preds = %7515
  br label %7519

7519:                                             ; preds = %7518
  br label %7520

7520:                                             ; preds = %7519
  br label %7521

7521:                                             ; preds = %7520
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #9
  %7522 = call ptr @s2n_config_new()
  store ptr %7522, ptr %156, align 8, !tbaa !9
  br label %7523

7523:                                             ; preds = %7521
  %7524 = load i32, ptr @test_count, align 4, !tbaa !5
  %7525 = add nsw i32 %7524, 1
  store i32 %7525, ptr @test_count, align 4, !tbaa !5
  %7526 = load ptr, ptr %156, align 8, !tbaa !9
  %7527 = icmp eq ptr %7526, null
  br i1 %7527, label %7528, label %7581

7528:                                             ; preds = %7523
  br label %7529

7529:                                             ; preds = %7528
  br label %7530

7530:                                             ; preds = %7529
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #9
  %7531 = call ptr @__errno_location() #10
  %7532 = load i32, ptr %7531, align 4, !tbaa !5
  store i32 %7532, ptr %157, align 4, !tbaa !5
  %7533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7534 = call i32 @s2n_print_stacktrace(ptr noundef %7533)
  %7535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7536 = trunc i8 %7535 to i1
  br i1 %7536, label %7537, label %7559

7537:                                             ; preds = %7530
  %7538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7539 = call i32 @fileno(ptr noundef %7538) #9
  %7540 = call i32 @isatty(i32 noundef %7539) #9
  %7541 = icmp ne i32 %7540, 0
  br i1 %7541, label %7542, label %7559

7542:                                             ; preds = %7537
  %7543 = load i32, ptr %157, align 4, !tbaa !5
  %7544 = call ptr @__errno_location() #10
  store i32 %7543, ptr %7544, align 4, !tbaa !5
  %7545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7546 = load i32, ptr @test_count, align 4, !tbaa !5
  %7547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7548 = load i32, ptr %7547, align 4, !tbaa !5
  %7549 = call ptr @s2n_strerror(i32 noundef %7548, ptr noundef @.str.4)
  %7550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7551 = load i32, ptr %7550, align 4, !tbaa !5
  %7552 = call ptr @s2n_strerror_debug(i32 noundef %7551, ptr noundef @.str.4)
  %7553 = call ptr @__errno_location() #10
  %7554 = load i32, ptr %7553, align 4, !tbaa !5
  %7555 = call ptr @strerror(i32 noundef %7554) #9
  %7556 = call ptr @__errno_location() #10
  %7557 = load i32, ptr %7556, align 4, !tbaa !5
  %7558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7545, ptr noundef @.str.2, i32 noundef %7546, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 248, ptr noundef %7549, ptr noundef %7552, ptr noundef %7555, i32 noundef %7557) #9
  br label %7576

7559:                                             ; preds = %7537, %7530
  %7560 = load i32, ptr %157, align 4, !tbaa !5
  %7561 = call ptr @__errno_location() #10
  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() #10
  %7571 = load i32, ptr %7570, align 4, !tbaa !5
  %7572 = call ptr @strerror(i32 noundef %7571) #9
  %7573 = call ptr @__errno_location() #10
  %7574 = load i32, ptr %7573, align 4, !tbaa !5
  %7575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7562, ptr noundef @.str.5, i32 noundef %7563, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 248, ptr noundef %7566, ptr noundef %7569, ptr noundef %7572, i32 noundef %7574) #9
  br label %7576

7576:                                             ; preds = %7559, %7542
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #9
  br label %7577

7577:                                             ; preds = %7576
  br label %7578

7578:                                             ; preds = %7577
  call void @exit(i32 noundef 1) #11
  unreachable

7579:                                             ; No predecessors!
  br label %7580

7580:                                             ; preds = %7579
  br label %7581

7581:                                             ; preds = %7580, %7523
  br label %7582

7582:                                             ; preds = %7581
  br label %7583

7583:                                             ; preds = %7582
  br label %7584

7584:                                             ; preds = %7583
  %7585 = load i32, ptr @test_count, align 4, !tbaa !5
  %7586 = add nsw i32 %7585, 1
  store i32 %7586, ptr @test_count, align 4, !tbaa !5
  %7587 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7587, ptr %135, align 8, !tbaa !9
  %7588 = icmp eq ptr %7587, null
  br i1 %7588, label %7589, label %7642

7589:                                             ; preds = %7584
  br label %7590

7590:                                             ; preds = %7589
  br label %7591

7591:                                             ; preds = %7590
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #9
  %7592 = call ptr @__errno_location() #10
  %7593 = load i32, ptr %7592, align 4, !tbaa !5
  store i32 %7593, ptr %158, align 4, !tbaa !5
  %7594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7595 = call i32 @s2n_print_stacktrace(ptr noundef %7594)
  %7596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7597 = trunc i8 %7596 to i1
  br i1 %7597, label %7598, label %7620

7598:                                             ; preds = %7591
  %7599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7600 = call i32 @fileno(ptr noundef %7599) #9
  %7601 = call i32 @isatty(i32 noundef %7600) #9
  %7602 = icmp ne i32 %7601, 0
  br i1 %7602, label %7603, label %7620

7603:                                             ; preds = %7598
  %7604 = load i32, ptr %158, align 4, !tbaa !5
  %7605 = call ptr @__errno_location() #10
  store i32 %7604, ptr %7605, align 4, !tbaa !5
  %7606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7607 = load i32, ptr @test_count, align 4, !tbaa !5
  %7608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7609 = load i32, ptr %7608, align 4, !tbaa !5
  %7610 = call ptr @s2n_strerror(i32 noundef %7609, ptr noundef @.str.4)
  %7611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7612 = load i32, ptr %7611, align 4, !tbaa !5
  %7613 = call ptr @s2n_strerror_debug(i32 noundef %7612, ptr noundef @.str.4)
  %7614 = call ptr @__errno_location() #10
  %7615 = load i32, ptr %7614, align 4, !tbaa !5
  %7616 = call ptr @strerror(i32 noundef %7615) #9
  %7617 = call ptr @__errno_location() #10
  %7618 = load i32, ptr %7617, align 4, !tbaa !5
  %7619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7606, ptr noundef @.str.2, i32 noundef %7607, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 250, ptr noundef %7610, ptr noundef %7613, ptr noundef %7616, i32 noundef %7618) #9
  br label %7637

7620:                                             ; preds = %7598, %7591
  %7621 = load i32, ptr %158, align 4, !tbaa !5
  %7622 = call ptr @__errno_location() #10
  store i32 %7621, ptr %7622, align 4, !tbaa !5
  %7623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7624 = load i32, ptr @test_count, align 4, !tbaa !5
  %7625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  %7627 = call ptr @s2n_strerror(i32 noundef %7626, ptr noundef @.str.4)
  %7628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call ptr @s2n_strerror_debug(i32 noundef %7629, ptr noundef @.str.4)
  %7631 = call ptr @__errno_location() #10
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @strerror(i32 noundef %7632) #9
  %7634 = call ptr @__errno_location() #10
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7623, ptr noundef @.str.5, i32 noundef %7624, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 250, ptr noundef %7627, ptr noundef %7630, ptr noundef %7633, i32 noundef %7635) #9
  br label %7637

7637:                                             ; preds = %7620, %7603
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #9
  br label %7638

7638:                                             ; preds = %7637
  br label %7639

7639:                                             ; preds = %7638
  call void @exit(i32 noundef 1) #11
  unreachable

7640:                                             ; No predecessors!
  br label %7641

7641:                                             ; preds = %7640
  br label %7642

7642:                                             ; preds = %7641, %7584
  br label %7643

7643:                                             ; preds = %7642
  br label %7644

7644:                                             ; preds = %7643
  br label %7645

7645:                                             ; preds = %7644
  %7646 = load i32, ptr @test_count, align 4, !tbaa !5
  %7647 = add nsw i32 %7646, 1
  store i32 %7647, ptr @test_count, align 4, !tbaa !5
  %7648 = load ptr, ptr %135, align 8, !tbaa !9
  %7649 = load ptr, ptr %156, align 8, !tbaa !9
  %7650 = call i32 @s2n_connection_set_config(ptr noundef %7648, ptr noundef %7649)
  %7651 = icmp eq i32 %7650, -1
  br i1 %7651, label %7652, label %7705

7652:                                             ; preds = %7645
  br label %7653

7653:                                             ; preds = %7652
  br label %7654

7654:                                             ; preds = %7653
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #9
  %7655 = call ptr @__errno_location() #10
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  store i32 %7656, ptr %159, align 4, !tbaa !5
  %7657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7658 = call i32 @s2n_print_stacktrace(ptr noundef %7657)
  %7659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7660 = trunc i8 %7659 to i1
  br i1 %7660, label %7661, label %7683

7661:                                             ; preds = %7654
  %7662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7663 = call i32 @fileno(ptr noundef %7662) #9
  %7664 = call i32 @isatty(i32 noundef %7663) #9
  %7665 = icmp ne i32 %7664, 0
  br i1 %7665, label %7666, label %7683

7666:                                             ; preds = %7661
  %7667 = load i32, ptr %159, align 4, !tbaa !5
  %7668 = call ptr @__errno_location() #10
  store i32 %7667, ptr %7668, align 4, !tbaa !5
  %7669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7670 = load i32, ptr @test_count, align 4, !tbaa !5
  %7671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7672 = load i32, ptr %7671, align 4, !tbaa !5
  %7673 = call ptr @s2n_strerror(i32 noundef %7672, ptr noundef @.str.4)
  %7674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7675 = load i32, ptr %7674, align 4, !tbaa !5
  %7676 = call ptr @s2n_strerror_debug(i32 noundef %7675, ptr noundef @.str.4)
  %7677 = call ptr @__errno_location() #10
  %7678 = load i32, ptr %7677, align 4, !tbaa !5
  %7679 = call ptr @strerror(i32 noundef %7678) #9
  %7680 = call ptr @__errno_location() #10
  %7681 = load i32, ptr %7680, align 4, !tbaa !5
  %7682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7669, ptr noundef @.str.2, i32 noundef %7670, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 251, ptr noundef %7673, ptr noundef %7676, ptr noundef %7679, i32 noundef %7681) #9
  br label %7700

7683:                                             ; preds = %7661, %7654
  %7684 = load i32, ptr %159, align 4, !tbaa !5
  %7685 = call ptr @__errno_location() #10
  store i32 %7684, ptr %7685, align 4, !tbaa !5
  %7686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7687 = load i32, ptr @test_count, align 4, !tbaa !5
  %7688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7689 = load i32, ptr %7688, align 4, !tbaa !5
  %7690 = call ptr @s2n_strerror(i32 noundef %7689, ptr noundef @.str.4)
  %7691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7692 = load i32, ptr %7691, align 4, !tbaa !5
  %7693 = call ptr @s2n_strerror_debug(i32 noundef %7692, ptr noundef @.str.4)
  %7694 = call ptr @__errno_location() #10
  %7695 = load i32, ptr %7694, align 4, !tbaa !5
  %7696 = call ptr @strerror(i32 noundef %7695) #9
  %7697 = call ptr @__errno_location() #10
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  %7699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7686, ptr noundef @.str.5, i32 noundef %7687, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 251, ptr noundef %7690, ptr noundef %7693, ptr noundef %7696, i32 noundef %7698) #9
  br label %7700

7700:                                             ; preds = %7683, %7666
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #9
  br label %7701

7701:                                             ; preds = %7700
  br label %7702

7702:                                             ; preds = %7701
  call void @exit(i32 noundef 1) #11
  unreachable

7703:                                             ; No predecessors!
  br label %7704

7704:                                             ; preds = %7703
  br label %7705

7705:                                             ; preds = %7704, %7645
  br label %7706

7706:                                             ; preds = %7705
  br label %7707

7707:                                             ; preds = %7706
  br label %7708

7708:                                             ; preds = %7707
  %7709 = load i32, ptr @test_count, align 4, !tbaa !5
  %7710 = add nsw i32 %7709, 1
  store i32 %7710, ptr @test_count, align 4, !tbaa !5
  %7711 = load ptr, ptr %135, align 8, !tbaa !9
  %7712 = getelementptr inbounds %struct.s2n_connection, ptr %7711, i32 0, i32 1
  %7713 = load ptr, ptr %7712, align 8, !tbaa !47
  %7714 = getelementptr inbounds %struct.s2n_config, ptr %7713, i32 0, i32 7
  %7715 = load ptr, ptr %7714, align 8, !tbaa !48
  %7716 = icmp eq ptr %7715, null
  br i1 %7716, label %7717, label %7770

7717:                                             ; preds = %7708
  br label %7718

7718:                                             ; preds = %7717
  br label %7719

7719:                                             ; preds = %7718
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #9
  %7720 = call ptr @__errno_location() #10
  %7721 = load i32, ptr %7720, align 4, !tbaa !5
  store i32 %7721, ptr %160, align 4, !tbaa !5
  %7722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7723 = call i32 @s2n_print_stacktrace(ptr noundef %7722)
  %7724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7725 = trunc i8 %7724 to i1
  br i1 %7725, label %7726, label %7748

7726:                                             ; preds = %7719
  %7727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7728 = call i32 @fileno(ptr noundef %7727) #9
  %7729 = call i32 @isatty(i32 noundef %7728) #9
  %7730 = icmp ne i32 %7729, 0
  br i1 %7730, label %7731, label %7748

7731:                                             ; preds = %7726
  %7732 = load i32, ptr %160, align 4, !tbaa !5
  %7733 = call ptr @__errno_location() #10
  store i32 %7732, ptr %7733, align 4, !tbaa !5
  %7734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7735 = load i32, ptr @test_count, align 4, !tbaa !5
  %7736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7737 = load i32, ptr %7736, align 4, !tbaa !5
  %7738 = call ptr @s2n_strerror(i32 noundef %7737, ptr noundef @.str.4)
  %7739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call ptr @s2n_strerror_debug(i32 noundef %7740, ptr noundef @.str.4)
  %7742 = call ptr @__errno_location() #10
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call ptr @strerror(i32 noundef %7743) #9
  %7745 = call ptr @__errno_location() #10
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  %7747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7734, ptr noundef @.str.2, i32 noundef %7735, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 252, ptr noundef %7738, ptr noundef %7741, ptr noundef %7744, i32 noundef %7746) #9
  br label %7765

7748:                                             ; preds = %7726, %7719
  %7749 = load i32, ptr %160, align 4, !tbaa !5
  %7750 = call ptr @__errno_location() #10
  store i32 %7749, ptr %7750, align 4, !tbaa !5
  %7751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7752 = load i32, ptr @test_count, align 4, !tbaa !5
  %7753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7754 = load i32, ptr %7753, align 4, !tbaa !5
  %7755 = call ptr @s2n_strerror(i32 noundef %7754, ptr noundef @.str.4)
  %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_debug(i32 noundef %7757, ptr noundef @.str.4)
  %7759 = call ptr @__errno_location() #10
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call ptr @strerror(i32 noundef %7760) #9
  %7762 = call ptr @__errno_location() #10
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7751, ptr noundef @.str.5, i32 noundef %7752, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 252, ptr noundef %7755, ptr noundef %7758, ptr noundef %7761, i32 noundef %7763) #9
  br label %7765

7765:                                             ; preds = %7748, %7731
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #9
  br label %7766

7766:                                             ; preds = %7765
  br label %7767

7767:                                             ; preds = %7766
  call void @exit(i32 noundef 1) #11
  unreachable

7768:                                             ; No predecessors!
  br label %7769

7769:                                             ; preds = %7768
  br label %7770

7770:                                             ; preds = %7769, %7708
  br label %7771

7771:                                             ; preds = %7770
  br label %7772

7772:                                             ; preds = %7771
  br label %7773

7773:                                             ; preds = %7772
  %7774 = load i32, ptr @test_count, align 4, !tbaa !5
  %7775 = add nsw i32 %7774, 1
  store i32 %7775, ptr @test_count, align 4, !tbaa !5
  %7776 = load ptr, ptr %135, align 8, !tbaa !9
  %7777 = getelementptr inbounds %struct.s2n_connection, ptr %7776, i32 0, i32 2
  %7778 = load ptr, ptr %7777, align 8, !tbaa !15
  %7779 = icmp eq ptr %7778, null
  br i1 %7779, label %7833, label %7780

7780:                                             ; preds = %7773
  br label %7781

7781:                                             ; preds = %7780
  br label %7782

7782:                                             ; preds = %7781
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #9
  %7783 = call ptr @__errno_location() #10
  %7784 = load i32, ptr %7783, align 4, !tbaa !5
  store i32 %7784, ptr %161, align 4, !tbaa !5
  %7785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7786 = call i32 @s2n_print_stacktrace(ptr noundef %7785)
  %7787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7788 = trunc i8 %7787 to i1
  br i1 %7788, label %7789, label %7811

7789:                                             ; preds = %7782
  %7790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7791 = call i32 @fileno(ptr noundef %7790) #9
  %7792 = call i32 @isatty(i32 noundef %7791) #9
  %7793 = icmp ne i32 %7792, 0
  br i1 %7793, label %7794, label %7811

7794:                                             ; preds = %7789
  %7795 = load i32, ptr %161, align 4, !tbaa !5
  %7796 = call ptr @__errno_location() #10
  store i32 %7795, ptr %7796, align 4, !tbaa !5
  %7797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7798 = load i32, ptr @test_count, align 4, !tbaa !5
  %7799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7800 = load i32, ptr %7799, align 4, !tbaa !5
  %7801 = call ptr @s2n_strerror(i32 noundef %7800, ptr noundef @.str.4)
  %7802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7803 = load i32, ptr %7802, align 4, !tbaa !5
  %7804 = call ptr @s2n_strerror_debug(i32 noundef %7803, ptr noundef @.str.4)
  %7805 = call ptr @__errno_location() #10
  %7806 = load i32, ptr %7805, align 4, !tbaa !5
  %7807 = call ptr @strerror(i32 noundef %7806) #9
  %7808 = call ptr @__errno_location() #10
  %7809 = load i32, ptr %7808, align 4, !tbaa !5
  %7810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7797, ptr noundef @.str.2, i32 noundef %7798, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 253, ptr noundef %7801, ptr noundef %7804, ptr noundef %7807, i32 noundef %7809) #9
  br label %7828

7811:                                             ; preds = %7789, %7782
  %7812 = load i32, ptr %161, align 4, !tbaa !5
  %7813 = call ptr @__errno_location() #10
  store i32 %7812, ptr %7813, align 4, !tbaa !5
  %7814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7815 = load i32, ptr @test_count, align 4, !tbaa !5
  %7816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7817 = load i32, ptr %7816, align 4, !tbaa !5
  %7818 = call ptr @s2n_strerror(i32 noundef %7817, ptr noundef @.str.4)
  %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_debug(i32 noundef %7820, ptr noundef @.str.4)
  %7822 = call ptr @__errno_location() #10
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  %7824 = call ptr @strerror(i32 noundef %7823) #9
  %7825 = call ptr @__errno_location() #10
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7814, ptr noundef @.str.5, i32 noundef %7815, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 253, ptr noundef %7818, ptr noundef %7821, ptr noundef %7824, i32 noundef %7826) #9
  br label %7828

7828:                                             ; preds = %7811, %7794
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #9
  br label %7829

7829:                                             ; preds = %7828
  br label %7830

7830:                                             ; preds = %7829
  call void @exit(i32 noundef 1) #11
  unreachable

7831:                                             ; No predecessors!
  br label %7832

7832:                                             ; preds = %7831
  br label %7833

7833:                                             ; preds = %7832, %7773
  br label %7834

7834:                                             ; preds = %7833
  br label %7835

7835:                                             ; preds = %7834
  %7836 = load ptr, ptr %156, align 8, !tbaa !9
  %7837 = getelementptr inbounds %struct.s2n_config, ptr %7836, i32 0, i32 7
  store ptr null, ptr %7837, align 8, !tbaa !48
  br label %7838

7838:                                             ; preds = %7835
  br label %7839

7839:                                             ; preds = %7838
  br label %7840

7840:                                             ; preds = %7839
  %7841 = load i32, ptr @test_count, align 4, !tbaa !5
  %7842 = add nsw i32 %7841, 1
  store i32 %7842, ptr @test_count, align 4, !tbaa !5
  %7843 = load ptr, ptr %135, align 8, !tbaa !9
  %7844 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef %7843, ptr noundef %136)
  %7845 = icmp eq i32 %7844, -1
  br i1 %7845, label %7899, label %7846

7846:                                             ; preds = %7840
  br label %7847

7847:                                             ; preds = %7846
  br label %7848

7848:                                             ; preds = %7847
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #9
  %7849 = call ptr @__errno_location() #10
  %7850 = load i32, ptr %7849, align 4, !tbaa !5
  store i32 %7850, ptr %162, align 4, !tbaa !5
  %7851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7852 = call i32 @s2n_print_stacktrace(ptr noundef %7851)
  %7853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7854 = trunc i8 %7853 to i1
  br i1 %7854, label %7855, label %7877

7855:                                             ; preds = %7848
  %7856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7857 = call i32 @fileno(ptr noundef %7856) #9
  %7858 = call i32 @isatty(i32 noundef %7857) #9
  %7859 = icmp ne i32 %7858, 0
  br i1 %7859, label %7860, label %7877

7860:                                             ; preds = %7855
  %7861 = load i32, ptr %162, align 4, !tbaa !5
  %7862 = call ptr @__errno_location() #10
  store i32 %7861, ptr %7862, align 4, !tbaa !5
  %7863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7864 = load i32, ptr @test_count, align 4, !tbaa !5
  %7865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  %7867 = call ptr @s2n_strerror(i32 noundef %7866, ptr noundef @.str.4)
  %7868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7869 = load i32, ptr %7868, align 4, !tbaa !5
  %7870 = call ptr @s2n_strerror_debug(i32 noundef %7869, ptr noundef @.str.4)
  %7871 = call ptr @__errno_location() #10
  %7872 = load i32, ptr %7871, align 4, !tbaa !5
  %7873 = call ptr @strerror(i32 noundef %7872) #9
  %7874 = call ptr @__errno_location() #10
  %7875 = load i32, ptr %7874, align 4, !tbaa !5
  %7876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7863, ptr noundef @.str.2, i32 noundef %7864, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 258, ptr noundef %7867, ptr noundef %7870, ptr noundef %7873, i32 noundef %7875) #9
  br label %7894

7877:                                             ; preds = %7855, %7848
  %7878 = load i32, ptr %162, align 4, !tbaa !5
  %7879 = call ptr @__errno_location() #10
  store i32 %7878, ptr %7879, align 4, !tbaa !5
  %7880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7881 = load i32, ptr @test_count, align 4, !tbaa !5
  %7882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call ptr @s2n_strerror(i32 noundef %7883, ptr noundef @.str.4)
  %7885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7886 = load i32, ptr %7885, align 4, !tbaa !5
  %7887 = call ptr @s2n_strerror_debug(i32 noundef %7886, ptr noundef @.str.4)
  %7888 = call ptr @__errno_location() #10
  %7889 = load i32, ptr %7888, align 4, !tbaa !5
  %7890 = call ptr @strerror(i32 noundef %7889) #9
  %7891 = call ptr @__errno_location() #10
  %7892 = load i32, ptr %7891, align 4, !tbaa !5
  %7893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7880, ptr noundef @.str.5, i32 noundef %7881, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 258, ptr noundef %7884, ptr noundef %7887, ptr noundef %7890, i32 noundef %7892) #9
  br label %7894

7894:                                             ; preds = %7877, %7860
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #9
  br label %7895

7895:                                             ; preds = %7894
  br label %7896

7896:                                             ; preds = %7895
  call void @exit(i32 noundef 1) #11
  unreachable

7897:                                             ; No predecessors!
  br label %7898

7898:                                             ; preds = %7897
  br label %7899

7899:                                             ; preds = %7898, %7840
  br label %7900

7900:                                             ; preds = %7899
  br label %7901

7901:                                             ; preds = %7900
  br label %7902

7902:                                             ; preds = %7901
  %7903 = load i32, ptr @test_count, align 4, !tbaa !5
  %7904 = add nsw i32 %7903, 1
  store i32 %7904, ptr @test_count, align 4, !tbaa !5
  %7905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7906 = load i32, ptr %7905, align 4, !tbaa !5
  %7907 = icmp eq i32 %7906, 469762066
  br i1 %7907, label %7961, label %7908

7908:                                             ; preds = %7902
  br label %7909

7909:                                             ; preds = %7908
  br label %7910

7910:                                             ; preds = %7909
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #9
  %7911 = call ptr @__errno_location() #10
  %7912 = load i32, ptr %7911, align 4, !tbaa !5
  store i32 %7912, ptr %163, align 4, !tbaa !5
  %7913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7914 = call i32 @s2n_print_stacktrace(ptr noundef %7913)
  %7915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7916 = trunc i8 %7915 to i1
  br i1 %7916, label %7917, label %7939

7917:                                             ; preds = %7910
  %7918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7919 = call i32 @fileno(ptr noundef %7918) #9
  %7920 = call i32 @isatty(i32 noundef %7919) #9
  %7921 = icmp ne i32 %7920, 0
  br i1 %7921, label %7922, label %7939

7922:                                             ; preds = %7917
  %7923 = load i32, ptr %163, align 4, !tbaa !5
  %7924 = call ptr @__errno_location() #10
  store i32 %7923, ptr %7924, align 4, !tbaa !5
  %7925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7926 = load i32, ptr @test_count, align 4, !tbaa !5
  %7927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7928 = load i32, ptr %7927, align 4, !tbaa !5
  %7929 = call ptr @s2n_strerror(i32 noundef %7928, ptr noundef @.str.4)
  %7930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7931 = load i32, ptr %7930, align 4, !tbaa !5
  %7932 = call ptr @s2n_strerror_debug(i32 noundef %7931, ptr noundef @.str.4)
  %7933 = call ptr @__errno_location() #10
  %7934 = load i32, ptr %7933, align 4, !tbaa !5
  %7935 = call ptr @strerror(i32 noundef %7934) #9
  %7936 = call ptr @__errno_location() #10
  %7937 = load i32, ptr %7936, align 4, !tbaa !5
  %7938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7925, ptr noundef @.str.2, i32 noundef %7926, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 258, ptr noundef %7929, ptr noundef %7932, ptr noundef %7935, i32 noundef %7937) #9
  br label %7956

7939:                                             ; preds = %7917, %7910
  %7940 = load i32, ptr %163, align 4, !tbaa !5
  %7941 = call ptr @__errno_location() #10
  store i32 %7940, ptr %7941, align 4, !tbaa !5
  %7942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7943 = load i32, ptr @test_count, align 4, !tbaa !5
  %7944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call ptr @s2n_strerror(i32 noundef %7945, ptr noundef @.str.4)
  %7947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7948 = load i32, ptr %7947, align 4, !tbaa !5
  %7949 = call ptr @s2n_strerror_debug(i32 noundef %7948, ptr noundef @.str.4)
  %7950 = call ptr @__errno_location() #10
  %7951 = load i32, ptr %7950, align 4, !tbaa !5
  %7952 = call ptr @strerror(i32 noundef %7951) #9
  %7953 = call ptr @__errno_location() #10
  %7954 = load i32, ptr %7953, align 4, !tbaa !5
  %7955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7942, ptr noundef @.str.5, i32 noundef %7943, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 258, ptr noundef %7946, ptr noundef %7949, ptr noundef %7952, i32 noundef %7954) #9
  br label %7956

7956:                                             ; preds = %7939, %7922
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #9
  br label %7957

7957:                                             ; preds = %7956
  br label %7958

7958:                                             ; preds = %7957
  call void @exit(i32 noundef 1) #11
  unreachable

7959:                                             ; No predecessors!
  br label %7960

7960:                                             ; preds = %7959
  br label %7961

7961:                                             ; preds = %7960, %7902
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

7963:                                             ; preds = %7962
  br label %7964

7964:                                             ; preds = %7963
  %7965 = load i32, ptr @test_count, align 4, !tbaa !5
  %7966 = add nsw i32 %7965, 1
  store i32 %7966, ptr @test_count, align 4, !tbaa !5
  %7967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7968 = load i32, ptr %7967, align 4, !tbaa !5
  %7969 = call ptr @s2n_strerror_debug(i32 noundef %7968, ptr noundef @.str.4)
  %7970 = icmp eq ptr %7969, null
  br i1 %7970, label %7971, label %8024

7971:                                             ; preds = %7964
  br label %7972

7972:                                             ; preds = %7971
  br label %7973

7973:                                             ; preds = %7972
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #9
  %7974 = call ptr @__errno_location() #10
  %7975 = load i32, ptr %7974, align 4, !tbaa !5
  store i32 %7975, ptr %164, align 4, !tbaa !5
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = call i32 @s2n_print_stacktrace(ptr noundef %7976)
  %7978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7979 = trunc i8 %7978 to i1
  br i1 %7979, label %7980, label %8002

7980:                                             ; preds = %7973
  %7981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7982 = call i32 @fileno(ptr noundef %7981) #9
  %7983 = call i32 @isatty(i32 noundef %7982) #9
  %7984 = icmp ne i32 %7983, 0
  br i1 %7984, label %7985, label %8002

7985:                                             ; preds = %7980
  %7986 = load i32, ptr %164, align 4, !tbaa !5
  %7987 = call ptr @__errno_location() #10
  store i32 %7986, ptr %7987, align 4, !tbaa !5
  %7988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7989 = load i32, ptr @test_count, align 4, !tbaa !5
  %7990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7991 = load i32, ptr %7990, align 4, !tbaa !5
  %7992 = call ptr @s2n_strerror(i32 noundef %7991, ptr noundef @.str.4)
  %7993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7994 = load i32, ptr %7993, align 4, !tbaa !5
  %7995 = call ptr @s2n_strerror_debug(i32 noundef %7994, ptr noundef @.str.4)
  %7996 = call ptr @__errno_location() #10
  %7997 = load i32, ptr %7996, align 4, !tbaa !5
  %7998 = call ptr @strerror(i32 noundef %7997) #9
  %7999 = call ptr @__errno_location() #10
  %8000 = load i32, ptr %7999, align 4, !tbaa !5
  %8001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7988, ptr noundef @.str.2, i32 noundef %7989, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 258, ptr noundef %7992, ptr noundef %7995, ptr noundef %7998, i32 noundef %8000) #9
  br label %8019

8002:                                             ; preds = %7980, %7973
  %8003 = load i32, ptr %164, align 4, !tbaa !5
  %8004 = call ptr @__errno_location() #10
  store i32 %8003, ptr %8004, align 4, !tbaa !5
  %8005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8006 = load i32, ptr @test_count, align 4, !tbaa !5
  %8007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8008 = load i32, ptr %8007, align 4, !tbaa !5
  %8009 = call ptr @s2n_strerror(i32 noundef %8008, ptr noundef @.str.4)
  %8010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call ptr @s2n_strerror_debug(i32 noundef %8011, ptr noundef @.str.4)
  %8013 = call ptr @__errno_location() #10
  %8014 = load i32, ptr %8013, align 4, !tbaa !5
  %8015 = call ptr @strerror(i32 noundef %8014) #9
  %8016 = call ptr @__errno_location() #10
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8005, ptr noundef @.str.5, i32 noundef %8006, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 258, ptr noundef %8009, ptr noundef %8012, ptr noundef %8015, i32 noundef %8017) #9
  br label %8019

8019:                                             ; preds = %8002, %7985
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #9
  br label %8020

8020:                                             ; preds = %8019
  br label %8021

8021:                                             ; preds = %8020
  call void @exit(i32 noundef 1) #11
  unreachable

8022:                                             ; No predecessors!
  br label %8023

8023:                                             ; preds = %8022
  br label %8024

8024:                                             ; preds = %8023, %7964
  br label %8025

8025:                                             ; preds = %8024
  br label %8026

8026:                                             ; preds = %8025
  br label %8027

8027:                                             ; preds = %8026
  br label %8028

8028:                                             ; preds = %8027
  br label %8029

8029:                                             ; preds = %8028
  %8030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8030, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8031 = call ptr @__errno_location() #10
  store i32 0, ptr %8031, align 4, !tbaa !5
  br label %8032

8032:                                             ; preds = %8029
  br label %8033

8033:                                             ; preds = %8032
  br label %8034

8034:                                             ; preds = %8033
  br label %8035

8035:                                             ; preds = %8034
  br label %8036

8036:                                             ; preds = %8035
  br label %8037

8037:                                             ; preds = %8036
  br label %8038

8038:                                             ; preds = %8037
  %8039 = load i32, ptr @test_count, align 4, !tbaa !5
  %8040 = add nsw i32 %8039, 1
  store i32 %8040, ptr @test_count, align 4, !tbaa !5
  %8041 = load ptr, ptr %135, align 8, !tbaa !9
  %8042 = call i32 @s2n_connection_get_security_policy(ptr noundef %8041, ptr noundef %137)
  %8043 = icmp eq i32 %8042, -1
  br i1 %8043, label %8097, label %8044

8044:                                             ; preds = %8038
  br label %8045

8045:                                             ; preds = %8044
  br label %8046

8046:                                             ; preds = %8045
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #9
  %8047 = call ptr @__errno_location() #10
  %8048 = load i32, ptr %8047, align 4, !tbaa !5
  store i32 %8048, ptr %165, align 4, !tbaa !5
  %8049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8050 = call i32 @s2n_print_stacktrace(ptr noundef %8049)
  %8051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8052 = trunc i8 %8051 to i1
  br i1 %8052, label %8053, label %8075

8053:                                             ; preds = %8046
  %8054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8055 = call i32 @fileno(ptr noundef %8054) #9
  %8056 = call i32 @isatty(i32 noundef %8055) #9
  %8057 = icmp ne i32 %8056, 0
  br i1 %8057, label %8058, label %8075

8058:                                             ; preds = %8053
  %8059 = load i32, ptr %165, align 4, !tbaa !5
  %8060 = call ptr @__errno_location() #10
  store i32 %8059, ptr %8060, align 4, !tbaa !5
  %8061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8062 = load i32, ptr @test_count, align 4, !tbaa !5
  %8063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  %8065 = call ptr @s2n_strerror(i32 noundef %8064, ptr noundef @.str.4)
  %8066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call ptr @s2n_strerror_debug(i32 noundef %8067, ptr noundef @.str.4)
  %8069 = call ptr @__errno_location() #10
  %8070 = load i32, ptr %8069, align 4, !tbaa !5
  %8071 = call ptr @strerror(i32 noundef %8070) #9
  %8072 = call ptr @__errno_location() #10
  %8073 = load i32, ptr %8072, align 4, !tbaa !5
  %8074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8061, ptr noundef @.str.2, i32 noundef %8062, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 259, ptr noundef %8065, ptr noundef %8068, ptr noundef %8071, i32 noundef %8073) #9
  br label %8092

8075:                                             ; preds = %8053, %8046
  %8076 = load i32, ptr %165, align 4, !tbaa !5
  %8077 = call ptr @__errno_location() #10
  store i32 %8076, ptr %8077, align 4, !tbaa !5
  %8078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8079 = load i32, ptr @test_count, align 4, !tbaa !5
  %8080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8081 = load i32, ptr %8080, align 4, !tbaa !5
  %8082 = call ptr @s2n_strerror(i32 noundef %8081, ptr noundef @.str.4)
  %8083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call ptr @s2n_strerror_debug(i32 noundef %8084, ptr noundef @.str.4)
  %8086 = call ptr @__errno_location() #10
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call ptr @strerror(i32 noundef %8087) #9
  %8089 = call ptr @__errno_location() #10
  %8090 = load i32, ptr %8089, align 4, !tbaa !5
  %8091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8078, ptr noundef @.str.5, i32 noundef %8079, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 259, ptr noundef %8082, ptr noundef %8085, ptr noundef %8088, i32 noundef %8090) #9
  br label %8092

8092:                                             ; preds = %8075, %8058
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #9
  br label %8093

8093:                                             ; preds = %8092
  br label %8094

8094:                                             ; preds = %8093
  call void @exit(i32 noundef 1) #11
  unreachable

8095:                                             ; No predecessors!
  br label %8096

8096:                                             ; preds = %8095
  br label %8097

8097:                                             ; preds = %8096, %8038
  br label %8098

8098:                                             ; preds = %8097
  br label %8099

8099:                                             ; preds = %8098
  br label %8100

8100:                                             ; preds = %8099
  %8101 = load i32, ptr @test_count, align 4, !tbaa !5
  %8102 = add nsw i32 %8101, 1
  store i32 %8102, ptr @test_count, align 4, !tbaa !5
  %8103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = icmp eq i32 %8104, 469762101
  br i1 %8105, label %8159, label %8106

8106:                                             ; preds = %8100
  br label %8107

8107:                                             ; preds = %8106
  br label %8108

8108:                                             ; preds = %8107
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #9
  %8109 = call ptr @__errno_location() #10
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  store i32 %8110, ptr %166, align 4, !tbaa !5
  %8111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8112 = call i32 @s2n_print_stacktrace(ptr noundef %8111)
  %8113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8114 = trunc i8 %8113 to i1
  br i1 %8114, label %8115, label %8137

8115:                                             ; preds = %8108
  %8116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8117 = call i32 @fileno(ptr noundef %8116) #9
  %8118 = call i32 @isatty(i32 noundef %8117) #9
  %8119 = icmp ne i32 %8118, 0
  br i1 %8119, label %8120, label %8137

8120:                                             ; preds = %8115
  %8121 = load i32, ptr %166, align 4, !tbaa !5
  %8122 = call ptr @__errno_location() #10
  store i32 %8121, ptr %8122, align 4, !tbaa !5
  %8123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8124 = load i32, ptr @test_count, align 4, !tbaa !5
  %8125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8126 = load i32, ptr %8125, align 4, !tbaa !5
  %8127 = call ptr @s2n_strerror(i32 noundef %8126, ptr noundef @.str.4)
  %8128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8129 = load i32, ptr %8128, align 4, !tbaa !5
  %8130 = call ptr @s2n_strerror_debug(i32 noundef %8129, ptr noundef @.str.4)
  %8131 = call ptr @__errno_location() #10
  %8132 = load i32, ptr %8131, align 4, !tbaa !5
  %8133 = call ptr @strerror(i32 noundef %8132) #9
  %8134 = call ptr @__errno_location() #10
  %8135 = load i32, ptr %8134, align 4, !tbaa !5
  %8136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8123, ptr noundef @.str.2, i32 noundef %8124, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 259, ptr noundef %8127, ptr noundef %8130, ptr noundef %8133, i32 noundef %8135) #9
  br label %8154

8137:                                             ; preds = %8115, %8108
  %8138 = load i32, ptr %166, align 4, !tbaa !5
  %8139 = call ptr @__errno_location() #10
  store i32 %8138, ptr %8139, align 4, !tbaa !5
  %8140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8141 = load i32, ptr @test_count, align 4, !tbaa !5
  %8142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8143 = load i32, ptr %8142, align 4, !tbaa !5
  %8144 = call ptr @s2n_strerror(i32 noundef %8143, ptr noundef @.str.4)
  %8145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8146 = load i32, ptr %8145, align 4, !tbaa !5
  %8147 = call ptr @s2n_strerror_debug(i32 noundef %8146, ptr noundef @.str.4)
  %8148 = call ptr @__errno_location() #10
  %8149 = load i32, ptr %8148, align 4, !tbaa !5
  %8150 = call ptr @strerror(i32 noundef %8149) #9
  %8151 = call ptr @__errno_location() #10
  %8152 = load i32, ptr %8151, align 4, !tbaa !5
  %8153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8140, ptr noundef @.str.5, i32 noundef %8141, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 259, ptr noundef %8144, ptr noundef %8147, ptr noundef %8150, i32 noundef %8152) #9
  br label %8154

8154:                                             ; preds = %8137, %8120
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #9
  br label %8155

8155:                                             ; preds = %8154
  br label %8156

8156:                                             ; preds = %8155
  call void @exit(i32 noundef 1) #11
  unreachable

8157:                                             ; No predecessors!
  br label %8158

8158:                                             ; preds = %8157
  br label %8159

8159:                                             ; preds = %8158, %8100
  br label %8160

8160:                                             ; preds = %8159
  br label %8161

8161:                                             ; preds = %8160
  br label %8162

8162:                                             ; preds = %8161
  %8163 = load i32, ptr @test_count, align 4, !tbaa !5
  %8164 = add nsw i32 %8163, 1
  store i32 %8164, ptr @test_count, align 4, !tbaa !5
  %8165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8166 = load i32, ptr %8165, align 4, !tbaa !5
  %8167 = call ptr @s2n_strerror_debug(i32 noundef %8166, ptr noundef @.str.4)
  %8168 = icmp eq ptr %8167, null
  br i1 %8168, label %8169, label %8222

8169:                                             ; preds = %8162
  br label %8170

8170:                                             ; preds = %8169
  br label %8171

8171:                                             ; preds = %8170
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #9
  %8172 = call ptr @__errno_location() #10
  %8173 = load i32, ptr %8172, align 4, !tbaa !5
  store i32 %8173, ptr %167, align 4, !tbaa !5
  %8174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8175 = call i32 @s2n_print_stacktrace(ptr noundef %8174)
  %8176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8177 = trunc i8 %8176 to i1
  br i1 %8177, label %8178, label %8200

8178:                                             ; preds = %8171
  %8179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8180 = call i32 @fileno(ptr noundef %8179) #9
  %8181 = call i32 @isatty(i32 noundef %8180) #9
  %8182 = icmp ne i32 %8181, 0
  br i1 %8182, label %8183, label %8200

8183:                                             ; preds = %8178
  %8184 = load i32, ptr %167, align 4, !tbaa !5
  %8185 = call ptr @__errno_location() #10
  store i32 %8184, ptr %8185, align 4, !tbaa !5
  %8186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8187 = load i32, ptr @test_count, align 4, !tbaa !5
  %8188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  %8190 = call ptr @s2n_strerror(i32 noundef %8189, ptr noundef @.str.4)
  %8191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8192 = load i32, ptr %8191, align 4, !tbaa !5
  %8193 = call ptr @s2n_strerror_debug(i32 noundef %8192, ptr noundef @.str.4)
  %8194 = call ptr @__errno_location() #10
  %8195 = load i32, ptr %8194, align 4, !tbaa !5
  %8196 = call ptr @strerror(i32 noundef %8195) #9
  %8197 = call ptr @__errno_location() #10
  %8198 = load i32, ptr %8197, align 4, !tbaa !5
  %8199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8186, ptr noundef @.str.2, i32 noundef %8187, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 259, ptr noundef %8190, ptr noundef %8193, ptr noundef %8196, i32 noundef %8198) #9
  br label %8217

8200:                                             ; preds = %8178, %8171
  %8201 = load i32, ptr %167, align 4, !tbaa !5
  %8202 = call ptr @__errno_location() #10
  store i32 %8201, ptr %8202, align 4, !tbaa !5
  %8203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8204 = load i32, ptr @test_count, align 4, !tbaa !5
  %8205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8206 = load i32, ptr %8205, align 4, !tbaa !5
  %8207 = call ptr @s2n_strerror(i32 noundef %8206, ptr noundef @.str.4)
  %8208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8209 = load i32, ptr %8208, align 4, !tbaa !5
  %8210 = call ptr @s2n_strerror_debug(i32 noundef %8209, ptr noundef @.str.4)
  %8211 = call ptr @__errno_location() #10
  %8212 = load i32, ptr %8211, align 4, !tbaa !5
  %8213 = call ptr @strerror(i32 noundef %8212) #9
  %8214 = call ptr @__errno_location() #10
  %8215 = load i32, ptr %8214, align 4, !tbaa !5
  %8216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8203, ptr noundef @.str.5, i32 noundef %8204, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 259, ptr noundef %8207, ptr noundef %8210, ptr noundef %8213, i32 noundef %8215) #9
  br label %8217

8217:                                             ; preds = %8200, %8183
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #9
  br label %8218

8218:                                             ; preds = %8217
  br label %8219

8219:                                             ; preds = %8218
  call void @exit(i32 noundef 1) #11
  unreachable

8220:                                             ; No predecessors!
  br label %8221

8221:                                             ; preds = %8220
  br label %8222

8222:                                             ; preds = %8221, %8162
  br label %8223

8223:                                             ; preds = %8222
  br label %8224

8224:                                             ; preds = %8223
  br label %8225

8225:                                             ; preds = %8224
  br label %8226

8226:                                             ; preds = %8225
  br label %8227

8227:                                             ; preds = %8226
  %8228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8228, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8229 = call ptr @__errno_location() #10
  store i32 0, ptr %8229, align 4, !tbaa !5
  br label %8230

8230:                                             ; preds = %8227
  br label %8231

8231:                                             ; preds = %8230
  br label %8232

8232:                                             ; preds = %8231
  br label %8233

8233:                                             ; preds = %8232
  br label %8234

8234:                                             ; preds = %8233
  br label %8235

8235:                                             ; preds = %8234
  br label %8236

8236:                                             ; preds = %8235
  %8237 = load i32, ptr @test_count, align 4, !tbaa !5
  %8238 = add nsw i32 %8237, 1
  store i32 %8238, ptr @test_count, align 4, !tbaa !5
  %8239 = load ptr, ptr %135, align 8, !tbaa !9
  %8240 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %8239, ptr noundef %138)
  %8241 = icmp eq i32 %8240, -1
  br i1 %8241, label %8295, label %8242

8242:                                             ; preds = %8236
  br label %8243

8243:                                             ; preds = %8242
  br label %8244

8244:                                             ; preds = %8243
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #9
  %8245 = call ptr @__errno_location() #10
  %8246 = load i32, ptr %8245, align 4, !tbaa !5
  store i32 %8246, ptr %168, align 4, !tbaa !5
  %8247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8248 = call i32 @s2n_print_stacktrace(ptr noundef %8247)
  %8249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8250 = trunc i8 %8249 to i1
  br i1 %8250, label %8251, label %8273

8251:                                             ; preds = %8244
  %8252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8253 = call i32 @fileno(ptr noundef %8252) #9
  %8254 = call i32 @isatty(i32 noundef %8253) #9
  %8255 = icmp ne i32 %8254, 0
  br i1 %8255, label %8256, label %8273

8256:                                             ; preds = %8251
  %8257 = load i32, ptr %168, align 4, !tbaa !5
  %8258 = call ptr @__errno_location() #10
  store i32 %8257, ptr %8258, align 4, !tbaa !5
  %8259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8260 = load i32, ptr @test_count, align 4, !tbaa !5
  %8261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  %8263 = call ptr @s2n_strerror(i32 noundef %8262, ptr noundef @.str.4)
  %8264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8265 = load i32, ptr %8264, align 4, !tbaa !5
  %8266 = call ptr @s2n_strerror_debug(i32 noundef %8265, ptr noundef @.str.4)
  %8267 = call ptr @__errno_location() #10
  %8268 = load i32, ptr %8267, align 4, !tbaa !5
  %8269 = call ptr @strerror(i32 noundef %8268) #9
  %8270 = call ptr @__errno_location() #10
  %8271 = load i32, ptr %8270, align 4, !tbaa !5
  %8272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8259, ptr noundef @.str.2, i32 noundef %8260, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 260, ptr noundef %8263, ptr noundef %8266, ptr noundef %8269, i32 noundef %8271) #9
  br label %8290

8273:                                             ; preds = %8251, %8244
  %8274 = load i32, ptr %168, align 4, !tbaa !5
  %8275 = call ptr @__errno_location() #10
  store i32 %8274, ptr %8275, align 4, !tbaa !5
  %8276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8277 = load i32, ptr @test_count, align 4, !tbaa !5
  %8278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call ptr @s2n_strerror(i32 noundef %8279, ptr noundef @.str.4)
  %8281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8282 = load i32, ptr %8281, align 4, !tbaa !5
  %8283 = call ptr @s2n_strerror_debug(i32 noundef %8282, ptr noundef @.str.4)
  %8284 = call ptr @__errno_location() #10
  %8285 = load i32, ptr %8284, align 4, !tbaa !5
  %8286 = call ptr @strerror(i32 noundef %8285) #9
  %8287 = call ptr @__errno_location() #10
  %8288 = load i32, ptr %8287, align 4, !tbaa !5
  %8289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8276, ptr noundef @.str.5, i32 noundef %8277, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 260, ptr noundef %8280, ptr noundef %8283, ptr noundef %8286, i32 noundef %8288) #9
  br label %8290

8290:                                             ; preds = %8273, %8256
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #9
  br label %8291

8291:                                             ; preds = %8290
  br label %8292

8292:                                             ; preds = %8291
  call void @exit(i32 noundef 1) #11
  unreachable

8293:                                             ; No predecessors!
  br label %8294

8294:                                             ; preds = %8293
  br label %8295

8295:                                             ; preds = %8294, %8236
  br label %8296

8296:                                             ; preds = %8295
  br label %8297

8297:                                             ; preds = %8296
  br label %8298

8298:                                             ; preds = %8297
  %8299 = load i32, ptr @test_count, align 4, !tbaa !5
  %8300 = add nsw i32 %8299, 1
  store i32 %8300, ptr @test_count, align 4, !tbaa !5
  %8301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8302 = load i32, ptr %8301, align 4, !tbaa !5
  %8303 = icmp eq i32 %8302, 469762102
  br i1 %8303, label %8357, label %8304

8304:                                             ; preds = %8298
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

8306:                                             ; preds = %8305
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #9
  %8307 = call ptr @__errno_location() #10
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  store i32 %8308, ptr %169, align 4, !tbaa !5
  %8309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8310 = call i32 @s2n_print_stacktrace(ptr noundef %8309)
  %8311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8312 = trunc i8 %8311 to i1
  br i1 %8312, label %8313, label %8335

8313:                                             ; preds = %8306
  %8314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8315 = call i32 @fileno(ptr noundef %8314) #9
  %8316 = call i32 @isatty(i32 noundef %8315) #9
  %8317 = icmp ne i32 %8316, 0
  br i1 %8317, label %8318, label %8335

8318:                                             ; preds = %8313
  %8319 = load i32, ptr %169, align 4, !tbaa !5
  %8320 = call ptr @__errno_location() #10
  store i32 %8319, ptr %8320, align 4, !tbaa !5
  %8321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8322 = load i32, ptr @test_count, align 4, !tbaa !5
  %8323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  %8325 = call ptr @s2n_strerror(i32 noundef %8324, ptr noundef @.str.4)
  %8326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @s2n_strerror_debug(i32 noundef %8327, ptr noundef @.str.4)
  %8329 = call ptr @__errno_location() #10
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call ptr @strerror(i32 noundef %8330) #9
  %8332 = call ptr @__errno_location() #10
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8321, ptr noundef @.str.2, i32 noundef %8322, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 260, ptr noundef %8325, ptr noundef %8328, ptr noundef %8331, i32 noundef %8333) #9
  br label %8352

8335:                                             ; preds = %8313, %8306
  %8336 = load i32, ptr %169, align 4, !tbaa !5
  %8337 = call ptr @__errno_location() #10
  store i32 %8336, ptr %8337, align 4, !tbaa !5
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = load i32, ptr @test_count, align 4, !tbaa !5
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror(i32 noundef %8341, ptr noundef @.str.4)
  %8343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @s2n_strerror_debug(i32 noundef %8344, ptr noundef @.str.4)
  %8346 = call ptr @__errno_location() #10
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call ptr @strerror(i32 noundef %8347) #9
  %8349 = call ptr @__errno_location() #10
  %8350 = load i32, ptr %8349, align 4, !tbaa !5
  %8351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8338, ptr noundef @.str.5, i32 noundef %8339, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 260, ptr noundef %8342, ptr noundef %8345, ptr noundef %8348, i32 noundef %8350) #9
  br label %8352

8352:                                             ; preds = %8335, %8318
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #9
  br label %8353

8353:                                             ; preds = %8352
  br label %8354

8354:                                             ; preds = %8353
  call void @exit(i32 noundef 1) #11
  unreachable

8355:                                             ; No predecessors!
  br label %8356

8356:                                             ; preds = %8355
  br label %8357

8357:                                             ; preds = %8356, %8298
  br label %8358

8358:                                             ; preds = %8357
  br label %8359

8359:                                             ; preds = %8358
  br label %8360

8360:                                             ; preds = %8359
  %8361 = load i32, ptr @test_count, align 4, !tbaa !5
  %8362 = add nsw i32 %8361, 1
  store i32 %8362, ptr @test_count, align 4, !tbaa !5
  %8363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  %8365 = call ptr @s2n_strerror_debug(i32 noundef %8364, ptr noundef @.str.4)
  %8366 = icmp eq ptr %8365, null
  br i1 %8366, label %8367, label %8420

8367:                                             ; preds = %8360
  br label %8368

8368:                                             ; preds = %8367
  br label %8369

8369:                                             ; preds = %8368
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #9
  %8370 = call ptr @__errno_location() #10
  %8371 = load i32, ptr %8370, align 4, !tbaa !5
  store i32 %8371, ptr %170, align 4, !tbaa !5
  %8372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8373 = call i32 @s2n_print_stacktrace(ptr noundef %8372)
  %8374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8375 = trunc i8 %8374 to i1
  br i1 %8375, label %8376, label %8398

8376:                                             ; preds = %8369
  %8377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8378 = call i32 @fileno(ptr noundef %8377) #9
  %8379 = call i32 @isatty(i32 noundef %8378) #9
  %8380 = icmp ne i32 %8379, 0
  br i1 %8380, label %8381, label %8398

8381:                                             ; preds = %8376
  %8382 = load i32, ptr %170, align 4, !tbaa !5
  %8383 = call ptr @__errno_location() #10
  store i32 %8382, ptr %8383, align 4, !tbaa !5
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = load i32, ptr @test_count, align 4, !tbaa !5
  %8386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8387 = load i32, ptr %8386, align 4, !tbaa !5
  %8388 = call ptr @s2n_strerror(i32 noundef %8387, ptr noundef @.str.4)
  %8389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call ptr @s2n_strerror_debug(i32 noundef %8390, ptr noundef @.str.4)
  %8392 = call ptr @__errno_location() #10
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call ptr @strerror(i32 noundef %8393) #9
  %8395 = call ptr @__errno_location() #10
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8384, ptr noundef @.str.2, i32 noundef %8385, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 260, ptr noundef %8388, ptr noundef %8391, ptr noundef %8394, i32 noundef %8396) #9
  br label %8415

8398:                                             ; preds = %8376, %8369
  %8399 = load i32, ptr %170, align 4, !tbaa !5
  %8400 = call ptr @__errno_location() #10
  store i32 %8399, ptr %8400, align 4, !tbaa !5
  %8401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8402 = load i32, ptr @test_count, align 4, !tbaa !5
  %8403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8404 = load i32, ptr %8403, align 4, !tbaa !5
  %8405 = call ptr @s2n_strerror(i32 noundef %8404, ptr noundef @.str.4)
  %8406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8407 = load i32, ptr %8406, align 4, !tbaa !5
  %8408 = call ptr @s2n_strerror_debug(i32 noundef %8407, ptr noundef @.str.4)
  %8409 = call ptr @__errno_location() #10
  %8410 = load i32, ptr %8409, align 4, !tbaa !5
  %8411 = call ptr @strerror(i32 noundef %8410) #9
  %8412 = call ptr @__errno_location() #10
  %8413 = load i32, ptr %8412, align 4, !tbaa !5
  %8414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8401, ptr noundef @.str.5, i32 noundef %8402, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 260, ptr noundef %8405, ptr noundef %8408, ptr noundef %8411, i32 noundef %8413) #9
  br label %8415

8415:                                             ; preds = %8398, %8381
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #9
  br label %8416

8416:                                             ; preds = %8415
  br label %8417

8417:                                             ; preds = %8416
  call void @exit(i32 noundef 1) #11
  unreachable

8418:                                             ; No predecessors!
  br label %8419

8419:                                             ; preds = %8418
  br label %8420

8420:                                             ; preds = %8419, %8360
  br label %8421

8421:                                             ; preds = %8420
  br label %8422

8422:                                             ; preds = %8421
  br label %8423

8423:                                             ; preds = %8422
  br label %8424

8424:                                             ; preds = %8423
  br label %8425

8425:                                             ; preds = %8424
  %8426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8426, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8427 = call ptr @__errno_location() #10
  store i32 0, ptr %8427, align 4, !tbaa !5
  br label %8428

8428:                                             ; preds = %8425
  br label %8429

8429:                                             ; preds = %8428
  br label %8430

8430:                                             ; preds = %8429
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431
  br label %8433

8433:                                             ; preds = %8432
  br label %8434

8434:                                             ; preds = %8433
  %8435 = load i32, ptr @test_count, align 4, !tbaa !5
  %8436 = add nsw i32 %8435, 1
  store i32 %8436, ptr @test_count, align 4, !tbaa !5
  %8437 = load ptr, ptr %135, align 8, !tbaa !9
  %8438 = call i32 @s2n_connection_get_signature_preferences(ptr noundef %8437, ptr noundef %139)
  %8439 = icmp eq i32 %8438, -1
  br i1 %8439, label %8493, label %8440

8440:                                             ; preds = %8434
  br label %8441

8441:                                             ; preds = %8440
  br label %8442

8442:                                             ; preds = %8441
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #9
  %8443 = call ptr @__errno_location() #10
  %8444 = load i32, ptr %8443, align 4, !tbaa !5
  store i32 %8444, ptr %171, align 4, !tbaa !5
  %8445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8446 = call i32 @s2n_print_stacktrace(ptr noundef %8445)
  %8447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8448 = trunc i8 %8447 to i1
  br i1 %8448, label %8449, label %8471

8449:                                             ; preds = %8442
  %8450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8451 = call i32 @fileno(ptr noundef %8450) #9
  %8452 = call i32 @isatty(i32 noundef %8451) #9
  %8453 = icmp ne i32 %8452, 0
  br i1 %8453, label %8454, label %8471

8454:                                             ; preds = %8449
  %8455 = load i32, ptr %171, align 4, !tbaa !5
  %8456 = call ptr @__errno_location() #10
  store i32 %8455, ptr %8456, align 4, !tbaa !5
  %8457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8458 = load i32, ptr @test_count, align 4, !tbaa !5
  %8459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8460 = load i32, ptr %8459, align 4, !tbaa !5
  %8461 = call ptr @s2n_strerror(i32 noundef %8460, ptr noundef @.str.4)
  %8462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8463 = load i32, ptr %8462, align 4, !tbaa !5
  %8464 = call ptr @s2n_strerror_debug(i32 noundef %8463, ptr noundef @.str.4)
  %8465 = call ptr @__errno_location() #10
  %8466 = load i32, ptr %8465, align 4, !tbaa !5
  %8467 = call ptr @strerror(i32 noundef %8466) #9
  %8468 = call ptr @__errno_location() #10
  %8469 = load i32, ptr %8468, align 4, !tbaa !5
  %8470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8457, ptr noundef @.str.2, i32 noundef %8458, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 261, ptr noundef %8461, ptr noundef %8464, ptr noundef %8467, i32 noundef %8469) #9
  br label %8488

8471:                                             ; preds = %8449, %8442
  %8472 = load i32, ptr %171, align 4, !tbaa !5
  %8473 = call ptr @__errno_location() #10
  store i32 %8472, ptr %8473, align 4, !tbaa !5
  %8474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8475 = load i32, ptr @test_count, align 4, !tbaa !5
  %8476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8477 = load i32, ptr %8476, align 4, !tbaa !5
  %8478 = call ptr @s2n_strerror(i32 noundef %8477, ptr noundef @.str.4)
  %8479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call ptr @s2n_strerror_debug(i32 noundef %8480, ptr noundef @.str.4)
  %8482 = call ptr @__errno_location() #10
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call ptr @strerror(i32 noundef %8483) #9
  %8485 = call ptr @__errno_location() #10
  %8486 = load i32, ptr %8485, align 4, !tbaa !5
  %8487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8474, ptr noundef @.str.5, i32 noundef %8475, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 261, ptr noundef %8478, ptr noundef %8481, ptr noundef %8484, i32 noundef %8486) #9
  br label %8488

8488:                                             ; preds = %8471, %8454
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #9
  br label %8489

8489:                                             ; preds = %8488
  br label %8490

8490:                                             ; preds = %8489
  call void @exit(i32 noundef 1) #11
  unreachable

8491:                                             ; No predecessors!
  br label %8492

8492:                                             ; preds = %8491
  br label %8493

8493:                                             ; preds = %8492, %8434
  br label %8494

8494:                                             ; preds = %8493
  br label %8495

8495:                                             ; preds = %8494
  br label %8496

8496:                                             ; preds = %8495
  %8497 = load i32, ptr @test_count, align 4, !tbaa !5
  %8498 = add nsw i32 %8497, 1
  store i32 %8498, ptr @test_count, align 4, !tbaa !5
  %8499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8500 = load i32, ptr %8499, align 4, !tbaa !5
  %8501 = icmp eq i32 %8500, 469762097
  br i1 %8501, label %8555, label %8502

8502:                                             ; preds = %8496
  br label %8503

8503:                                             ; preds = %8502
  br label %8504

8504:                                             ; preds = %8503
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #9
  %8505 = call ptr @__errno_location() #10
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  store i32 %8506, ptr %172, align 4, !tbaa !5
  %8507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8508 = call i32 @s2n_print_stacktrace(ptr noundef %8507)
  %8509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8510 = trunc i8 %8509 to i1
  br i1 %8510, label %8511, label %8533

8511:                                             ; preds = %8504
  %8512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8513 = call i32 @fileno(ptr noundef %8512) #9
  %8514 = call i32 @isatty(i32 noundef %8513) #9
  %8515 = icmp ne i32 %8514, 0
  br i1 %8515, label %8516, label %8533

8516:                                             ; preds = %8511
  %8517 = load i32, ptr %172, align 4, !tbaa !5
  %8518 = call ptr @__errno_location() #10
  store i32 %8517, ptr %8518, align 4, !tbaa !5
  %8519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8520 = load i32, ptr @test_count, align 4, !tbaa !5
  %8521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8522 = load i32, ptr %8521, align 4, !tbaa !5
  %8523 = call ptr @s2n_strerror(i32 noundef %8522, ptr noundef @.str.4)
  %8524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8525 = load i32, ptr %8524, align 4, !tbaa !5
  %8526 = call ptr @s2n_strerror_debug(i32 noundef %8525, ptr noundef @.str.4)
  %8527 = call ptr @__errno_location() #10
  %8528 = load i32, ptr %8527, align 4, !tbaa !5
  %8529 = call ptr @strerror(i32 noundef %8528) #9
  %8530 = call ptr @__errno_location() #10
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8519, ptr noundef @.str.2, i32 noundef %8520, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 261, ptr noundef %8523, ptr noundef %8526, ptr noundef %8529, i32 noundef %8531) #9
  br label %8550

8533:                                             ; preds = %8511, %8504
  %8534 = load i32, ptr %172, align 4, !tbaa !5
  %8535 = call ptr @__errno_location() #10
  store i32 %8534, ptr %8535, align 4, !tbaa !5
  %8536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8537 = load i32, ptr @test_count, align 4, !tbaa !5
  %8538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @s2n_strerror(i32 noundef %8539, ptr noundef @.str.4)
  %8541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @s2n_strerror_debug(i32 noundef %8542, ptr noundef @.str.4)
  %8544 = call ptr @__errno_location() #10
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call ptr @strerror(i32 noundef %8545) #9
  %8547 = call ptr @__errno_location() #10
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8536, ptr noundef @.str.5, i32 noundef %8537, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 261, ptr noundef %8540, ptr noundef %8543, ptr noundef %8546, i32 noundef %8548) #9
  br label %8550

8550:                                             ; preds = %8533, %8516
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #9
  br label %8551

8551:                                             ; preds = %8550
  br label %8552

8552:                                             ; preds = %8551
  call void @exit(i32 noundef 1) #11
  unreachable

8553:                                             ; No predecessors!
  br label %8554

8554:                                             ; preds = %8553
  br label %8555

8555:                                             ; preds = %8554, %8496
  br label %8556

8556:                                             ; preds = %8555
  br label %8557

8557:                                             ; preds = %8556
  br label %8558

8558:                                             ; preds = %8557
  %8559 = load i32, ptr @test_count, align 4, !tbaa !5
  %8560 = add nsw i32 %8559, 1
  store i32 %8560, ptr @test_count, align 4, !tbaa !5
  %8561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call ptr @s2n_strerror_debug(i32 noundef %8562, ptr noundef @.str.4)
  %8564 = icmp eq ptr %8563, null
  br i1 %8564, label %8565, label %8618

8565:                                             ; preds = %8558
  br label %8566

8566:                                             ; preds = %8565
  br label %8567

8567:                                             ; preds = %8566
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #9
  %8568 = call ptr @__errno_location() #10
  %8569 = load i32, ptr %8568, align 4, !tbaa !5
  store i32 %8569, ptr %173, align 4, !tbaa !5
  %8570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8571 = call i32 @s2n_print_stacktrace(ptr noundef %8570)
  %8572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8573 = trunc i8 %8572 to i1
  br i1 %8573, label %8574, label %8596

8574:                                             ; preds = %8567
  %8575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8576 = call i32 @fileno(ptr noundef %8575) #9
  %8577 = call i32 @isatty(i32 noundef %8576) #9
  %8578 = icmp ne i32 %8577, 0
  br i1 %8578, label %8579, label %8596

8579:                                             ; preds = %8574
  %8580 = load i32, ptr %173, align 4, !tbaa !5
  %8581 = call ptr @__errno_location() #10
  store i32 %8580, ptr %8581, align 4, !tbaa !5
  %8582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8583 = load i32, ptr @test_count, align 4, !tbaa !5
  %8584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8585 = load i32, ptr %8584, align 4, !tbaa !5
  %8586 = call ptr @s2n_strerror(i32 noundef %8585, ptr noundef @.str.4)
  %8587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8588 = load i32, ptr %8587, align 4, !tbaa !5
  %8589 = call ptr @s2n_strerror_debug(i32 noundef %8588, ptr noundef @.str.4)
  %8590 = call ptr @__errno_location() #10
  %8591 = load i32, ptr %8590, align 4, !tbaa !5
  %8592 = call ptr @strerror(i32 noundef %8591) #9
  %8593 = call ptr @__errno_location() #10
  %8594 = load i32, ptr %8593, align 4, !tbaa !5
  %8595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8582, ptr noundef @.str.2, i32 noundef %8583, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 261, ptr noundef %8586, ptr noundef %8589, ptr noundef %8592, i32 noundef %8594) #9
  br label %8613

8596:                                             ; preds = %8574, %8567
  %8597 = load i32, ptr %173, align 4, !tbaa !5
  %8598 = call ptr @__errno_location() #10
  store i32 %8597, ptr %8598, align 4, !tbaa !5
  %8599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8600 = load i32, ptr @test_count, align 4, !tbaa !5
  %8601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8602 = load i32, ptr %8601, align 4, !tbaa !5
  %8603 = call ptr @s2n_strerror(i32 noundef %8602, ptr noundef @.str.4)
  %8604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8605 = load i32, ptr %8604, align 4, !tbaa !5
  %8606 = call ptr @s2n_strerror_debug(i32 noundef %8605, ptr noundef @.str.4)
  %8607 = call ptr @__errno_location() #10
  %8608 = load i32, ptr %8607, align 4, !tbaa !5
  %8609 = call ptr @strerror(i32 noundef %8608) #9
  %8610 = call ptr @__errno_location() #10
  %8611 = load i32, ptr %8610, align 4, !tbaa !5
  %8612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8599, ptr noundef @.str.5, i32 noundef %8600, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 261, ptr noundef %8603, ptr noundef %8606, ptr noundef %8609, i32 noundef %8611) #9
  br label %8613

8613:                                             ; preds = %8596, %8579
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #9
  br label %8614

8614:                                             ; preds = %8613
  br label %8615

8615:                                             ; preds = %8614
  call void @exit(i32 noundef 1) #11
  unreachable

8616:                                             ; No predecessors!
  br label %8617

8617:                                             ; preds = %8616
  br label %8618

8618:                                             ; preds = %8617, %8558
  br label %8619

8619:                                             ; preds = %8618
  br label %8620

8620:                                             ; preds = %8619
  br label %8621

8621:                                             ; preds = %8620
  br label %8622

8622:                                             ; preds = %8621
  br label %8623

8623:                                             ; preds = %8622
  %8624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8624, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8625 = call ptr @__errno_location() #10
  store i32 0, ptr %8625, align 4, !tbaa !5
  br label %8626

8626:                                             ; preds = %8623
  br label %8627

8627:                                             ; preds = %8626
  br label %8628

8628:                                             ; preds = %8627
  br label %8629

8629:                                             ; preds = %8628
  br label %8630

8630:                                             ; preds = %8629
  br label %8631

8631:                                             ; preds = %8630
  br label %8632

8632:                                             ; preds = %8631
  %8633 = load i32, ptr @test_count, align 4, !tbaa !5
  %8634 = add nsw i32 %8633, 1
  store i32 %8634, ptr @test_count, align 4, !tbaa !5
  %8635 = load ptr, ptr %135, align 8, !tbaa !9
  %8636 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %8635, ptr noundef %140)
  %8637 = icmp eq i32 %8636, -1
  br i1 %8637, label %8691, label %8638

8638:                                             ; preds = %8632
  br label %8639

8639:                                             ; preds = %8638
  br label %8640

8640:                                             ; preds = %8639
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #9
  %8641 = call ptr @__errno_location() #10
  %8642 = load i32, ptr %8641, align 4, !tbaa !5
  store i32 %8642, ptr %174, align 4, !tbaa !5
  %8643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8644 = call i32 @s2n_print_stacktrace(ptr noundef %8643)
  %8645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8646 = trunc i8 %8645 to i1
  br i1 %8646, label %8647, label %8669

8647:                                             ; preds = %8640
  %8648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8649 = call i32 @fileno(ptr noundef %8648) #9
  %8650 = call i32 @isatty(i32 noundef %8649) #9
  %8651 = icmp ne i32 %8650, 0
  br i1 %8651, label %8652, label %8669

8652:                                             ; preds = %8647
  %8653 = load i32, ptr %174, align 4, !tbaa !5
  %8654 = call ptr @__errno_location() #10
  store i32 %8653, ptr %8654, align 4, !tbaa !5
  %8655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8656 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8658, ptr noundef @.str.4)
  %8660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call ptr @s2n_strerror_debug(i32 noundef %8661, ptr noundef @.str.4)
  %8663 = call ptr @__errno_location() #10
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call ptr @strerror(i32 noundef %8664) #9
  %8666 = call ptr @__errno_location() #10
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8655, ptr noundef @.str.2, i32 noundef %8656, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 262, ptr noundef %8659, ptr noundef %8662, ptr noundef %8665, i32 noundef %8667) #9
  br label %8686

8669:                                             ; preds = %8647, %8640
  %8670 = load i32, ptr %174, align 4, !tbaa !5
  %8671 = call ptr @__errno_location() #10
  store i32 %8670, ptr %8671, align 4, !tbaa !5
  %8672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8673 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8675, ptr noundef @.str.4)
  %8677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8678 = load i32, ptr %8677, align 4, !tbaa !5
  %8679 = call ptr @s2n_strerror_debug(i32 noundef %8678, ptr noundef @.str.4)
  %8680 = call ptr @__errno_location() #10
  %8681 = load i32, ptr %8680, align 4, !tbaa !5
  %8682 = call ptr @strerror(i32 noundef %8681) #9
  %8683 = call ptr @__errno_location() #10
  %8684 = load i32, ptr %8683, align 4, !tbaa !5
  %8685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8672, ptr noundef @.str.5, i32 noundef %8673, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 262, ptr noundef %8676, ptr noundef %8679, ptr noundef %8682, i32 noundef %8684) #9
  br label %8686

8686:                                             ; preds = %8669, %8652
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #9
  br label %8687

8687:                                             ; preds = %8686
  br label %8688

8688:                                             ; preds = %8687
  call void @exit(i32 noundef 1) #11
  unreachable

8689:                                             ; No predecessors!
  br label %8690

8690:                                             ; preds = %8689
  br label %8691

8691:                                             ; preds = %8690, %8632
  br label %8692

8692:                                             ; preds = %8691
  br label %8693

8693:                                             ; preds = %8692
  br label %8694

8694:                                             ; preds = %8693
  %8695 = load i32, ptr @test_count, align 4, !tbaa !5
  %8696 = add nsw i32 %8695, 1
  store i32 %8696, ptr @test_count, align 4, !tbaa !5
  %8697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8698 = load i32, ptr %8697, align 4, !tbaa !5
  %8699 = icmp eq i32 %8698, 469762099
  br i1 %8699, label %8753, label %8700

8700:                                             ; preds = %8694
  br label %8701

8701:                                             ; preds = %8700
  br label %8702

8702:                                             ; preds = %8701
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #9
  %8703 = call ptr @__errno_location() #10
  %8704 = load i32, ptr %8703, align 4, !tbaa !5
  store i32 %8704, ptr %175, 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) #9
  %8712 = call i32 @isatty(i32 noundef %8711) #9
  %8713 = icmp ne i32 %8712, 0
  br i1 %8713, label %8714, label %8731

8714:                                             ; preds = %8709
  %8715 = load i32, ptr %175, align 4, !tbaa !5
  %8716 = call ptr @__errno_location() #10
  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() #10
  %8726 = load i32, ptr %8725, align 4, !tbaa !5
  %8727 = call ptr @strerror(i32 noundef %8726) #9
  %8728 = call ptr @__errno_location() #10
  %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.83, ptr noundef @.str.1, i32 noundef 262, ptr noundef %8721, ptr noundef %8724, ptr noundef %8727, i32 noundef %8729) #9
  br label %8748

8731:                                             ; preds = %8709, %8702
  %8732 = load i32, ptr %175, align 4, !tbaa !5
  %8733 = call ptr @__errno_location() #10
  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() #10
  %8743 = load i32, ptr %8742, align 4, !tbaa !5
  %8744 = call ptr @strerror(i32 noundef %8743) #9
  %8745 = call ptr @__errno_location() #10
  %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.83, ptr noundef @.str.1, i32 noundef 262, ptr noundef %8738, ptr noundef %8741, ptr noundef %8744, i32 noundef %8746) #9
  br label %8748

8748:                                             ; preds = %8731, %8714
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #9
  br label %8749

8749:                                             ; preds = %8748
  br label %8750

8750:                                             ; preds = %8749
  call void @exit(i32 noundef 1) #11
  unreachable

8751:                                             ; No predecessors!
  br label %8752

8752:                                             ; preds = %8751
  br label %8753

8753:                                             ; preds = %8752, %8694
  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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8760 = load i32, ptr %8759, align 4, !tbaa !5
  %8761 = call ptr @s2n_strerror_debug(i32 noundef %8760, ptr noundef @.str.4)
  %8762 = icmp eq ptr %8761, null
  br i1 %8762, label %8763, label %8816

8763:                                             ; preds = %8756
  br label %8764

8764:                                             ; preds = %8763
  br label %8765

8765:                                             ; preds = %8764
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #9
  %8766 = call ptr @__errno_location() #10
  %8767 = load i32, ptr %8766, align 4, !tbaa !5
  store i32 %8767, ptr %176, align 4, !tbaa !5
  %8768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8769 = call i32 @s2n_print_stacktrace(ptr noundef %8768)
  %8770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8771 = trunc i8 %8770 to i1
  br i1 %8771, label %8772, label %8794

8772:                                             ; preds = %8765
  %8773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8774 = call i32 @fileno(ptr noundef %8773) #9
  %8775 = call i32 @isatty(i32 noundef %8774) #9
  %8776 = icmp ne i32 %8775, 0
  br i1 %8776, label %8777, label %8794

8777:                                             ; preds = %8772
  %8778 = load i32, ptr %176, align 4, !tbaa !5
  %8779 = call ptr @__errno_location() #10
  store i32 %8778, ptr %8779, align 4, !tbaa !5
  %8780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8781 = load i32, ptr @test_count, align 4, !tbaa !5
  %8782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8783 = load i32, ptr %8782, align 4, !tbaa !5
  %8784 = call ptr @s2n_strerror(i32 noundef %8783, ptr noundef @.str.4)
  %8785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8786 = load i32, ptr %8785, align 4, !tbaa !5
  %8787 = call ptr @s2n_strerror_debug(i32 noundef %8786, ptr noundef @.str.4)
  %8788 = call ptr @__errno_location() #10
  %8789 = load i32, ptr %8788, align 4, !tbaa !5
  %8790 = call ptr @strerror(i32 noundef %8789) #9
  %8791 = call ptr @__errno_location() #10
  %8792 = load i32, ptr %8791, align 4, !tbaa !5
  %8793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8780, ptr noundef @.str.2, i32 noundef %8781, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 262, ptr noundef %8784, ptr noundef %8787, ptr noundef %8790, i32 noundef %8792) #9
  br label %8811

8794:                                             ; preds = %8772, %8765
  %8795 = load i32, ptr %176, align 4, !tbaa !5
  %8796 = call ptr @__errno_location() #10
  store i32 %8795, ptr %8796, align 4, !tbaa !5
  %8797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8798 = load i32, ptr @test_count, align 4, !tbaa !5
  %8799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8800 = load i32, ptr %8799, align 4, !tbaa !5
  %8801 = call ptr @s2n_strerror(i32 noundef %8800, ptr noundef @.str.4)
  %8802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8803 = load i32, ptr %8802, align 4, !tbaa !5
  %8804 = call ptr @s2n_strerror_debug(i32 noundef %8803, ptr noundef @.str.4)
  %8805 = call ptr @__errno_location() #10
  %8806 = load i32, ptr %8805, align 4, !tbaa !5
  %8807 = call ptr @strerror(i32 noundef %8806) #9
  %8808 = call ptr @__errno_location() #10
  %8809 = load i32, ptr %8808, align 4, !tbaa !5
  %8810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8797, ptr noundef @.str.5, i32 noundef %8798, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 262, ptr noundef %8801, ptr noundef %8804, ptr noundef %8807, i32 noundef %8809) #9
  br label %8811

8811:                                             ; preds = %8794, %8777
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #9
  br label %8812

8812:                                             ; preds = %8811
  br label %8813

8813:                                             ; preds = %8812
  call void @exit(i32 noundef 1) #11
  unreachable

8814:                                             ; No predecessors!
  br label %8815

8815:                                             ; preds = %8814
  br label %8816

8816:                                             ; preds = %8815, %8756
  br label %8817

8817:                                             ; preds = %8816
  br label %8818

8818:                                             ; preds = %8817
  br label %8819

8819:                                             ; preds = %8818
  br label %8820

8820:                                             ; preds = %8819
  br label %8821

8821:                                             ; preds = %8820
  %8822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8822, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8823 = call ptr @__errno_location() #10
  store i32 0, ptr %8823, align 4, !tbaa !5
  br label %8824

8824:                                             ; preds = %8821
  br label %8825

8825:                                             ; preds = %8824
  br label %8826

8826:                                             ; preds = %8825
  br label %8827

8827:                                             ; preds = %8826
  br label %8828

8828:                                             ; preds = %8827
  %8829 = load i32, ptr @test_count, align 4, !tbaa !5
  %8830 = add nsw i32 %8829, 1
  store i32 %8830, ptr @test_count, align 4, !tbaa !5
  %8831 = load ptr, ptr %135, align 8, !tbaa !9
  %8832 = call i32 @s2n_connection_free(ptr noundef %8831)
  %8833 = icmp eq i32 %8832, -1
  br i1 %8833, label %8834, label %8887

8834:                                             ; preds = %8828
  br label %8835

8835:                                             ; preds = %8834
  br label %8836

8836:                                             ; preds = %8835
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #9
  %8837 = call ptr @__errno_location() #10
  %8838 = load i32, ptr %8837, align 4, !tbaa !5
  store i32 %8838, ptr %177, align 4, !tbaa !5
  %8839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8840 = call i32 @s2n_print_stacktrace(ptr noundef %8839)
  %8841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8842 = trunc i8 %8841 to i1
  br i1 %8842, label %8843, label %8865

8843:                                             ; preds = %8836
  %8844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8845 = call i32 @fileno(ptr noundef %8844) #9
  %8846 = call i32 @isatty(i32 noundef %8845) #9
  %8847 = icmp ne i32 %8846, 0
  br i1 %8847, label %8848, label %8865

8848:                                             ; preds = %8843
  %8849 = load i32, ptr %177, align 4, !tbaa !5
  %8850 = call ptr @__errno_location() #10
  store i32 %8849, ptr %8850, align 4, !tbaa !5
  %8851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8852 = load i32, ptr @test_count, align 4, !tbaa !5
  %8853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call ptr @s2n_strerror(i32 noundef %8854, ptr noundef @.str.4)
  %8856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8857 = load i32, ptr %8856, align 4, !tbaa !5
  %8858 = call ptr @s2n_strerror_debug(i32 noundef %8857, ptr noundef @.str.4)
  %8859 = call ptr @__errno_location() #10
  %8860 = load i32, ptr %8859, align 4, !tbaa !5
  %8861 = call ptr @strerror(i32 noundef %8860) #9
  %8862 = call ptr @__errno_location() #10
  %8863 = load i32, ptr %8862, align 4, !tbaa !5
  %8864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8851, ptr noundef @.str.2, i32 noundef %8852, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 264, ptr noundef %8855, ptr noundef %8858, ptr noundef %8861, i32 noundef %8863) #9
  br label %8882

8865:                                             ; preds = %8843, %8836
  %8866 = load i32, ptr %177, align 4, !tbaa !5
  %8867 = call ptr @__errno_location() #10
  store i32 %8866, ptr %8867, align 4, !tbaa !5
  %8868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8869 = load i32, ptr @test_count, align 4, !tbaa !5
  %8870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8871 = load i32, ptr %8870, align 4, !tbaa !5
  %8872 = call ptr @s2n_strerror(i32 noundef %8871, ptr noundef @.str.4)
  %8873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8874 = load i32, ptr %8873, align 4, !tbaa !5
  %8875 = call ptr @s2n_strerror_debug(i32 noundef %8874, ptr noundef @.str.4)
  %8876 = call ptr @__errno_location() #10
  %8877 = load i32, ptr %8876, align 4, !tbaa !5
  %8878 = call ptr @strerror(i32 noundef %8877) #9
  %8879 = call ptr @__errno_location() #10
  %8880 = load i32, ptr %8879, align 4, !tbaa !5
  %8881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8868, ptr noundef @.str.5, i32 noundef %8869, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 264, ptr noundef %8872, ptr noundef %8875, ptr noundef %8878, i32 noundef %8880) #9
  br label %8882

8882:                                             ; preds = %8865, %8848
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #9
  br label %8883

8883:                                             ; preds = %8882
  br label %8884

8884:                                             ; preds = %8883
  call void @exit(i32 noundef 1) #11
  unreachable

8885:                                             ; No predecessors!
  br label %8886

8886:                                             ; preds = %8885
  br label %8887

8887:                                             ; preds = %8886, %8828
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888
  %8890 = call i32 @s2n_config_ptr_free(ptr noundef %156)
  %8891 = getelementptr inbounds %struct.s2n_result, ptr %178, i32 0, i32 0
  store i32 %8890, ptr %8891, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #9
  store ptr null, ptr %179, align 8, !tbaa !9
  br label %8892

8892:                                             ; preds = %8889
  %8893 = load i32, ptr @test_count, align 4, !tbaa !5
  %8894 = add nsw i32 %8893, 1
  store i32 %8894, ptr @test_count, align 4, !tbaa !5
  %8895 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8895, ptr %179, align 8, !tbaa !9
  %8896 = icmp eq ptr %8895, null
  br i1 %8896, label %8897, label %8950

8897:                                             ; preds = %8892
  br label %8898

8898:                                             ; preds = %8897
  br label %8899

8899:                                             ; preds = %8898
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #9
  %8900 = call ptr @__errno_location() #10
  %8901 = load i32, ptr %8900, align 4, !tbaa !5
  store i32 %8901, ptr %180, align 4, !tbaa !5
  %8902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8903 = call i32 @s2n_print_stacktrace(ptr noundef %8902)
  %8904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8905 = trunc i8 %8904 to i1
  br i1 %8905, label %8906, label %8928

8906:                                             ; preds = %8899
  %8907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8908 = call i32 @fileno(ptr noundef %8907) #9
  %8909 = call i32 @isatty(i32 noundef %8908) #9
  %8910 = icmp ne i32 %8909, 0
  br i1 %8910, label %8911, label %8928

8911:                                             ; preds = %8906
  %8912 = load i32, ptr %180, align 4, !tbaa !5
  %8913 = call ptr @__errno_location() #10
  store i32 %8912, ptr %8913, align 4, !tbaa !5
  %8914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8915 = load i32, ptr @test_count, align 4, !tbaa !5
  %8916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @s2n_strerror(i32 noundef %8917, ptr noundef @.str.4)
  %8919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call ptr @s2n_strerror_debug(i32 noundef %8920, ptr noundef @.str.4)
  %8922 = call ptr @__errno_location() #10
  %8923 = load i32, ptr %8922, align 4, !tbaa !5
  %8924 = call ptr @strerror(i32 noundef %8923) #9
  %8925 = call ptr @__errno_location() #10
  %8926 = load i32, ptr %8925, align 4, !tbaa !5
  %8927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8914, ptr noundef @.str.2, i32 noundef %8915, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 270, ptr noundef %8918, ptr noundef %8921, ptr noundef %8924, i32 noundef %8926) #9
  br label %8945

8928:                                             ; preds = %8906, %8899
  %8929 = load i32, ptr %180, align 4, !tbaa !5
  %8930 = call ptr @__errno_location() #10
  store i32 %8929, ptr %8930, align 4, !tbaa !5
  %8931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8932 = load i32, ptr @test_count, align 4, !tbaa !5
  %8933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call ptr @s2n_strerror(i32 noundef %8934, ptr noundef @.str.4)
  %8936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call ptr @s2n_strerror_debug(i32 noundef %8937, ptr noundef @.str.4)
  %8939 = call ptr @__errno_location() #10
  %8940 = load i32, ptr %8939, align 4, !tbaa !5
  %8941 = call ptr @strerror(i32 noundef %8940) #9
  %8942 = call ptr @__errno_location() #10
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  %8944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8931, ptr noundef @.str.5, i32 noundef %8932, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 270, ptr noundef %8935, ptr noundef %8938, ptr noundef %8941, i32 noundef %8943) #9
  br label %8945

8945:                                             ; preds = %8928, %8911
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #9
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  call void @exit(i32 noundef 1) #11
  unreachable

8948:                                             ; No predecessors!
  br label %8949

8949:                                             ; preds = %8948
  br label %8950

8950:                                             ; preds = %8949, %8892
  br label %8951

8951:                                             ; preds = %8950
  br label %8952

8952:                                             ; preds = %8951
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #9
  store ptr null, ptr %181, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 5, ptr %182) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %182, ptr align 1 @__const.main.no_curve, i64 5, i1 false)
  br label %8953

8953:                                             ; preds = %8952
  %8954 = load i32, ptr @test_count, align 4, !tbaa !5
  %8955 = add nsw i32 %8954, 1
  store i32 %8955, ptr @test_count, align 4, !tbaa !5
  %8956 = load ptr, ptr %179, align 8, !tbaa !9
  %8957 = call ptr @s2n_connection_get_curve(ptr noundef %8956)
  store ptr %8957, ptr %181, align 8, !tbaa !9
  %8958 = icmp eq ptr %8957, null
  br i1 %8958, label %8959, label %9012

8959:                                             ; preds = %8953
  br label %8960

8960:                                             ; preds = %8959
  br label %8961

8961:                                             ; preds = %8960
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #9
  %8962 = call ptr @__errno_location() #10
  %8963 = load i32, ptr %8962, align 4, !tbaa !5
  store i32 %8963, ptr %183, align 4, !tbaa !5
  %8964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8965 = call i32 @s2n_print_stacktrace(ptr noundef %8964)
  %8966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8967 = trunc i8 %8966 to i1
  br i1 %8967, label %8968, label %8990

8968:                                             ; preds = %8961
  %8969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8970 = call i32 @fileno(ptr noundef %8969) #9
  %8971 = call i32 @isatty(i32 noundef %8970) #9
  %8972 = icmp ne i32 %8971, 0
  br i1 %8972, label %8973, label %8990

8973:                                             ; preds = %8968
  %8974 = load i32, ptr %183, align 4, !tbaa !5
  %8975 = call ptr @__errno_location() #10
  store i32 %8974, ptr %8975, align 4, !tbaa !5
  %8976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8977 = load i32, ptr @test_count, align 4, !tbaa !5
  %8978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call ptr @s2n_strerror(i32 noundef %8979, ptr noundef @.str.4)
  %8981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8982 = load i32, ptr %8981, align 4, !tbaa !5
  %8983 = call ptr @s2n_strerror_debug(i32 noundef %8982, ptr noundef @.str.4)
  %8984 = call ptr @__errno_location() #10
  %8985 = load i32, ptr %8984, align 4, !tbaa !5
  %8986 = call ptr @strerror(i32 noundef %8985) #9
  %8987 = call ptr @__errno_location() #10
  %8988 = load i32, ptr %8987, align 4, !tbaa !5
  %8989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8976, ptr noundef @.str.2, i32 noundef %8977, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 275, ptr noundef %8980, ptr noundef %8983, ptr noundef %8986, i32 noundef %8988) #9
  br label %9007

8990:                                             ; preds = %8968, %8961
  %8991 = load i32, ptr %183, align 4, !tbaa !5
  %8992 = call ptr @__errno_location() #10
  store i32 %8991, ptr %8992, align 4, !tbaa !5
  %8993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8994 = load i32, ptr @test_count, align 4, !tbaa !5
  %8995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8996 = load i32, ptr %8995, align 4, !tbaa !5
  %8997 = call ptr @s2n_strerror(i32 noundef %8996, ptr noundef @.str.4)
  %8998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8999 = load i32, ptr %8998, align 4, !tbaa !5
  %9000 = call ptr @s2n_strerror_debug(i32 noundef %8999, ptr noundef @.str.4)
  %9001 = call ptr @__errno_location() #10
  %9002 = load i32, ptr %9001, align 4, !tbaa !5
  %9003 = call ptr @strerror(i32 noundef %9002) #9
  %9004 = call ptr @__errno_location() #10
  %9005 = load i32, ptr %9004, align 4, !tbaa !5
  %9006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8993, ptr noundef @.str.5, i32 noundef %8994, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 275, ptr noundef %8997, ptr noundef %9000, ptr noundef %9003, i32 noundef %9005) #9
  br label %9007

9007:                                             ; preds = %8990, %8973
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #9
  br label %9008

9008:                                             ; preds = %9007
  br label %9009

9009:                                             ; preds = %9008
  call void @exit(i32 noundef 1) #11
  unreachable

9010:                                             ; No predecessors!
  br label %9011

9011:                                             ; preds = %9010
  br label %9012

9012:                                             ; preds = %9011, %8953
  br label %9013

9013:                                             ; preds = %9012
  br label %9014

9014:                                             ; preds = %9013
  br label %9015

9015:                                             ; preds = %9014
  %9016 = getelementptr inbounds [5 x i8], ptr %182, i64 0, i64 0
  %9017 = call i64 @strlen(ptr noundef %9016) #12
  %9018 = icmp ne i64 %9017, 0
  br i1 %9018, label %9019, label %9085

9019:                                             ; preds = %9015
  br label %9020

9020:                                             ; preds = %9019
  %9021 = load i32, ptr @test_count, align 4, !tbaa !5
  %9022 = add nsw i32 %9021, 1
  store i32 %9022, ptr @test_count, align 4, !tbaa !5
  %9023 = load ptr, ptr %181, align 8, !tbaa !9
  %9024 = getelementptr inbounds [5 x i8], ptr %182, i64 0, i64 0
  %9025 = getelementptr inbounds [5 x i8], ptr %182, i64 0, i64 0
  %9026 = call i64 @strlen(ptr noundef %9025) #12
  %9027 = call i32 @memcmp(ptr noundef %9023, ptr noundef %9024, i64 noundef %9026) #12
  %9028 = icmp eq i32 %9027, 0
  br i1 %9028, label %9082, label %9029

9029:                                             ; preds = %9020
  br label %9030

9030:                                             ; preds = %9029
  br label %9031

9031:                                             ; preds = %9030
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #9
  %9032 = call ptr @__errno_location() #10
  %9033 = load i32, ptr %9032, align 4, !tbaa !5
  store i32 %9033, ptr %184, align 4, !tbaa !5
  %9034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9035 = call i32 @s2n_print_stacktrace(ptr noundef %9034)
  %9036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9037 = trunc i8 %9036 to i1
  br i1 %9037, label %9038, label %9060

9038:                                             ; preds = %9031
  %9039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9040 = call i32 @fileno(ptr noundef %9039) #9
  %9041 = call i32 @isatty(i32 noundef %9040) #9
  %9042 = icmp ne i32 %9041, 0
  br i1 %9042, label %9043, label %9060

9043:                                             ; preds = %9038
  %9044 = load i32, ptr %184, align 4, !tbaa !5
  %9045 = call ptr @__errno_location() #10
  store i32 %9044, ptr %9045, align 4, !tbaa !5
  %9046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9047 = load i32, ptr @test_count, align 4, !tbaa !5
  %9048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9049 = load i32, ptr %9048, align 4, !tbaa !5
  %9050 = call ptr @s2n_strerror(i32 noundef %9049, ptr noundef @.str.4)
  %9051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9052 = load i32, ptr %9051, align 4, !tbaa !5
  %9053 = call ptr @s2n_strerror_debug(i32 noundef %9052, ptr noundef @.str.4)
  %9054 = call ptr @__errno_location() #10
  %9055 = load i32, ptr %9054, align 4, !tbaa !5
  %9056 = call ptr @strerror(i32 noundef %9055) #9
  %9057 = call ptr @__errno_location() #10
  %9058 = load i32, ptr %9057, align 4, !tbaa !5
  %9059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9046, ptr noundef @.str.2, i32 noundef %9047, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 276, ptr noundef %9050, ptr noundef %9053, ptr noundef %9056, i32 noundef %9058) #9
  br label %9077

9060:                                             ; preds = %9038, %9031
  %9061 = load i32, ptr %184, align 4, !tbaa !5
  %9062 = call ptr @__errno_location() #10
  store i32 %9061, ptr %9062, align 4, !tbaa !5
  %9063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9064 = load i32, ptr @test_count, align 4, !tbaa !5
  %9065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  %9067 = call ptr @s2n_strerror(i32 noundef %9066, ptr noundef @.str.4)
  %9068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9069 = load i32, ptr %9068, align 4, !tbaa !5
  %9070 = call ptr @s2n_strerror_debug(i32 noundef %9069, ptr noundef @.str.4)
  %9071 = call ptr @__errno_location() #10
  %9072 = load i32, ptr %9071, align 4, !tbaa !5
  %9073 = call ptr @strerror(i32 noundef %9072) #9
  %9074 = call ptr @__errno_location() #10
  %9075 = load i32, ptr %9074, align 4, !tbaa !5
  %9076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9063, ptr noundef @.str.5, i32 noundef %9064, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 276, ptr noundef %9067, ptr noundef %9070, ptr noundef %9073, i32 noundef %9075) #9
  br label %9077

9077:                                             ; preds = %9060, %9043
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #9
  br label %9078

9078:                                             ; preds = %9077
  br label %9079

9079:                                             ; preds = %9078
  call void @exit(i32 noundef 1) #11
  unreachable

9080:                                             ; No predecessors!
  br label %9081

9081:                                             ; preds = %9080
  br label %9082

9082:                                             ; preds = %9081, %9020
  br label %9083

9083:                                             ; preds = %9082
  br label %9084

9084:                                             ; preds = %9083
  br label %9085

9085:                                             ; preds = %9084, %9015
  br label %9086

9086:                                             ; preds = %9085
  br label %9087

9087:                                             ; preds = %9086
  br label %9088

9088:                                             ; preds = %9087
  br label %9089

9089:                                             ; preds = %9088
  br label %9090

9090:                                             ; preds = %9089
  %9091 = load i32, ptr @test_count, align 4, !tbaa !5
  %9092 = add nsw i32 %9091, 1
  store i32 %9092, ptr @test_count, align 4, !tbaa !5
  %9093 = load ptr, ptr %179, align 8, !tbaa !9
  %9094 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef %9093, ptr noundef %181)
  %9095 = icmp eq i32 %9094, -1
  br i1 %9095, label %9149, label %9096

9096:                                             ; preds = %9090
  br label %9097

9097:                                             ; preds = %9096
  br label %9098

9098:                                             ; preds = %9097
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #9
  %9099 = call ptr @__errno_location() #10
  %9100 = load i32, ptr %9099, align 4, !tbaa !5
  store i32 %9100, ptr %185, align 4, !tbaa !5
  %9101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9102 = call i32 @s2n_print_stacktrace(ptr noundef %9101)
  %9103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9104 = trunc i8 %9103 to i1
  br i1 %9104, label %9105, label %9127

9105:                                             ; preds = %9098
  %9106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9107 = call i32 @fileno(ptr noundef %9106) #9
  %9108 = call i32 @isatty(i32 noundef %9107) #9
  %9109 = icmp ne i32 %9108, 0
  br i1 %9109, label %9110, label %9127

9110:                                             ; preds = %9105
  %9111 = load i32, ptr %185, align 4, !tbaa !5
  %9112 = call ptr @__errno_location() #10
  store i32 %9111, ptr %9112, align 4, !tbaa !5
  %9113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9114 = load i32, ptr @test_count, align 4, !tbaa !5
  %9115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9116 = load i32, ptr %9115, align 4, !tbaa !5
  %9117 = call ptr @s2n_strerror(i32 noundef %9116, ptr noundef @.str.4)
  %9118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9119 = load i32, ptr %9118, align 4, !tbaa !5
  %9120 = call ptr @s2n_strerror_debug(i32 noundef %9119, ptr noundef @.str.4)
  %9121 = call ptr @__errno_location() #10
  %9122 = load i32, ptr %9121, align 4, !tbaa !5
  %9123 = call ptr @strerror(i32 noundef %9122) #9
  %9124 = call ptr @__errno_location() #10
  %9125 = load i32, ptr %9124, align 4, !tbaa !5
  %9126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9113, ptr noundef @.str.2, i32 noundef %9114, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 277, ptr noundef %9117, ptr noundef %9120, ptr noundef %9123, i32 noundef %9125) #9
  br label %9144

9127:                                             ; preds = %9105, %9098
  %9128 = load i32, ptr %185, align 4, !tbaa !5
  %9129 = call ptr @__errno_location() #10
  store i32 %9128, ptr %9129, align 4, !tbaa !5
  %9130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9131 = load i32, ptr @test_count, align 4, !tbaa !5
  %9132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9133 = load i32, ptr %9132, align 4, !tbaa !5
  %9134 = call ptr @s2n_strerror(i32 noundef %9133, ptr noundef @.str.4)
  %9135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9136 = load i32, ptr %9135, align 4, !tbaa !5
  %9137 = call ptr @s2n_strerror_debug(i32 noundef %9136, ptr noundef @.str.4)
  %9138 = call ptr @__errno_location() #10
  %9139 = load i32, ptr %9138, align 4, !tbaa !5
  %9140 = call ptr @strerror(i32 noundef %9139) #9
  %9141 = call ptr @__errno_location() #10
  %9142 = load i32, ptr %9141, align 4, !tbaa !5
  %9143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9130, ptr noundef @.str.5, i32 noundef %9131, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 277, ptr noundef %9134, ptr noundef %9137, ptr noundef %9140, i32 noundef %9142) #9
  br label %9144

9144:                                             ; preds = %9127, %9110
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #9
  br label %9145

9145:                                             ; preds = %9144
  br label %9146

9146:                                             ; preds = %9145
  call void @exit(i32 noundef 1) #11
  unreachable

9147:                                             ; No predecessors!
  br label %9148

9148:                                             ; preds = %9147
  br label %9149

9149:                                             ; preds = %9148, %9090
  br label %9150

9150:                                             ; preds = %9149
  br label %9151

9151:                                             ; preds = %9150
  br label %9152

9152:                                             ; preds = %9151
  %9153 = load i32, ptr @test_count, align 4, !tbaa !5
  %9154 = add nsw i32 %9153, 1
  store i32 %9154, ptr @test_count, align 4, !tbaa !5
  %9155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9156 = load i32, ptr %9155, align 4, !tbaa !5
  %9157 = icmp eq i32 %9156, 469762112
  br i1 %9157, label %9211, label %9158

9158:                                             ; preds = %9152
  br label %9159

9159:                                             ; preds = %9158
  br label %9160

9160:                                             ; preds = %9159
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #9
  %9161 = call ptr @__errno_location() #10
  %9162 = load i32, ptr %9161, align 4, !tbaa !5
  store i32 %9162, ptr %186, align 4, !tbaa !5
  %9163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9164 = call i32 @s2n_print_stacktrace(ptr noundef %9163)
  %9165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9166 = trunc i8 %9165 to i1
  br i1 %9166, label %9167, label %9189

9167:                                             ; preds = %9160
  %9168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9169 = call i32 @fileno(ptr noundef %9168) #9
  %9170 = call i32 @isatty(i32 noundef %9169) #9
  %9171 = icmp ne i32 %9170, 0
  br i1 %9171, label %9172, label %9189

9172:                                             ; preds = %9167
  %9173 = load i32, ptr %186, align 4, !tbaa !5
  %9174 = call ptr @__errno_location() #10
  store i32 %9173, ptr %9174, align 4, !tbaa !5
  %9175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9176 = load i32, ptr @test_count, align 4, !tbaa !5
  %9177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9178 = load i32, ptr %9177, align 4, !tbaa !5
  %9179 = call ptr @s2n_strerror(i32 noundef %9178, ptr noundef @.str.4)
  %9180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9181 = load i32, ptr %9180, align 4, !tbaa !5
  %9182 = call ptr @s2n_strerror_debug(i32 noundef %9181, ptr noundef @.str.4)
  %9183 = call ptr @__errno_location() #10
  %9184 = load i32, ptr %9183, align 4, !tbaa !5
  %9185 = call ptr @strerror(i32 noundef %9184) #9
  %9186 = call ptr @__errno_location() #10
  %9187 = load i32, ptr %9186, align 4, !tbaa !5
  %9188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9175, ptr noundef @.str.2, i32 noundef %9176, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 277, ptr noundef %9179, ptr noundef %9182, ptr noundef %9185, i32 noundef %9187) #9
  br label %9206

9189:                                             ; preds = %9167, %9160
  %9190 = load i32, ptr %186, align 4, !tbaa !5
  %9191 = call ptr @__errno_location() #10
  store i32 %9190, ptr %9191, align 4, !tbaa !5
  %9192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9193 = load i32, ptr @test_count, align 4, !tbaa !5
  %9194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call ptr @s2n_strerror(i32 noundef %9195, ptr noundef @.str.4)
  %9197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call ptr @s2n_strerror_debug(i32 noundef %9198, ptr noundef @.str.4)
  %9200 = call ptr @__errno_location() #10
  %9201 = load i32, ptr %9200, align 4, !tbaa !5
  %9202 = call ptr @strerror(i32 noundef %9201) #9
  %9203 = call ptr @__errno_location() #10
  %9204 = load i32, ptr %9203, align 4, !tbaa !5
  %9205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9192, ptr noundef @.str.5, i32 noundef %9193, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 277, ptr noundef %9196, ptr noundef %9199, ptr noundef %9202, i32 noundef %9204) #9
  br label %9206

9206:                                             ; preds = %9189, %9172
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #9
  br label %9207

9207:                                             ; preds = %9206
  br label %9208

9208:                                             ; preds = %9207
  call void @exit(i32 noundef 1) #11
  unreachable

9209:                                             ; No predecessors!
  br label %9210

9210:                                             ; preds = %9209
  br label %9211

9211:                                             ; preds = %9210, %9152
  br label %9212

9212:                                             ; preds = %9211
  br label %9213

9213:                                             ; preds = %9212
  br label %9214

9214:                                             ; preds = %9213
  %9215 = load i32, ptr @test_count, align 4, !tbaa !5
  %9216 = add nsw i32 %9215, 1
  store i32 %9216, ptr @test_count, align 4, !tbaa !5
  %9217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9218 = load i32, ptr %9217, align 4, !tbaa !5
  %9219 = call ptr @s2n_strerror_debug(i32 noundef %9218, ptr noundef @.str.4)
  %9220 = icmp eq ptr %9219, null
  br i1 %9220, label %9221, label %9274

9221:                                             ; preds = %9214
  br label %9222

9222:                                             ; preds = %9221
  br label %9223

9223:                                             ; preds = %9222
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #9
  %9224 = call ptr @__errno_location() #10
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  store i32 %9225, ptr %187, align 4, !tbaa !5
  %9226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9227 = call i32 @s2n_print_stacktrace(ptr noundef %9226)
  %9228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9229 = trunc i8 %9228 to i1
  br i1 %9229, label %9230, label %9252

9230:                                             ; preds = %9223
  %9231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9232 = call i32 @fileno(ptr noundef %9231) #9
  %9233 = call i32 @isatty(i32 noundef %9232) #9
  %9234 = icmp ne i32 %9233, 0
  br i1 %9234, label %9235, label %9252

9235:                                             ; preds = %9230
  %9236 = load i32, ptr %187, align 4, !tbaa !5
  %9237 = call ptr @__errno_location() #10
  store i32 %9236, ptr %9237, align 4, !tbaa !5
  %9238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9239 = load i32, ptr @test_count, align 4, !tbaa !5
  %9240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @s2n_strerror(i32 noundef %9241, ptr noundef @.str.4)
  %9243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror_debug(i32 noundef %9244, ptr noundef @.str.4)
  %9246 = call ptr @__errno_location() #10
  %9247 = load i32, ptr %9246, align 4, !tbaa !5
  %9248 = call ptr @strerror(i32 noundef %9247) #9
  %9249 = call ptr @__errno_location() #10
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9238, ptr noundef @.str.2, i32 noundef %9239, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 277, ptr noundef %9242, ptr noundef %9245, ptr noundef %9248, i32 noundef %9250) #9
  br label %9269

9252:                                             ; preds = %9230, %9223
  %9253 = load i32, ptr %187, align 4, !tbaa !5
  %9254 = call ptr @__errno_location() #10
  store i32 %9253, ptr %9254, align 4, !tbaa !5
  %9255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9256 = load i32, ptr @test_count, align 4, !tbaa !5
  %9257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9258 = load i32, ptr %9257, align 4, !tbaa !5
  %9259 = call ptr @s2n_strerror(i32 noundef %9258, ptr noundef @.str.4)
  %9260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9261 = load i32, ptr %9260, align 4, !tbaa !5
  %9262 = call ptr @s2n_strerror_debug(i32 noundef %9261, ptr noundef @.str.4)
  %9263 = call ptr @__errno_location() #10
  %9264 = load i32, ptr %9263, align 4, !tbaa !5
  %9265 = call ptr @strerror(i32 noundef %9264) #9
  %9266 = call ptr @__errno_location() #10
  %9267 = load i32, ptr %9266, align 4, !tbaa !5
  %9268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9255, ptr noundef @.str.5, i32 noundef %9256, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 277, ptr noundef %9259, ptr noundef %9262, ptr noundef %9265, i32 noundef %9267) #9
  br label %9269

9269:                                             ; preds = %9252, %9235
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #9
  br label %9270

9270:                                             ; preds = %9269
  br label %9271

9271:                                             ; preds = %9270
  call void @exit(i32 noundef 1) #11
  unreachable

9272:                                             ; No predecessors!
  br label %9273

9273:                                             ; preds = %9272
  br label %9274

9274:                                             ; preds = %9273, %9214
  br label %9275

9275:                                             ; preds = %9274
  br label %9276

9276:                                             ; preds = %9275
  br label %9277

9277:                                             ; preds = %9276
  br label %9278

9278:                                             ; preds = %9277
  br label %9279

9279:                                             ; preds = %9278
  %9280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9280, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9281 = call ptr @__errno_location() #10
  store i32 0, ptr %9281, align 4, !tbaa !5
  br label %9282

9282:                                             ; preds = %9279
  br label %9283

9283:                                             ; preds = %9282
  br label %9284

9284:                                             ; preds = %9283
  br label %9285

9285:                                             ; preds = %9284
  %9286 = load ptr, ptr %179, align 8, !tbaa !9
  %9287 = getelementptr inbounds %struct.s2n_connection, ptr %9286, i32 0, i32 23
  store i8 34, ptr %9287, align 4, !tbaa !52
  %9288 = load ptr, ptr %179, align 8, !tbaa !9
  %9289 = getelementptr inbounds %struct.s2n_connection, ptr %9288, i32 0, i32 31
  %9290 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9289, i32 0, i32 1
  %9291 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9290, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp256r1, ptr %9291, align 8, !tbaa !53
  br label %9292

9292:                                             ; preds = %9285
  %9293 = load i32, ptr @test_count, align 4, !tbaa !5
  %9294 = add nsw i32 %9293, 1
  store i32 %9294, ptr @test_count, align 4, !tbaa !5
  %9295 = load ptr, ptr %179, align 8, !tbaa !9
  %9296 = call ptr @s2n_connection_get_curve(ptr noundef %9295)
  store ptr %9296, ptr %181, align 8, !tbaa !9
  %9297 = icmp eq ptr %9296, null
  br i1 %9297, label %9298, label %9351

9298:                                             ; preds = %9292
  br label %9299

9299:                                             ; preds = %9298
  br label %9300

9300:                                             ; preds = %9299
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #9
  %9301 = call ptr @__errno_location() #10
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  store i32 %9302, ptr %188, align 4, !tbaa !5
  %9303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9304 = call i32 @s2n_print_stacktrace(ptr noundef %9303)
  %9305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9306 = trunc i8 %9305 to i1
  br i1 %9306, label %9307, label %9329

9307:                                             ; preds = %9300
  %9308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9309 = call i32 @fileno(ptr noundef %9308) #9
  %9310 = call i32 @isatty(i32 noundef %9309) #9
  %9311 = icmp ne i32 %9310, 0
  br i1 %9311, label %9312, label %9329

9312:                                             ; preds = %9307
  %9313 = load i32, ptr %188, align 4, !tbaa !5
  %9314 = call ptr @__errno_location() #10
  store i32 %9313, ptr %9314, align 4, !tbaa !5
  %9315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9316 = load i32, ptr @test_count, align 4, !tbaa !5
  %9317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9318 = load i32, ptr %9317, align 4, !tbaa !5
  %9319 = call ptr @s2n_strerror(i32 noundef %9318, ptr noundef @.str.4)
  %9320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9321 = load i32, ptr %9320, align 4, !tbaa !5
  %9322 = call ptr @s2n_strerror_debug(i32 noundef %9321, ptr noundef @.str.4)
  %9323 = call ptr @__errno_location() #10
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  %9325 = call ptr @strerror(i32 noundef %9324) #9
  %9326 = call ptr @__errno_location() #10
  %9327 = load i32, ptr %9326, align 4, !tbaa !5
  %9328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9315, ptr noundef @.str.2, i32 noundef %9316, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 282, ptr noundef %9319, ptr noundef %9322, ptr noundef %9325, i32 noundef %9327) #9
  br label %9346

9329:                                             ; preds = %9307, %9300
  %9330 = load i32, ptr %188, align 4, !tbaa !5
  %9331 = call ptr @__errno_location() #10
  store i32 %9330, ptr %9331, align 4, !tbaa !5
  %9332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9333 = load i32, ptr @test_count, align 4, !tbaa !5
  %9334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9335 = load i32, ptr %9334, align 4, !tbaa !5
  %9336 = call ptr @s2n_strerror(i32 noundef %9335, ptr noundef @.str.4)
  %9337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9338 = load i32, ptr %9337, align 4, !tbaa !5
  %9339 = call ptr @s2n_strerror_debug(i32 noundef %9338, ptr noundef @.str.4)
  %9340 = call ptr @__errno_location() #10
  %9341 = load i32, ptr %9340, align 4, !tbaa !5
  %9342 = call ptr @strerror(i32 noundef %9341) #9
  %9343 = call ptr @__errno_location() #10
  %9344 = load i32, ptr %9343, align 4, !tbaa !5
  %9345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9332, ptr noundef @.str.5, i32 noundef %9333, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 282, ptr noundef %9336, ptr noundef %9339, ptr noundef %9342, i32 noundef %9344) #9
  br label %9346

9346:                                             ; preds = %9329, %9312
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #9
  br label %9347

9347:                                             ; preds = %9346
  br label %9348

9348:                                             ; preds = %9347
  call void @exit(i32 noundef 1) #11
  unreachable

9349:                                             ; No predecessors!
  br label %9350

9350:                                             ; preds = %9349
  br label %9351

9351:                                             ; preds = %9350, %9292
  br label %9352

9352:                                             ; preds = %9351
  br label %9353

9353:                                             ; preds = %9352
  br label %9354

9354:                                             ; preds = %9353
  %9355 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9356 = call i64 @strlen(ptr noundef %9355) #12
  %9357 = icmp ne i64 %9356, 0
  br i1 %9357, label %9358, label %9424

9358:                                             ; preds = %9354
  br label %9359

9359:                                             ; preds = %9358
  %9360 = load i32, ptr @test_count, align 4, !tbaa !5
  %9361 = add nsw i32 %9360, 1
  store i32 %9361, ptr @test_count, align 4, !tbaa !5
  %9362 = load ptr, ptr %181, align 8, !tbaa !9
  %9363 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9364 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9365 = call i64 @strlen(ptr noundef %9364) #12
  %9366 = call i32 @memcmp(ptr noundef %9362, ptr noundef %9363, i64 noundef %9365) #12
  %9367 = icmp eq i32 %9366, 0
  br i1 %9367, label %9421, label %9368

9368:                                             ; preds = %9359
  br label %9369

9369:                                             ; preds = %9368
  br label %9370

9370:                                             ; preds = %9369
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #9
  %9371 = call ptr @__errno_location() #10
  %9372 = load i32, ptr %9371, align 4, !tbaa !5
  store i32 %9372, ptr %189, align 4, !tbaa !5
  %9373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9374 = call i32 @s2n_print_stacktrace(ptr noundef %9373)
  %9375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9376 = trunc i8 %9375 to i1
  br i1 %9376, label %9377, label %9399

9377:                                             ; preds = %9370
  %9378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9379 = call i32 @fileno(ptr noundef %9378) #9
  %9380 = call i32 @isatty(i32 noundef %9379) #9
  %9381 = icmp ne i32 %9380, 0
  br i1 %9381, label %9382, label %9399

9382:                                             ; preds = %9377
  %9383 = load i32, ptr %189, align 4, !tbaa !5
  %9384 = call ptr @__errno_location() #10
  store i32 %9383, ptr %9384, align 4, !tbaa !5
  %9385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9386 = load i32, ptr @test_count, align 4, !tbaa !5
  %9387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9388 = load i32, ptr %9387, align 4, !tbaa !5
  %9389 = call ptr @s2n_strerror(i32 noundef %9388, ptr noundef @.str.4)
  %9390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9391 = load i32, ptr %9390, align 4, !tbaa !5
  %9392 = call ptr @s2n_strerror_debug(i32 noundef %9391, ptr noundef @.str.4)
  %9393 = call ptr @__errno_location() #10
  %9394 = load i32, ptr %9393, align 4, !tbaa !5
  %9395 = call ptr @strerror(i32 noundef %9394) #9
  %9396 = call ptr @__errno_location() #10
  %9397 = load i32, ptr %9396, align 4, !tbaa !5
  %9398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9385, ptr noundef @.str.2, i32 noundef %9386, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 283, ptr noundef %9389, ptr noundef %9392, ptr noundef %9395, i32 noundef %9397) #9
  br label %9416

9399:                                             ; preds = %9377, %9370
  %9400 = load i32, ptr %189, align 4, !tbaa !5
  %9401 = call ptr @__errno_location() #10
  store i32 %9400, ptr %9401, align 4, !tbaa !5
  %9402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9403 = load i32, ptr @test_count, align 4, !tbaa !5
  %9404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9405 = load i32, ptr %9404, align 4, !tbaa !5
  %9406 = call ptr @s2n_strerror(i32 noundef %9405, ptr noundef @.str.4)
  %9407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9408 = load i32, ptr %9407, align 4, !tbaa !5
  %9409 = call ptr @s2n_strerror_debug(i32 noundef %9408, ptr noundef @.str.4)
  %9410 = call ptr @__errno_location() #10
  %9411 = load i32, ptr %9410, align 4, !tbaa !5
  %9412 = call ptr @strerror(i32 noundef %9411) #9
  %9413 = call ptr @__errno_location() #10
  %9414 = load i32, ptr %9413, align 4, !tbaa !5
  %9415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9402, ptr noundef @.str.5, i32 noundef %9403, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 283, ptr noundef %9406, ptr noundef %9409, ptr noundef %9412, i32 noundef %9414) #9
  br label %9416

9416:                                             ; preds = %9399, %9382
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #9
  br label %9417

9417:                                             ; preds = %9416
  br label %9418

9418:                                             ; preds = %9417
  call void @exit(i32 noundef 1) #11
  unreachable

9419:                                             ; No predecessors!
  br label %9420

9420:                                             ; preds = %9419
  br label %9421

9421:                                             ; preds = %9420, %9359
  br label %9422

9422:                                             ; preds = %9421
  br label %9423

9423:                                             ; preds = %9422
  br label %9424

9424:                                             ; preds = %9423, %9354
  br label %9425

9425:                                             ; preds = %9424
  br label %9426

9426:                                             ; preds = %9425
  store ptr null, ptr %181, align 8, !tbaa !9
  %9427 = load ptr, ptr %179, align 8, !tbaa !9
  %9428 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef %9427, ptr noundef %181)
  br label %9429

9429:                                             ; preds = %9426
  %9430 = load i32, ptr @test_count, align 4, !tbaa !5
  %9431 = add nsw i32 %9430, 1
  store i32 %9431, ptr @test_count, align 4, !tbaa !5
  %9432 = load ptr, ptr %181, align 8, !tbaa !9
  %9433 = icmp eq ptr %9432, null
  br i1 %9433, label %9434, label %9487

9434:                                             ; preds = %9429
  br label %9435

9435:                                             ; preds = %9434
  br label %9436

9436:                                             ; preds = %9435
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #9
  %9437 = call ptr @__errno_location() #10
  %9438 = load i32, ptr %9437, align 4, !tbaa !5
  store i32 %9438, ptr %190, align 4, !tbaa !5
  %9439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9440 = call i32 @s2n_print_stacktrace(ptr noundef %9439)
  %9441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9442 = trunc i8 %9441 to i1
  br i1 %9442, label %9443, label %9465

9443:                                             ; preds = %9436
  %9444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9445 = call i32 @fileno(ptr noundef %9444) #9
  %9446 = call i32 @isatty(i32 noundef %9445) #9
  %9447 = icmp ne i32 %9446, 0
  br i1 %9447, label %9448, label %9465

9448:                                             ; preds = %9443
  %9449 = load i32, ptr %190, align 4, !tbaa !5
  %9450 = call ptr @__errno_location() #10
  store i32 %9449, ptr %9450, align 4, !tbaa !5
  %9451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9452 = load i32, ptr @test_count, align 4, !tbaa !5
  %9453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9454 = load i32, ptr %9453, align 4, !tbaa !5
  %9455 = call ptr @s2n_strerror(i32 noundef %9454, ptr noundef @.str.4)
  %9456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9457 = load i32, ptr %9456, align 4, !tbaa !5
  %9458 = call ptr @s2n_strerror_debug(i32 noundef %9457, ptr noundef @.str.4)
  %9459 = call ptr @__errno_location() #10
  %9460 = load i32, ptr %9459, align 4, !tbaa !5
  %9461 = call ptr @strerror(i32 noundef %9460) #9
  %9462 = call ptr @__errno_location() #10
  %9463 = load i32, ptr %9462, align 4, !tbaa !5
  %9464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9451, ptr noundef @.str.2, i32 noundef %9452, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 286, ptr noundef %9455, ptr noundef %9458, ptr noundef %9461, i32 noundef %9463) #9
  br label %9482

9465:                                             ; preds = %9443, %9436
  %9466 = load i32, ptr %190, align 4, !tbaa !5
  %9467 = call ptr @__errno_location() #10
  store i32 %9466, ptr %9467, align 4, !tbaa !5
  %9468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9469 = load i32, ptr @test_count, align 4, !tbaa !5
  %9470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9471 = load i32, ptr %9470, align 4, !tbaa !5
  %9472 = call ptr @s2n_strerror(i32 noundef %9471, ptr noundef @.str.4)
  %9473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9474 = load i32, ptr %9473, align 4, !tbaa !5
  %9475 = call ptr @s2n_strerror_debug(i32 noundef %9474, ptr noundef @.str.4)
  %9476 = call ptr @__errno_location() #10
  %9477 = load i32, ptr %9476, align 4, !tbaa !5
  %9478 = call ptr @strerror(i32 noundef %9477) #9
  %9479 = call ptr @__errno_location() #10
  %9480 = load i32, ptr %9479, align 4, !tbaa !5
  %9481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9468, ptr noundef @.str.5, i32 noundef %9469, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 286, ptr noundef %9472, ptr noundef %9475, ptr noundef %9478, i32 noundef %9480) #9
  br label %9482

9482:                                             ; preds = %9465, %9448
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #9
  br label %9483

9483:                                             ; preds = %9482
  br label %9484

9484:                                             ; preds = %9483
  call void @exit(i32 noundef 1) #11
  unreachable

9485:                                             ; No predecessors!
  br label %9486

9486:                                             ; preds = %9485
  br label %9487

9487:                                             ; preds = %9486, %9429
  br label %9488

9488:                                             ; preds = %9487
  br label %9489

9489:                                             ; preds = %9488
  br label %9490

9490:                                             ; preds = %9489
  %9491 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9492 = call i64 @strlen(ptr noundef %9491) #12
  %9493 = icmp ne i64 %9492, 0
  br i1 %9493, label %9494, label %9560

9494:                                             ; preds = %9490
  br label %9495

9495:                                             ; preds = %9494
  %9496 = load i32, ptr @test_count, align 4, !tbaa !5
  %9497 = add nsw i32 %9496, 1
  store i32 %9497, ptr @test_count, align 4, !tbaa !5
  %9498 = load ptr, ptr %181, align 8, !tbaa !9
  %9499 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9500 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9501 = call i64 @strlen(ptr noundef %9500) #12
  %9502 = call i32 @memcmp(ptr noundef %9498, ptr noundef %9499, i64 noundef %9501) #12
  %9503 = icmp eq i32 %9502, 0
  br i1 %9503, label %9557, label %9504

9504:                                             ; preds = %9495
  br label %9505

9505:                                             ; preds = %9504
  br label %9506

9506:                                             ; preds = %9505
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #9
  %9507 = call ptr @__errno_location() #10
  %9508 = load i32, ptr %9507, align 4, !tbaa !5
  store i32 %9508, ptr %191, align 4, !tbaa !5
  %9509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9510 = call i32 @s2n_print_stacktrace(ptr noundef %9509)
  %9511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9512 = trunc i8 %9511 to i1
  br i1 %9512, label %9513, label %9535

9513:                                             ; preds = %9506
  %9514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9515 = call i32 @fileno(ptr noundef %9514) #9
  %9516 = call i32 @isatty(i32 noundef %9515) #9
  %9517 = icmp ne i32 %9516, 0
  br i1 %9517, label %9518, label %9535

9518:                                             ; preds = %9513
  %9519 = load i32, ptr %191, align 4, !tbaa !5
  %9520 = call ptr @__errno_location() #10
  store i32 %9519, ptr %9520, align 4, !tbaa !5
  %9521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9522 = load i32, ptr @test_count, align 4, !tbaa !5
  %9523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  %9525 = call ptr @s2n_strerror(i32 noundef %9524, ptr noundef @.str.4)
  %9526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9527 = load i32, ptr %9526, align 4, !tbaa !5
  %9528 = call ptr @s2n_strerror_debug(i32 noundef %9527, ptr noundef @.str.4)
  %9529 = call ptr @__errno_location() #10
  %9530 = load i32, ptr %9529, align 4, !tbaa !5
  %9531 = call ptr @strerror(i32 noundef %9530) #9
  %9532 = call ptr @__errno_location() #10
  %9533 = load i32, ptr %9532, align 4, !tbaa !5
  %9534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9521, ptr noundef @.str.2, i32 noundef %9522, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 287, ptr noundef %9525, ptr noundef %9528, ptr noundef %9531, i32 noundef %9533) #9
  br label %9552

9535:                                             ; preds = %9513, %9506
  %9536 = load i32, ptr %191, align 4, !tbaa !5
  %9537 = call ptr @__errno_location() #10
  store i32 %9536, ptr %9537, align 4, !tbaa !5
  %9538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9539 = load i32, ptr @test_count, align 4, !tbaa !5
  %9540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9541 = load i32, ptr %9540, align 4, !tbaa !5
  %9542 = call ptr @s2n_strerror(i32 noundef %9541, ptr noundef @.str.4)
  %9543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9544 = load i32, ptr %9543, align 4, !tbaa !5
  %9545 = call ptr @s2n_strerror_debug(i32 noundef %9544, ptr noundef @.str.4)
  %9546 = call ptr @__errno_location() #10
  %9547 = load i32, ptr %9546, align 4, !tbaa !5
  %9548 = call ptr @strerror(i32 noundef %9547) #9
  %9549 = call ptr @__errno_location() #10
  %9550 = load i32, ptr %9549, align 4, !tbaa !5
  %9551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9538, ptr noundef @.str.5, i32 noundef %9539, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 287, ptr noundef %9542, ptr noundef %9545, ptr noundef %9548, i32 noundef %9550) #9
  br label %9552

9552:                                             ; preds = %9535, %9518
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #9
  br label %9553

9553:                                             ; preds = %9552
  br label %9554

9554:                                             ; preds = %9553
  call void @exit(i32 noundef 1) #11
  unreachable

9555:                                             ; No predecessors!
  br label %9556

9556:                                             ; preds = %9555
  br label %9557

9557:                                             ; preds = %9556, %9495
  br label %9558

9558:                                             ; preds = %9557
  br label %9559

9559:                                             ; preds = %9558
  br label %9560

9560:                                             ; preds = %9559, %9490
  br label %9561

9561:                                             ; preds = %9560
  br label %9562

9562:                                             ; preds = %9561
  %9563 = load ptr, ptr %179, align 8, !tbaa !9
  %9564 = getelementptr inbounds %struct.s2n_connection, ptr %9563, i32 0, i32 23
  store i8 33, ptr %9564, align 4, !tbaa !52
  %9565 = load ptr, ptr %179, align 8, !tbaa !9
  %9566 = getelementptr inbounds %struct.s2n_connection, ptr %9565, i32 0, i32 27
  %9567 = load ptr, ptr %9566, align 8, !tbaa !56
  %9568 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9567, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha256, ptr %9568, align 8, !tbaa !57
  %9569 = load ptr, ptr %179, align 8, !tbaa !9
  %9570 = getelementptr inbounds %struct.s2n_connection, ptr %9569, i32 0, i32 31
  %9571 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9570, i32 0, i32 1
  %9572 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9571, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp256r1, ptr %9572, align 8, !tbaa !53
  br label %9573

9573:                                             ; preds = %9562
  %9574 = load i32, ptr @test_count, align 4, !tbaa !5
  %9575 = add nsw i32 %9574, 1
  store i32 %9575, ptr @test_count, align 4, !tbaa !5
  %9576 = load ptr, ptr %179, align 8, !tbaa !9
  %9577 = call ptr @s2n_connection_get_curve(ptr noundef %9576)
  store ptr %9577, ptr %181, align 8, !tbaa !9
  %9578 = icmp eq ptr %9577, null
  br i1 %9578, label %9579, label %9632

9579:                                             ; preds = %9573
  br label %9580

9580:                                             ; preds = %9579
  br label %9581

9581:                                             ; preds = %9580
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #9
  %9582 = call ptr @__errno_location() #10
  %9583 = load i32, ptr %9582, align 4, !tbaa !5
  store i32 %9583, ptr %192, align 4, !tbaa !5
  %9584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9585 = call i32 @s2n_print_stacktrace(ptr noundef %9584)
  %9586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9587 = trunc i8 %9586 to i1
  br i1 %9587, label %9588, label %9610

9588:                                             ; preds = %9581
  %9589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9590 = call i32 @fileno(ptr noundef %9589) #9
  %9591 = call i32 @isatty(i32 noundef %9590) #9
  %9592 = icmp ne i32 %9591, 0
  br i1 %9592, label %9593, label %9610

9593:                                             ; preds = %9588
  %9594 = load i32, ptr %192, align 4, !tbaa !5
  %9595 = call ptr @__errno_location() #10
  store i32 %9594, ptr %9595, align 4, !tbaa !5
  %9596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9597 = load i32, ptr @test_count, align 4, !tbaa !5
  %9598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9599 = load i32, ptr %9598, align 4, !tbaa !5
  %9600 = call ptr @s2n_strerror(i32 noundef %9599, ptr noundef @.str.4)
  %9601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9602 = load i32, ptr %9601, align 4, !tbaa !5
  %9603 = call ptr @s2n_strerror_debug(i32 noundef %9602, ptr noundef @.str.4)
  %9604 = call ptr @__errno_location() #10
  %9605 = load i32, ptr %9604, align 4, !tbaa !5
  %9606 = call ptr @strerror(i32 noundef %9605) #9
  %9607 = call ptr @__errno_location() #10
  %9608 = load i32, ptr %9607, align 4, !tbaa !5
  %9609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9596, ptr noundef @.str.2, i32 noundef %9597, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 293, ptr noundef %9600, ptr noundef %9603, ptr noundef %9606, i32 noundef %9608) #9
  br label %9627

9610:                                             ; preds = %9588, %9581
  %9611 = load i32, ptr %192, align 4, !tbaa !5
  %9612 = call ptr @__errno_location() #10
  store i32 %9611, ptr %9612, align 4, !tbaa !5
  %9613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9614 = load i32, ptr @test_count, align 4, !tbaa !5
  %9615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9616 = load i32, ptr %9615, align 4, !tbaa !5
  %9617 = call ptr @s2n_strerror(i32 noundef %9616, ptr noundef @.str.4)
  %9618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9619 = load i32, ptr %9618, align 4, !tbaa !5
  %9620 = call ptr @s2n_strerror_debug(i32 noundef %9619, ptr noundef @.str.4)
  %9621 = call ptr @__errno_location() #10
  %9622 = load i32, ptr %9621, align 4, !tbaa !5
  %9623 = call ptr @strerror(i32 noundef %9622) #9
  %9624 = call ptr @__errno_location() #10
  %9625 = load i32, ptr %9624, align 4, !tbaa !5
  %9626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9613, ptr noundef @.str.5, i32 noundef %9614, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 293, ptr noundef %9617, ptr noundef %9620, ptr noundef %9623, i32 noundef %9625) #9
  br label %9627

9627:                                             ; preds = %9610, %9593
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #9
  br label %9628

9628:                                             ; preds = %9627
  br label %9629

9629:                                             ; preds = %9628
  call void @exit(i32 noundef 1) #11
  unreachable

9630:                                             ; No predecessors!
  br label %9631

9631:                                             ; preds = %9630
  br label %9632

9632:                                             ; preds = %9631, %9573
  br label %9633

9633:                                             ; preds = %9632
  br label %9634

9634:                                             ; preds = %9633
  br label %9635

9635:                                             ; preds = %9634
  %9636 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9637 = call i64 @strlen(ptr noundef %9636) #12
  %9638 = icmp ne i64 %9637, 0
  br i1 %9638, label %9639, label %9705

9639:                                             ; preds = %9635
  br label %9640

9640:                                             ; preds = %9639
  %9641 = load i32, ptr @test_count, align 4, !tbaa !5
  %9642 = add nsw i32 %9641, 1
  store i32 %9642, ptr @test_count, align 4, !tbaa !5
  %9643 = load ptr, ptr %181, align 8, !tbaa !9
  %9644 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9645 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9646 = call i64 @strlen(ptr noundef %9645) #12
  %9647 = call i32 @memcmp(ptr noundef %9643, ptr noundef %9644, i64 noundef %9646) #12
  %9648 = icmp eq i32 %9647, 0
  br i1 %9648, label %9702, label %9649

9649:                                             ; preds = %9640
  br label %9650

9650:                                             ; preds = %9649
  br label %9651

9651:                                             ; preds = %9650
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #9
  %9652 = call ptr @__errno_location() #10
  %9653 = load i32, ptr %9652, align 4, !tbaa !5
  store i32 %9653, ptr %193, align 4, !tbaa !5
  %9654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9655 = call i32 @s2n_print_stacktrace(ptr noundef %9654)
  %9656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9657 = trunc i8 %9656 to i1
  br i1 %9657, label %9658, label %9680

9658:                                             ; preds = %9651
  %9659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9660 = call i32 @fileno(ptr noundef %9659) #9
  %9661 = call i32 @isatty(i32 noundef %9660) #9
  %9662 = icmp ne i32 %9661, 0
  br i1 %9662, label %9663, label %9680

9663:                                             ; preds = %9658
  %9664 = load i32, ptr %193, align 4, !tbaa !5
  %9665 = call ptr @__errno_location() #10
  store i32 %9664, ptr %9665, align 4, !tbaa !5
  %9666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9667 = load i32, ptr @test_count, align 4, !tbaa !5
  %9668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9669 = load i32, ptr %9668, align 4, !tbaa !5
  %9670 = call ptr @s2n_strerror(i32 noundef %9669, ptr noundef @.str.4)
  %9671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9672 = load i32, ptr %9671, align 4, !tbaa !5
  %9673 = call ptr @s2n_strerror_debug(i32 noundef %9672, ptr noundef @.str.4)
  %9674 = call ptr @__errno_location() #10
  %9675 = load i32, ptr %9674, align 4, !tbaa !5
  %9676 = call ptr @strerror(i32 noundef %9675) #9
  %9677 = call ptr @__errno_location() #10
  %9678 = load i32, ptr %9677, align 4, !tbaa !5
  %9679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9666, ptr noundef @.str.2, i32 noundef %9667, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 294, ptr noundef %9670, ptr noundef %9673, ptr noundef %9676, i32 noundef %9678) #9
  br label %9697

9680:                                             ; preds = %9658, %9651
  %9681 = load i32, ptr %193, align 4, !tbaa !5
  %9682 = call ptr @__errno_location() #10
  store i32 %9681, ptr %9682, align 4, !tbaa !5
  %9683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9684 = load i32, ptr @test_count, align 4, !tbaa !5
  %9685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9686 = load i32, ptr %9685, align 4, !tbaa !5
  %9687 = call ptr @s2n_strerror(i32 noundef %9686, ptr noundef @.str.4)
  %9688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  %9690 = call ptr @s2n_strerror_debug(i32 noundef %9689, ptr noundef @.str.4)
  %9691 = call ptr @__errno_location() #10
  %9692 = load i32, ptr %9691, align 4, !tbaa !5
  %9693 = call ptr @strerror(i32 noundef %9692) #9
  %9694 = call ptr @__errno_location() #10
  %9695 = load i32, ptr %9694, align 4, !tbaa !5
  %9696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9683, ptr noundef @.str.5, i32 noundef %9684, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 294, ptr noundef %9687, ptr noundef %9690, ptr noundef %9693, i32 noundef %9695) #9
  br label %9697

9697:                                             ; preds = %9680, %9663
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #9
  br label %9698

9698:                                             ; preds = %9697
  br label %9699

9699:                                             ; preds = %9698
  call void @exit(i32 noundef 1) #11
  unreachable

9700:                                             ; No predecessors!
  br label %9701

9701:                                             ; preds = %9700
  br label %9702

9702:                                             ; preds = %9701, %9640
  br label %9703

9703:                                             ; preds = %9702
  br label %9704

9704:                                             ; preds = %9703
  br label %9705

9705:                                             ; preds = %9704, %9635
  br label %9706

9706:                                             ; preds = %9705
  br label %9707

9707:                                             ; preds = %9706
  store ptr null, ptr %181, align 8, !tbaa !9
  %9708 = load ptr, ptr %179, align 8, !tbaa !9
  %9709 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef %9708, ptr noundef %181)
  br label %9710

9710:                                             ; preds = %9707
  %9711 = load i32, ptr @test_count, align 4, !tbaa !5
  %9712 = add nsw i32 %9711, 1
  store i32 %9712, ptr @test_count, align 4, !tbaa !5
  %9713 = load ptr, ptr %181, align 8, !tbaa !9
  %9714 = icmp eq ptr %9713, null
  br i1 %9714, label %9715, label %9768

9715:                                             ; preds = %9710
  br label %9716

9716:                                             ; preds = %9715
  br label %9717

9717:                                             ; preds = %9716
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #9
  %9718 = call ptr @__errno_location() #10
  %9719 = load i32, ptr %9718, align 4, !tbaa !5
  store i32 %9719, ptr %194, align 4, !tbaa !5
  %9720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9721 = call i32 @s2n_print_stacktrace(ptr noundef %9720)
  %9722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9723 = trunc i8 %9722 to i1
  br i1 %9723, label %9724, label %9746

9724:                                             ; preds = %9717
  %9725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9726 = call i32 @fileno(ptr noundef %9725) #9
  %9727 = call i32 @isatty(i32 noundef %9726) #9
  %9728 = icmp ne i32 %9727, 0
  br i1 %9728, label %9729, label %9746

9729:                                             ; preds = %9724
  %9730 = load i32, ptr %194, align 4, !tbaa !5
  %9731 = call ptr @__errno_location() #10
  store i32 %9730, ptr %9731, align 4, !tbaa !5
  %9732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9733 = load i32, ptr @test_count, align 4, !tbaa !5
  %9734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9735 = load i32, ptr %9734, align 4, !tbaa !5
  %9736 = call ptr @s2n_strerror(i32 noundef %9735, ptr noundef @.str.4)
  %9737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9738 = load i32, ptr %9737, align 4, !tbaa !5
  %9739 = call ptr @s2n_strerror_debug(i32 noundef %9738, ptr noundef @.str.4)
  %9740 = call ptr @__errno_location() #10
  %9741 = load i32, ptr %9740, align 4, !tbaa !5
  %9742 = call ptr @strerror(i32 noundef %9741) #9
  %9743 = call ptr @__errno_location() #10
  %9744 = load i32, ptr %9743, align 4, !tbaa !5
  %9745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9732, ptr noundef @.str.2, i32 noundef %9733, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 297, ptr noundef %9736, ptr noundef %9739, ptr noundef %9742, i32 noundef %9744) #9
  br label %9763

9746:                                             ; preds = %9724, %9717
  %9747 = load i32, ptr %194, align 4, !tbaa !5
  %9748 = call ptr @__errno_location() #10
  store i32 %9747, ptr %9748, align 4, !tbaa !5
  %9749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9750 = load i32, ptr @test_count, align 4, !tbaa !5
  %9751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9752 = load i32, ptr %9751, align 4, !tbaa !5
  %9753 = call ptr @s2n_strerror(i32 noundef %9752, ptr noundef @.str.4)
  %9754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9755 = load i32, ptr %9754, align 4, !tbaa !5
  %9756 = call ptr @s2n_strerror_debug(i32 noundef %9755, ptr noundef @.str.4)
  %9757 = call ptr @__errno_location() #10
  %9758 = load i32, ptr %9757, align 4, !tbaa !5
  %9759 = call ptr @strerror(i32 noundef %9758) #9
  %9760 = call ptr @__errno_location() #10
  %9761 = load i32, ptr %9760, align 4, !tbaa !5
  %9762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9749, ptr noundef @.str.5, i32 noundef %9750, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 297, ptr noundef %9753, ptr noundef %9756, ptr noundef %9759, i32 noundef %9761) #9
  br label %9763

9763:                                             ; preds = %9746, %9729
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #9
  br label %9764

9764:                                             ; preds = %9763
  br label %9765

9765:                                             ; preds = %9764
  call void @exit(i32 noundef 1) #11
  unreachable

9766:                                             ; No predecessors!
  br label %9767

9767:                                             ; preds = %9766
  br label %9768

9768:                                             ; preds = %9767, %9710
  br label %9769

9769:                                             ; preds = %9768
  br label %9770

9770:                                             ; preds = %9769
  br label %9771

9771:                                             ; preds = %9770
  %9772 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9773 = call i64 @strlen(ptr noundef %9772) #12
  %9774 = icmp ne i64 %9773, 0
  br i1 %9774, label %9775, label %9841

9775:                                             ; preds = %9771
  br label %9776

9776:                                             ; preds = %9775
  %9777 = load i32, ptr @test_count, align 4, !tbaa !5
  %9778 = add nsw i32 %9777, 1
  store i32 %9778, ptr @test_count, align 4, !tbaa !5
  %9779 = load ptr, ptr %181, align 8, !tbaa !9
  %9780 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9781 = load ptr, ptr getelementptr inbounds (%struct.s2n_ecc_named_curve, ptr @s2n_ecc_curve_secp256r1, i32 0, i32 2), align 8, !tbaa !54
  %9782 = call i64 @strlen(ptr noundef %9781) #12
  %9783 = call i32 @memcmp(ptr noundef %9779, ptr noundef %9780, i64 noundef %9782) #12
  %9784 = icmp eq i32 %9783, 0
  br i1 %9784, label %9838, label %9785

9785:                                             ; preds = %9776
  br label %9786

9786:                                             ; preds = %9785
  br label %9787

9787:                                             ; preds = %9786
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #9
  %9788 = call ptr @__errno_location() #10
  %9789 = load i32, ptr %9788, align 4, !tbaa !5
  store i32 %9789, ptr %195, align 4, !tbaa !5
  %9790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9791 = call i32 @s2n_print_stacktrace(ptr noundef %9790)
  %9792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9793 = trunc i8 %9792 to i1
  br i1 %9793, label %9794, label %9816

9794:                                             ; preds = %9787
  %9795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9796 = call i32 @fileno(ptr noundef %9795) #9
  %9797 = call i32 @isatty(i32 noundef %9796) #9
  %9798 = icmp ne i32 %9797, 0
  br i1 %9798, label %9799, label %9816

9799:                                             ; preds = %9794
  %9800 = load i32, ptr %195, align 4, !tbaa !5
  %9801 = call ptr @__errno_location() #10
  store i32 %9800, ptr %9801, align 4, !tbaa !5
  %9802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9803 = load i32, ptr @test_count, align 4, !tbaa !5
  %9804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9805 = load i32, ptr %9804, align 4, !tbaa !5
  %9806 = call ptr @s2n_strerror(i32 noundef %9805, ptr noundef @.str.4)
  %9807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9808 = load i32, ptr %9807, align 4, !tbaa !5
  %9809 = call ptr @s2n_strerror_debug(i32 noundef %9808, ptr noundef @.str.4)
  %9810 = call ptr @__errno_location() #10
  %9811 = load i32, ptr %9810, align 4, !tbaa !5
  %9812 = call ptr @strerror(i32 noundef %9811) #9
  %9813 = call ptr @__errno_location() #10
  %9814 = load i32, ptr %9813, align 4, !tbaa !5
  %9815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9802, ptr noundef @.str.2, i32 noundef %9803, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 298, ptr noundef %9806, ptr noundef %9809, ptr noundef %9812, i32 noundef %9814) #9
  br label %9833

9816:                                             ; preds = %9794, %9787
  %9817 = load i32, ptr %195, align 4, !tbaa !5
  %9818 = call ptr @__errno_location() #10
  store i32 %9817, ptr %9818, align 4, !tbaa !5
  %9819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9820 = load i32, ptr @test_count, align 4, !tbaa !5
  %9821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9822 = load i32, ptr %9821, align 4, !tbaa !5
  %9823 = call ptr @s2n_strerror(i32 noundef %9822, ptr noundef @.str.4)
  %9824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9825 = load i32, ptr %9824, align 4, !tbaa !5
  %9826 = call ptr @s2n_strerror_debug(i32 noundef %9825, ptr noundef @.str.4)
  %9827 = call ptr @__errno_location() #10
  %9828 = load i32, ptr %9827, align 4, !tbaa !5
  %9829 = call ptr @strerror(i32 noundef %9828) #9
  %9830 = call ptr @__errno_location() #10
  %9831 = load i32, ptr %9830, align 4, !tbaa !5
  %9832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9819, ptr noundef @.str.5, i32 noundef %9820, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 298, ptr noundef %9823, ptr noundef %9826, ptr noundef %9829, i32 noundef %9831) #9
  br label %9833

9833:                                             ; preds = %9816, %9799
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #9
  br label %9834

9834:                                             ; preds = %9833
  br label %9835

9835:                                             ; preds = %9834
  call void @exit(i32 noundef 1) #11
  unreachable

9836:                                             ; No predecessors!
  br label %9837

9837:                                             ; preds = %9836
  br label %9838

9838:                                             ; preds = %9837, %9776
  br label %9839

9839:                                             ; preds = %9838
  br label %9840

9840:                                             ; preds = %9839
  br label %9841

9841:                                             ; preds = %9840, %9771
  br label %9842

9842:                                             ; preds = %9841
  br label %9843

9843:                                             ; preds = %9842
  %9844 = load ptr, ptr %179, align 8, !tbaa !9
  %9845 = getelementptr inbounds %struct.s2n_connection, ptr %9844, i32 0, i32 23
  store i8 33, ptr %9845, align 4, !tbaa !52
  %9846 = load ptr, ptr %179, align 8, !tbaa !9
  %9847 = getelementptr inbounds %struct.s2n_connection, ptr %9846, i32 0, i32 27
  %9848 = load ptr, ptr %9847, align 8, !tbaa !56
  %9849 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9848, i32 0, i32 0
  store ptr @s2n_rsa_with_aes_256_gcm_sha384, ptr %9849, align 8, !tbaa !57
  %9850 = load ptr, ptr %179, align 8, !tbaa !9
  %9851 = getelementptr inbounds %struct.s2n_connection, ptr %9850, i32 0, i32 31
  %9852 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9851, i32 0, i32 1
  %9853 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9852, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp256r1, ptr %9853, align 8, !tbaa !53
  br label %9854

9854:                                             ; preds = %9843
  %9855 = load i32, ptr @test_count, align 4, !tbaa !5
  %9856 = add nsw i32 %9855, 1
  store i32 %9856, ptr @test_count, align 4, !tbaa !5
  %9857 = load ptr, ptr %179, align 8, !tbaa !9
  %9858 = call ptr @s2n_connection_get_curve(ptr noundef %9857)
  store ptr %9858, ptr %181, align 8, !tbaa !9
  %9859 = icmp eq ptr %9858, null
  br i1 %9859, label %9860, label %9913

9860:                                             ; preds = %9854
  br label %9861

9861:                                             ; preds = %9860
  br label %9862

9862:                                             ; preds = %9861
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #9
  %9863 = call ptr @__errno_location() #10
  %9864 = load i32, ptr %9863, align 4, !tbaa !5
  store i32 %9864, ptr %196, align 4, !tbaa !5
  %9865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9866 = call i32 @s2n_print_stacktrace(ptr noundef %9865)
  %9867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9868 = trunc i8 %9867 to i1
  br i1 %9868, label %9869, label %9891

9869:                                             ; preds = %9862
  %9870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9871 = call i32 @fileno(ptr noundef %9870) #9
  %9872 = call i32 @isatty(i32 noundef %9871) #9
  %9873 = icmp ne i32 %9872, 0
  br i1 %9873, label %9874, label %9891

9874:                                             ; preds = %9869
  %9875 = load i32, ptr %196, align 4, !tbaa !5
  %9876 = call ptr @__errno_location() #10
  store i32 %9875, ptr %9876, align 4, !tbaa !5
  %9877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9878 = load i32, ptr @test_count, align 4, !tbaa !5
  %9879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9880 = load i32, ptr %9879, align 4, !tbaa !5
  %9881 = call ptr @s2n_strerror(i32 noundef %9880, ptr noundef @.str.4)
  %9882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9883 = load i32, ptr %9882, align 4, !tbaa !5
  %9884 = call ptr @s2n_strerror_debug(i32 noundef %9883, ptr noundef @.str.4)
  %9885 = call ptr @__errno_location() #10
  %9886 = load i32, ptr %9885, align 4, !tbaa !5
  %9887 = call ptr @strerror(i32 noundef %9886) #9
  %9888 = call ptr @__errno_location() #10
  %9889 = load i32, ptr %9888, align 4, !tbaa !5
  %9890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9877, ptr noundef @.str.2, i32 noundef %9878, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 304, ptr noundef %9881, ptr noundef %9884, ptr noundef %9887, i32 noundef %9889) #9
  br label %9908

9891:                                             ; preds = %9869, %9862
  %9892 = load i32, ptr %196, align 4, !tbaa !5
  %9893 = call ptr @__errno_location() #10
  store i32 %9892, ptr %9893, align 4, !tbaa !5
  %9894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9895 = load i32, ptr @test_count, align 4, !tbaa !5
  %9896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9897 = load i32, ptr %9896, align 4, !tbaa !5
  %9898 = call ptr @s2n_strerror(i32 noundef %9897, ptr noundef @.str.4)
  %9899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9900 = load i32, ptr %9899, align 4, !tbaa !5
  %9901 = call ptr @s2n_strerror_debug(i32 noundef %9900, ptr noundef @.str.4)
  %9902 = call ptr @__errno_location() #10
  %9903 = load i32, ptr %9902, align 4, !tbaa !5
  %9904 = call ptr @strerror(i32 noundef %9903) #9
  %9905 = call ptr @__errno_location() #10
  %9906 = load i32, ptr %9905, align 4, !tbaa !5
  %9907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9894, ptr noundef @.str.5, i32 noundef %9895, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 304, ptr noundef %9898, ptr noundef %9901, ptr noundef %9904, i32 noundef %9906) #9
  br label %9908

9908:                                             ; preds = %9891, %9874
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #9
  br label %9909

9909:                                             ; preds = %9908
  br label %9910

9910:                                             ; preds = %9909
  call void @exit(i32 noundef 1) #11
  unreachable

9911:                                             ; No predecessors!
  br label %9912

9912:                                             ; preds = %9911
  br label %9913

9913:                                             ; preds = %9912, %9854
  br label %9914

9914:                                             ; preds = %9913
  br label %9915

9915:                                             ; preds = %9914
  br label %9916

9916:                                             ; preds = %9915
  %9917 = getelementptr inbounds [5 x i8], ptr %182, i64 0, i64 0
  %9918 = call i64 @strlen(ptr noundef %9917) #12
  %9919 = icmp ne i64 %9918, 0
  br i1 %9919, label %9920, label %9986

9920:                                             ; preds = %9916
  br label %9921

9921:                                             ; preds = %9920
  %9922 = load i32, ptr @test_count, align 4, !tbaa !5
  %9923 = add nsw i32 %9922, 1
  store i32 %9923, ptr @test_count, align 4, !tbaa !5
  %9924 = load ptr, ptr %181, align 8, !tbaa !9
  %9925 = getelementptr inbounds [5 x i8], ptr %182, i64 0, i64 0
  %9926 = getelementptr inbounds [5 x i8], ptr %182, i64 0, i64 0
  %9927 = call i64 @strlen(ptr noundef %9926) #12
  %9928 = call i32 @memcmp(ptr noundef %9924, ptr noundef %9925, i64 noundef %9927) #12
  %9929 = icmp eq i32 %9928, 0
  br i1 %9929, label %9983, label %9930

9930:                                             ; preds = %9921
  br label %9931

9931:                                             ; preds = %9930
  br label %9932

9932:                                             ; preds = %9931
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #9
  %9933 = call ptr @__errno_location() #10
  %9934 = load i32, ptr %9933, align 4, !tbaa !5
  store i32 %9934, ptr %197, align 4, !tbaa !5
  %9935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9936 = call i32 @s2n_print_stacktrace(ptr noundef %9935)
  %9937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9938 = trunc i8 %9937 to i1
  br i1 %9938, label %9939, label %9961

9939:                                             ; preds = %9932
  %9940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9941 = call i32 @fileno(ptr noundef %9940) #9
  %9942 = call i32 @isatty(i32 noundef %9941) #9
  %9943 = icmp ne i32 %9942, 0
  br i1 %9943, label %9944, label %9961

9944:                                             ; preds = %9939
  %9945 = load i32, ptr %197, align 4, !tbaa !5
  %9946 = call ptr @__errno_location() #10
  store i32 %9945, ptr %9946, align 4, !tbaa !5
  %9947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9948 = load i32, ptr @test_count, align 4, !tbaa !5
  %9949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9950 = load i32, ptr %9949, align 4, !tbaa !5
  %9951 = call ptr @s2n_strerror(i32 noundef %9950, ptr noundef @.str.4)
  %9952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9953 = load i32, ptr %9952, align 4, !tbaa !5
  %9954 = call ptr @s2n_strerror_debug(i32 noundef %9953, ptr noundef @.str.4)
  %9955 = call ptr @__errno_location() #10
  %9956 = load i32, ptr %9955, align 4, !tbaa !5
  %9957 = call ptr @strerror(i32 noundef %9956) #9
  %9958 = call ptr @__errno_location() #10
  %9959 = load i32, ptr %9958, align 4, !tbaa !5
  %9960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9947, ptr noundef @.str.2, i32 noundef %9948, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 305, ptr noundef %9951, ptr noundef %9954, ptr noundef %9957, i32 noundef %9959) #9
  br label %9978

9961:                                             ; preds = %9939, %9932
  %9962 = load i32, ptr %197, align 4, !tbaa !5
  %9963 = call ptr @__errno_location() #10
  store i32 %9962, ptr %9963, align 4, !tbaa !5
  %9964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9965 = load i32, ptr @test_count, align 4, !tbaa !5
  %9966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9967 = load i32, ptr %9966, align 4, !tbaa !5
  %9968 = call ptr @s2n_strerror(i32 noundef %9967, ptr noundef @.str.4)
  %9969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9970 = load i32, ptr %9969, align 4, !tbaa !5
  %9971 = call ptr @s2n_strerror_debug(i32 noundef %9970, ptr noundef @.str.4)
  %9972 = call ptr @__errno_location() #10
  %9973 = load i32, ptr %9972, align 4, !tbaa !5
  %9974 = call ptr @strerror(i32 noundef %9973) #9
  %9975 = call ptr @__errno_location() #10
  %9976 = load i32, ptr %9975, align 4, !tbaa !5
  %9977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9964, ptr noundef @.str.5, i32 noundef %9965, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 305, ptr noundef %9968, ptr noundef %9971, ptr noundef %9974, i32 noundef %9976) #9
  br label %9978

9978:                                             ; preds = %9961, %9944
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #9
  br label %9979

9979:                                             ; preds = %9978
  br label %9980

9980:                                             ; preds = %9979
  call void @exit(i32 noundef 1) #11
  unreachable

9981:                                             ; No predecessors!
  br label %9982

9982:                                             ; preds = %9981
  br label %9983

9983:                                             ; preds = %9982, %9921
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

9985:                                             ; preds = %9984
  br label %9986

9986:                                             ; preds = %9985, %9916
  br label %9987

9987:                                             ; preds = %9986
  br label %9988

9988:                                             ; preds = %9987
  br label %9989

9989:                                             ; preds = %9988
  br label %9990

9990:                                             ; preds = %9989
  br label %9991

9991:                                             ; preds = %9990
  %9992 = load i32, ptr @test_count, align 4, !tbaa !5
  %9993 = add nsw i32 %9992, 1
  store i32 %9993, ptr @test_count, align 4, !tbaa !5
  %9994 = load ptr, ptr %179, align 8, !tbaa !9
  %9995 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef %9994, ptr noundef %181)
  %9996 = icmp eq i32 %9995, -1
  br i1 %9996, label %10050, label %9997

9997:                                             ; preds = %9991
  br label %9998

9998:                                             ; preds = %9997
  br label %9999

9999:                                             ; preds = %9998
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #9
  %10000 = call ptr @__errno_location() #10
  %10001 = load i32, ptr %10000, align 4, !tbaa !5
  store i32 %10001, ptr %198, align 4, !tbaa !5
  %10002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10003 = call i32 @s2n_print_stacktrace(ptr noundef %10002)
  %10004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10005 = trunc i8 %10004 to i1
  br i1 %10005, label %10006, label %10028

10006:                                            ; preds = %9999
  %10007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10008 = call i32 @fileno(ptr noundef %10007) #9
  %10009 = call i32 @isatty(i32 noundef %10008) #9
  %10010 = icmp ne i32 %10009, 0
  br i1 %10010, label %10011, label %10028

10011:                                            ; preds = %10006
  %10012 = load i32, ptr %198, align 4, !tbaa !5
  %10013 = call ptr @__errno_location() #10
  store i32 %10012, ptr %10013, align 4, !tbaa !5
  %10014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10015 = load i32, ptr @test_count, align 4, !tbaa !5
  %10016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10017 = load i32, ptr %10016, align 4, !tbaa !5
  %10018 = call ptr @s2n_strerror(i32 noundef %10017, ptr noundef @.str.4)
  %10019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10020 = load i32, ptr %10019, align 4, !tbaa !5
  %10021 = call ptr @s2n_strerror_debug(i32 noundef %10020, ptr noundef @.str.4)
  %10022 = call ptr @__errno_location() #10
  %10023 = load i32, ptr %10022, align 4, !tbaa !5
  %10024 = call ptr @strerror(i32 noundef %10023) #9
  %10025 = call ptr @__errno_location() #10
  %10026 = load i32, ptr %10025, align 4, !tbaa !5
  %10027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10014, ptr noundef @.str.2, i32 noundef %10015, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 306, ptr noundef %10018, ptr noundef %10021, ptr noundef %10024, i32 noundef %10026) #9
  br label %10045

10028:                                            ; preds = %10006, %9999
  %10029 = load i32, ptr %198, align 4, !tbaa !5
  %10030 = call ptr @__errno_location() #10
  store i32 %10029, ptr %10030, align 4, !tbaa !5
  %10031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10032 = load i32, ptr @test_count, align 4, !tbaa !5
  %10033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10034 = load i32, ptr %10033, align 4, !tbaa !5
  %10035 = call ptr @s2n_strerror(i32 noundef %10034, ptr noundef @.str.4)
  %10036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10037 = load i32, ptr %10036, align 4, !tbaa !5
  %10038 = call ptr @s2n_strerror_debug(i32 noundef %10037, ptr noundef @.str.4)
  %10039 = call ptr @__errno_location() #10
  %10040 = load i32, ptr %10039, align 4, !tbaa !5
  %10041 = call ptr @strerror(i32 noundef %10040) #9
  %10042 = call ptr @__errno_location() #10
  %10043 = load i32, ptr %10042, align 4, !tbaa !5
  %10044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10031, ptr noundef @.str.5, i32 noundef %10032, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 306, ptr noundef %10035, ptr noundef %10038, ptr noundef %10041, i32 noundef %10043) #9
  br label %10045

10045:                                            ; preds = %10028, %10011
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #9
  br label %10046

10046:                                            ; preds = %10045
  br label %10047

10047:                                            ; preds = %10046
  call void @exit(i32 noundef 1) #11
  unreachable

10048:                                            ; No predecessors!
  br label %10049

10049:                                            ; preds = %10048
  br label %10050

10050:                                            ; preds = %10049, %9991
  br label %10051

10051:                                            ; preds = %10050
  br label %10052

10052:                                            ; preds = %10051
  br label %10053

10053:                                            ; preds = %10052
  %10054 = load i32, ptr @test_count, align 4, !tbaa !5
  %10055 = add nsw i32 %10054, 1
  store i32 %10055, ptr @test_count, align 4, !tbaa !5
  %10056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10057 = load i32, ptr %10056, align 4, !tbaa !5
  %10058 = icmp eq i32 %10057, 469762112
  br i1 %10058, label %10112, label %10059

10059:                                            ; preds = %10053
  br label %10060

10060:                                            ; preds = %10059
  br label %10061

10061:                                            ; preds = %10060
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #9
  %10062 = call ptr @__errno_location() #10
  %10063 = load i32, ptr %10062, align 4, !tbaa !5
  store i32 %10063, ptr %199, align 4, !tbaa !5
  %10064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10065 = call i32 @s2n_print_stacktrace(ptr noundef %10064)
  %10066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10067 = trunc i8 %10066 to i1
  br i1 %10067, label %10068, label %10090

10068:                                            ; preds = %10061
  %10069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10070 = call i32 @fileno(ptr noundef %10069) #9
  %10071 = call i32 @isatty(i32 noundef %10070) #9
  %10072 = icmp ne i32 %10071, 0
  br i1 %10072, label %10073, label %10090

10073:                                            ; preds = %10068
  %10074 = load i32, ptr %199, align 4, !tbaa !5
  %10075 = call ptr @__errno_location() #10
  store i32 %10074, ptr %10075, align 4, !tbaa !5
  %10076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10077 = load i32, ptr @test_count, align 4, !tbaa !5
  %10078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10079 = load i32, ptr %10078, align 4, !tbaa !5
  %10080 = call ptr @s2n_strerror(i32 noundef %10079, ptr noundef @.str.4)
  %10081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10082 = load i32, ptr %10081, align 4, !tbaa !5
  %10083 = call ptr @s2n_strerror_debug(i32 noundef %10082, ptr noundef @.str.4)
  %10084 = call ptr @__errno_location() #10
  %10085 = load i32, ptr %10084, align 4, !tbaa !5
  %10086 = call ptr @strerror(i32 noundef %10085) #9
  %10087 = call ptr @__errno_location() #10
  %10088 = load i32, ptr %10087, align 4, !tbaa !5
  %10089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10076, ptr noundef @.str.2, i32 noundef %10077, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 306, ptr noundef %10080, ptr noundef %10083, ptr noundef %10086, i32 noundef %10088) #9
  br label %10107

10090:                                            ; preds = %10068, %10061
  %10091 = load i32, ptr %199, align 4, !tbaa !5
  %10092 = call ptr @__errno_location() #10
  store i32 %10091, ptr %10092, align 4, !tbaa !5
  %10093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10094 = load i32, ptr @test_count, align 4, !tbaa !5
  %10095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10096 = load i32, ptr %10095, align 4, !tbaa !5
  %10097 = call ptr @s2n_strerror(i32 noundef %10096, ptr noundef @.str.4)
  %10098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10099 = load i32, ptr %10098, align 4, !tbaa !5
  %10100 = call ptr @s2n_strerror_debug(i32 noundef %10099, ptr noundef @.str.4)
  %10101 = call ptr @__errno_location() #10
  %10102 = load i32, ptr %10101, align 4, !tbaa !5
  %10103 = call ptr @strerror(i32 noundef %10102) #9
  %10104 = call ptr @__errno_location() #10
  %10105 = load i32, ptr %10104, align 4, !tbaa !5
  %10106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10093, ptr noundef @.str.5, i32 noundef %10094, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 306, ptr noundef %10097, ptr noundef %10100, ptr noundef %10103, i32 noundef %10105) #9
  br label %10107

10107:                                            ; preds = %10090, %10073
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #9
  br label %10108

10108:                                            ; preds = %10107
  br label %10109

10109:                                            ; preds = %10108
  call void @exit(i32 noundef 1) #11
  unreachable

10110:                                            ; No predecessors!
  br label %10111

10111:                                            ; preds = %10110
  br label %10112

10112:                                            ; preds = %10111, %10053
  br label %10113

10113:                                            ; preds = %10112
  br label %10114

10114:                                            ; preds = %10113
  br label %10115

10115:                                            ; preds = %10114
  %10116 = load i32, ptr @test_count, align 4, !tbaa !5
  %10117 = add nsw i32 %10116, 1
  store i32 %10117, ptr @test_count, align 4, !tbaa !5
  %10118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10119 = load i32, ptr %10118, align 4, !tbaa !5
  %10120 = call ptr @s2n_strerror_debug(i32 noundef %10119, ptr noundef @.str.4)
  %10121 = icmp eq ptr %10120, null
  br i1 %10121, label %10122, label %10175

10122:                                            ; preds = %10115
  br label %10123

10123:                                            ; preds = %10122
  br label %10124

10124:                                            ; preds = %10123
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #9
  %10125 = call ptr @__errno_location() #10
  %10126 = load i32, ptr %10125, align 4, !tbaa !5
  store i32 %10126, ptr %200, align 4, !tbaa !5
  %10127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10128 = call i32 @s2n_print_stacktrace(ptr noundef %10127)
  %10129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10130 = trunc i8 %10129 to i1
  br i1 %10130, label %10131, label %10153

10131:                                            ; preds = %10124
  %10132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10133 = call i32 @fileno(ptr noundef %10132) #9
  %10134 = call i32 @isatty(i32 noundef %10133) #9
  %10135 = icmp ne i32 %10134, 0
  br i1 %10135, label %10136, label %10153

10136:                                            ; preds = %10131
  %10137 = load i32, ptr %200, align 4, !tbaa !5
  %10138 = call ptr @__errno_location() #10
  store i32 %10137, ptr %10138, align 4, !tbaa !5
  %10139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10140 = load i32, ptr @test_count, align 4, !tbaa !5
  %10141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10142 = load i32, ptr %10141, align 4, !tbaa !5
  %10143 = call ptr @s2n_strerror(i32 noundef %10142, ptr noundef @.str.4)
  %10144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10145 = load i32, ptr %10144, align 4, !tbaa !5
  %10146 = call ptr @s2n_strerror_debug(i32 noundef %10145, ptr noundef @.str.4)
  %10147 = call ptr @__errno_location() #10
  %10148 = load i32, ptr %10147, align 4, !tbaa !5
  %10149 = call ptr @strerror(i32 noundef %10148) #9
  %10150 = call ptr @__errno_location() #10
  %10151 = load i32, ptr %10150, align 4, !tbaa !5
  %10152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10139, ptr noundef @.str.2, i32 noundef %10140, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 306, ptr noundef %10143, ptr noundef %10146, ptr noundef %10149, i32 noundef %10151) #9
  br label %10170

10153:                                            ; preds = %10131, %10124
  %10154 = load i32, ptr %200, align 4, !tbaa !5
  %10155 = call ptr @__errno_location() #10
  store i32 %10154, ptr %10155, align 4, !tbaa !5
  %10156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10157 = load i32, ptr @test_count, align 4, !tbaa !5
  %10158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10159 = load i32, ptr %10158, align 4, !tbaa !5
  %10160 = call ptr @s2n_strerror(i32 noundef %10159, ptr noundef @.str.4)
  %10161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10162 = load i32, ptr %10161, align 4, !tbaa !5
  %10163 = call ptr @s2n_strerror_debug(i32 noundef %10162, ptr noundef @.str.4)
  %10164 = call ptr @__errno_location() #10
  %10165 = load i32, ptr %10164, align 4, !tbaa !5
  %10166 = call ptr @strerror(i32 noundef %10165) #9
  %10167 = call ptr @__errno_location() #10
  %10168 = load i32, ptr %10167, align 4, !tbaa !5
  %10169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10156, ptr noundef @.str.5, i32 noundef %10157, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 306, ptr noundef %10160, ptr noundef %10163, ptr noundef %10166, i32 noundef %10168) #9
  br label %10170

10170:                                            ; preds = %10153, %10136
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #9
  br label %10171

10171:                                            ; preds = %10170
  br label %10172

10172:                                            ; preds = %10171
  call void @exit(i32 noundef 1) #11
  unreachable

10173:                                            ; No predecessors!
  br label %10174

10174:                                            ; preds = %10173
  br label %10175

10175:                                            ; preds = %10174, %10115
  br label %10176

10176:                                            ; preds = %10175
  br label %10177

10177:                                            ; preds = %10176
  br label %10178

10178:                                            ; preds = %10177
  br label %10179

10179:                                            ; preds = %10178
  br label %10180

10180:                                            ; preds = %10179
  %10181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10181, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10182 = call ptr @__errno_location() #10
  store i32 0, ptr %10182, align 4, !tbaa !5
  br label %10183

10183:                                            ; preds = %10180
  br label %10184

10184:                                            ; preds = %10183
  br label %10185

10185:                                            ; preds = %10184
  br label %10186

10186:                                            ; preds = %10185
  br label %10187

10187:                                            ; preds = %10186
  %10188 = load i32, ptr @test_count, align 4, !tbaa !5
  %10189 = add nsw i32 %10188, 1
  store i32 %10189, ptr @test_count, align 4, !tbaa !5
  %10190 = load ptr, ptr %179, align 8, !tbaa !9
  %10191 = call i32 @s2n_connection_free(ptr noundef %10190)
  %10192 = icmp eq i32 %10191, -1
  br i1 %10192, label %10193, label %10246

10193:                                            ; preds = %10187
  br label %10194

10194:                                            ; preds = %10193
  br label %10195

10195:                                            ; preds = %10194
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #9
  %10196 = call ptr @__errno_location() #10
  %10197 = load i32, ptr %10196, align 4, !tbaa !5
  store i32 %10197, ptr %201, align 4, !tbaa !5
  %10198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10199 = call i32 @s2n_print_stacktrace(ptr noundef %10198)
  %10200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10201 = trunc i8 %10200 to i1
  br i1 %10201, label %10202, label %10224

10202:                                            ; preds = %10195
  %10203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10204 = call i32 @fileno(ptr noundef %10203) #9
  %10205 = call i32 @isatty(i32 noundef %10204) #9
  %10206 = icmp ne i32 %10205, 0
  br i1 %10206, label %10207, label %10224

10207:                                            ; preds = %10202
  %10208 = load i32, ptr %201, align 4, !tbaa !5
  %10209 = call ptr @__errno_location() #10
  store i32 %10208, ptr %10209, align 4, !tbaa !5
  %10210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10211 = load i32, ptr @test_count, align 4, !tbaa !5
  %10212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10213 = load i32, ptr %10212, align 4, !tbaa !5
  %10214 = call ptr @s2n_strerror(i32 noundef %10213, ptr noundef @.str.4)
  %10215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10216 = load i32, ptr %10215, align 4, !tbaa !5
  %10217 = call ptr @s2n_strerror_debug(i32 noundef %10216, ptr noundef @.str.4)
  %10218 = call ptr @__errno_location() #10
  %10219 = load i32, ptr %10218, align 4, !tbaa !5
  %10220 = call ptr @strerror(i32 noundef %10219) #9
  %10221 = call ptr @__errno_location() #10
  %10222 = load i32, ptr %10221, align 4, !tbaa !5
  %10223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10210, ptr noundef @.str.2, i32 noundef %10211, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 308, ptr noundef %10214, ptr noundef %10217, ptr noundef %10220, i32 noundef %10222) #9
  br label %10241

10224:                                            ; preds = %10202, %10195
  %10225 = load i32, ptr %201, align 4, !tbaa !5
  %10226 = call ptr @__errno_location() #10
  store i32 %10225, ptr %10226, align 4, !tbaa !5
  %10227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10228 = load i32, ptr @test_count, align 4, !tbaa !5
  %10229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10230 = load i32, ptr %10229, align 4, !tbaa !5
  %10231 = call ptr @s2n_strerror(i32 noundef %10230, ptr noundef @.str.4)
  %10232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10233 = load i32, ptr %10232, align 4, !tbaa !5
  %10234 = call ptr @s2n_strerror_debug(i32 noundef %10233, ptr noundef @.str.4)
  %10235 = call ptr @__errno_location() #10
  %10236 = load i32, ptr %10235, align 4, !tbaa !5
  %10237 = call ptr @strerror(i32 noundef %10236) #9
  %10238 = call ptr @__errno_location() #10
  %10239 = load i32, ptr %10238, align 4, !tbaa !5
  %10240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10227, ptr noundef @.str.5, i32 noundef %10228, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 308, ptr noundef %10231, ptr noundef %10234, ptr noundef %10237, i32 noundef %10239) #9
  br label %10241

10241:                                            ; preds = %10224, %10207
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #9
  br label %10242

10242:                                            ; preds = %10241
  br label %10243

10243:                                            ; preds = %10242
  call void @exit(i32 noundef 1) #11
  unreachable

10244:                                            ; No predecessors!
  br label %10245

10245:                                            ; preds = %10244
  br label %10246

10246:                                            ; preds = %10245, %10187
  br label %10247

10247:                                            ; preds = %10246
  br label %10248

10248:                                            ; preds = %10247
  call void @llvm.lifetime.end.p0(i64 5, ptr %182) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #9
  br label %10249

10249:                                            ; preds = %10248
  br label %10250

10250:                                            ; preds = %10249
  %10251 = call i32 @s2n_cleanup()
  %10252 = icmp eq i32 %10251, -1
  br i1 %10252, label %10253, label %10306

10253:                                            ; preds = %10250
  br label %10254

10254:                                            ; preds = %10253
  br label %10255

10255:                                            ; preds = %10254
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #9
  %10256 = call ptr @__errno_location() #10
  %10257 = load i32, ptr %10256, align 4, !tbaa !5
  store i32 %10257, ptr %202, align 4, !tbaa !5
  %10258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10259 = call i32 @s2n_print_stacktrace(ptr noundef %10258)
  %10260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10261 = trunc i8 %10260 to i1
  br i1 %10261, label %10262, label %10284

10262:                                            ; preds = %10255
  %10263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10264 = call i32 @fileno(ptr noundef %10263) #9
  %10265 = call i32 @isatty(i32 noundef %10264) #9
  %10266 = icmp ne i32 %10265, 0
  br i1 %10266, label %10267, label %10284

10267:                                            ; preds = %10262
  %10268 = load i32, ptr %202, align 4, !tbaa !5
  %10269 = call ptr @__errno_location() #10
  store i32 %10268, ptr %10269, align 4, !tbaa !5
  %10270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10271 = load i32, ptr @test_count, align 4, !tbaa !5
  %10272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10273 = load i32, ptr %10272, align 4, !tbaa !5
  %10274 = call ptr @s2n_strerror(i32 noundef %10273, ptr noundef @.str.4)
  %10275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10276 = load i32, ptr %10275, align 4, !tbaa !5
  %10277 = call ptr @s2n_strerror_debug(i32 noundef %10276, ptr noundef @.str.4)
  %10278 = call ptr @__errno_location() #10
  %10279 = load i32, ptr %10278, align 4, !tbaa !5
  %10280 = call ptr @strerror(i32 noundef %10279) #9
  %10281 = call ptr @__errno_location() #10
  %10282 = load i32, ptr %10281, align 4, !tbaa !5
  %10283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10270, ptr noundef @.str.2, i32 noundef %10271, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 311, ptr noundef %10274, ptr noundef %10277, ptr noundef %10280, i32 noundef %10282) #9
  br label %10301

10284:                                            ; preds = %10262, %10255
  %10285 = load i32, ptr %202, align 4, !tbaa !5
  %10286 = call ptr @__errno_location() #10
  store i32 %10285, ptr %10286, align 4, !tbaa !5
  %10287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10288 = load i32, ptr @test_count, align 4, !tbaa !5
  %10289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10290 = load i32, ptr %10289, align 4, !tbaa !5
  %10291 = call ptr @s2n_strerror(i32 noundef %10290, ptr noundef @.str.4)
  %10292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10293 = load i32, ptr %10292, align 4, !tbaa !5
  %10294 = call ptr @s2n_strerror_debug(i32 noundef %10293, ptr noundef @.str.4)
  %10295 = call ptr @__errno_location() #10
  %10296 = load i32, ptr %10295, align 4, !tbaa !5
  %10297 = call ptr @strerror(i32 noundef %10296) #9
  %10298 = call ptr @__errno_location() #10
  %10299 = load i32, ptr %10298, align 4, !tbaa !5
  %10300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10287, ptr noundef @.str.5, i32 noundef %10288, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 311, ptr noundef %10291, ptr noundef %10294, ptr noundef %10297, i32 noundef %10299) #9
  br label %10301

10301:                                            ; preds = %10284, %10267
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #9
  br label %10302

10302:                                            ; preds = %10301
  br label %10303

10303:                                            ; preds = %10302
  call void @exit(i32 noundef 1) #11
  unreachable

10304:                                            ; No predecessors!
  br label %10305

10305:                                            ; preds = %10304
  br label %10306

10306:                                            ; preds = %10305, %10250
  br label %10307

10307:                                            ; preds = %10306
  br label %10308

10308:                                            ; preds = %10307
  br label %10309

10309:                                            ; preds = %10308
  br label %10310

10310:                                            ; preds = %10309
  %10311 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %10312 = icmp eq i32 %10311, -1
  br i1 %10312, label %10313, label %10366

10313:                                            ; preds = %10310
  br label %10314

10314:                                            ; preds = %10313
  br label %10315

10315:                                            ; preds = %10314
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #9
  %10316 = call ptr @__errno_location() #10
  %10317 = load i32, ptr %10316, align 4, !tbaa !5
  store i32 %10317, ptr %203, align 4, !tbaa !5
  %10318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10319 = call i32 @s2n_print_stacktrace(ptr noundef %10318)
  %10320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10321 = trunc i8 %10320 to i1
  br i1 %10321, label %10322, label %10344

10322:                                            ; preds = %10315
  %10323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10324 = call i32 @fileno(ptr noundef %10323) #9
  %10325 = call i32 @isatty(i32 noundef %10324) #9
  %10326 = icmp ne i32 %10325, 0
  br i1 %10326, label %10327, label %10344

10327:                                            ; preds = %10322
  %10328 = load i32, ptr %203, align 4, !tbaa !5
  %10329 = call ptr @__errno_location() #10
  store i32 %10328, ptr %10329, align 4, !tbaa !5
  %10330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10331 = load i32, ptr @test_count, align 4, !tbaa !5
  %10332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call ptr @s2n_strerror(i32 noundef %10333, ptr noundef @.str.4)
  %10335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10336 = load i32, ptr %10335, align 4, !tbaa !5
  %10337 = call ptr @s2n_strerror_debug(i32 noundef %10336, ptr noundef @.str.4)
  %10338 = call ptr @__errno_location() #10
  %10339 = load i32, ptr %10338, align 4, !tbaa !5
  %10340 = call ptr @strerror(i32 noundef %10339) #9
  %10341 = call ptr @__errno_location() #10
  %10342 = load i32, ptr %10341, align 4, !tbaa !5
  %10343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10330, ptr noundef @.str.2, i32 noundef %10331, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 311, ptr noundef %10334, ptr noundef %10337, ptr noundef %10340, i32 noundef %10342) #9
  br label %10361

10344:                                            ; preds = %10322, %10315
  %10345 = load i32, ptr %203, align 4, !tbaa !5
  %10346 = call ptr @__errno_location() #10
  store i32 %10345, ptr %10346, align 4, !tbaa !5
  %10347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10348 = load i32, ptr @test_count, align 4, !tbaa !5
  %10349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10350 = load i32, ptr %10349, align 4, !tbaa !5
  %10351 = call ptr @s2n_strerror(i32 noundef %10350, ptr noundef @.str.4)
  %10352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10353 = load i32, ptr %10352, align 4, !tbaa !5
  %10354 = call ptr @s2n_strerror_debug(i32 noundef %10353, ptr noundef @.str.4)
  %10355 = call ptr @__errno_location() #10
  %10356 = load i32, ptr %10355, align 4, !tbaa !5
  %10357 = call ptr @strerror(i32 noundef %10356) #9
  %10358 = call ptr @__errno_location() #10
  %10359 = load i32, ptr %10358, align 4, !tbaa !5
  %10360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10347, ptr noundef @.str.5, i32 noundef %10348, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 311, ptr noundef %10351, ptr noundef %10354, ptr noundef %10357, i32 noundef %10359) #9
  br label %10361

10361:                                            ; preds = %10344, %10327
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #9
  br label %10362

10362:                                            ; preds = %10361
  br label %10363

10363:                                            ; preds = %10362
  call void @exit(i32 noundef 1) #11
  unreachable

10364:                                            ; No predecessors!
  br label %10365

10365:                                            ; preds = %10364
  br label %10366

10366:                                            ; preds = %10365, %10310
  br label %10367

10367:                                            ; preds = %10366
  br label %10368

10368:                                            ; preds = %10367
  %10369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10370 = trunc i8 %10369 to i1
  br i1 %10370, label %10371, label %10387

10371:                                            ; preds = %10368
  %10372 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10373 = call i32 @fileno(ptr noundef %10372) #9
  %10374 = call i32 @isatty(i32 noundef %10373) #9
  %10375 = icmp ne i32 %10374, 0
  br i1 %10375, label %10376, label %10387

10376:                                            ; preds = %10371
  %10377 = load i32, ptr @test_count, align 4, !tbaa !5
  %10378 = icmp ne i32 %10377, 0
  br i1 %10378, label %10379, label %10383

10379:                                            ; preds = %10376
  %10380 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10381 = load i32, ptr @test_count, align 4, !tbaa !5
  %10382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10380, ptr noundef @.str.92, i32 noundef %10381) #9
  br label %10386

10383:                                            ; preds = %10376
  %10384 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10384, ptr noundef @.str.93) #9
  br label %10386

10386:                                            ; preds = %10383, %10379
  br label %10398

10387:                                            ; preds = %10371, %10368
  %10388 = load i32, ptr @test_count, align 4, !tbaa !5
  %10389 = icmp ne i32 %10388, 0
  br i1 %10389, label %10390, label %10394

10390:                                            ; preds = %10387
  %10391 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10392 = load i32, ptr @test_count, align 4, !tbaa !5
  %10393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10391, ptr noundef @.str.94, i32 noundef %10392) #9
  br label %10397

10394:                                            ; preds = %10387
  %10395 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10395, ptr noundef @.str.95) #9
  br label %10397

10397:                                            ; preds = %10394, %10390
  br label %10398

10398:                                            ; preds = %10397, %10386
  store i32 0, ptr %3, align 4
  store i32 1, ptr %204, align 4
  br label %10403

10399:                                            ; No predecessors!
  br label %10400

10400:                                            ; preds = %10399
  br label %10401

10401:                                            ; preds = %10400
  br label %10402

10402:                                            ; preds = %10401
  store i32 0, ptr %204, align 4
  br label %10403

10403:                                            ; preds = %10402, %10398
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  %10404 = load i32, ptr %204, align 4
  switch i32 %10404, label %10407 [
    i32 0, label %10405
    i32 1, label %10405
  ]

10405:                                            ; preds = %10403, %10403
  %10406 = load i32, ptr %3, align 4
  ret i32 %10406

10407:                                            ; preds = %10403
  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_find_security_policy_from_version(ptr noundef, ptr noundef) #2

declare zeroext i1 @s2n_is_in_fips_mode() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

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

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

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare void @s2n_debug_info_reset() #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare ptr @s2n_connection_get_curve(ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #8

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #8

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

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 16}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 8}
!43 = !{!"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}
!44 = !{!43, !10, i64 16}
!45 = !{!43, !10, i64 24}
!46 = !{!43, !10, i64 40}
!47 = !{!16, !10, i64 8}
!48 = !{!49, !10, i64 96}
!49 = !{!"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, !50, i64 24, !25, 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, !51, i64 304, !31, 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, !25, i64 448}
!50 = !{!"certs_by_type", !7, i64 0}
!51 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!52 = !{!16, !7, i64 220}
!53 = !{!16, !10, i64 656}
!54 = !{!55, !10, i64 8}
!55 = !{!"s2n_ecc_named_curve", !31, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!56 = !{!16, !10, i64 232}
!57 = !{!58, !10, i64 0}
!58 = !{!"s2n_crypto_parameters", !10, i64 0, !59, i64 8, !59, i64 16, !60, i64 24, !60, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!59 = !{!"s2n_session_key", !10, i64 0}
!60 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !61, i64 16, !61, i64 72, !61, i64 128, !61, i64 184, !7, i64 240, !7, i64 368}
!61 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}


; 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 = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [90 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 [14 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [65 x i8], align 1
@security_policy_20170328 = external constant %struct.s2n_security_policy, align 8
@.str.30 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@security_policy_test_all_tls13 = external constant %struct.s2n_security_policy, align 8
@.str.44 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [89 x i8], align 1
@security_policy_test_all_fips = external constant %struct.s2n_security_policy, align 8
@.str.56 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [80 x i8], align 1
@cipher_preferences_null = external constant %struct.s2n_cipher_preferences, align 8
@.str.66 = external hidden unnamed_addr constant [64 x i8], align 1
@security_policy_null = external constant %struct.s2n_security_policy, align 8
@.str.67 = external hidden unnamed_addr constant [58 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.68 = external hidden unnamed_addr constant [58 x i8], align 1
@s2n_signature_preferences_null = external constant %struct.s2n_signature_preferences, align 8
@.str.69 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_ecc_preferences_null = external constant %struct.s2n_ecc_preferences, align 8
@.str.70 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [62 x i8], align 1
@__const.main.no_curve = external hidden unnamed_addr constant [5 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.88 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [45 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.90 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.95 = 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 ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #10
  %35 = load ptr, ptr @stdout, align 8, !tbaa !9
  %36 = tail call i32 @fflush(ptr noundef %35)
  %37 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

39:                                               ; preds = %2
  %40 = tail call ptr @__errno_location() #11
  %41 = load i32, ptr %40, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @s2n_print_stacktrace(ptr noundef %42) #10
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %50

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #10
  %49 = tail call i32 @isatty(i32 noundef %48) #10
  %.not587 = icmp eq i32 %49, 0
  br i1 %.not587, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #10
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #10
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #10
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink, i32 noundef %53, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

63:                                               ; preds = %2
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @test_count, align 4, !tbaa !5
  %66 = tail call i32 @s2n_enable_atexit() #10
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

68:                                               ; preds = %63
  %69 = tail call ptr @__errno_location() #11
  %70 = load i32, ptr %69, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = tail call i32 @s2n_print_stacktrace(ptr noundef %71) #10
  %73 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %74 = trunc nuw i8 %73 to i1
  br i1 %74, label %75, label %79

75:                                               ; preds = %68
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = tail call i32 @fileno(ptr noundef %76) #10
  %78 = tail call i32 @isatty(i32 noundef %77) #10
  %.not586 = icmp eq i32 %78, 0
  br i1 %.not586, label %79, label %80

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.5.sink599 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #10
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #10
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #10
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink599, i32 noundef %82, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

92:                                               ; preds = %63
  %93 = tail call i32 @s2n_init() #10
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %92
  %96 = tail call ptr @__errno_location() #11
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #10
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #10
  %105 = tail call i32 @isatty(i32 noundef %104) #10
  %.not585 = icmp eq i32 %105, 0
  br i1 %.not585, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink610 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #10
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #10
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #10
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink610, i32 noundef %109, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

119:                                              ; preds = %92
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call i32 (...) @s2n_disable_tls13_in_test() #10
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %148

124:                                              ; preds = %119
  %125 = tail call ptr @__errno_location() #11
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @s2n_print_stacktrace(ptr noundef %127) #10
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %135

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #10
  %134 = tail call i32 @isatty(i32 noundef %133) #10
  %.not584 = icmp eq i32 %134, 0
  br i1 %.not584, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.5.sink621 = phi ptr [ @.str.5, %135 ], [ @.str.2, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.4) #10
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.4) #10
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #10
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.5.sink621, i32 noundef %138, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 29, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

148:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  store ptr null, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #10
  store ptr null, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  store ptr null, ptr %5, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.9, ptr noundef nonnull %4) #10
  %152 = icmp eq i32 %151, -1
  br i1 %152, label %153, label %177

153:                                              ; preds = %148
  %154 = tail call ptr @__errno_location() #11
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = call i32 @s2n_print_stacktrace(ptr noundef %156) #10
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %160, label %164

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @fileno(ptr noundef %161) #10
  %163 = call i32 @isatty(i32 noundef %162) #10
  %.not583 = icmp eq i32 %163, 0
  br i1 %.not583, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.5.sink632 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #10
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #10
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = call ptr @strerror(i32 noundef %173) #10
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink632, i32 noundef %167, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #12
  call void @exit(i32 noundef 1) #13
  unreachable

177:                                              ; preds = %148
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.11, ptr noundef nonnull %5) #10
  %181 = icmp eq i32 %180, -1
  br i1 %181, label %182, label %206

182:                                              ; preds = %177
  %183 = tail call ptr @__errno_location() #11
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = call i32 @s2n_print_stacktrace(ptr noundef %185) #10
  %187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %189, label %193

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @fileno(ptr noundef %190) #10
  %192 = call i32 @isatty(i32 noundef %191) #10
  %.not582 = icmp eq i32 %192, 0
  br i1 %.not582, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

194:                                              ; preds = %189, %193
  %.str.5.sink643 = phi ptr [ @.str.5, %193 ], [ @.str.2, %189 ]
  store i32 %184, ptr %183, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call ptr @s2n_strerror(i32 noundef %198, ptr noundef nonnull @.str.4) #10
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #10
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = call ptr @strerror(i32 noundef %202) #10
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink643, i32 noundef %196, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #12
  call void @exit(i32 noundef 1) #13
  unreachable

206:                                              ; preds = %177
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.13, ptr noundef nonnull %3) #10
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %211, label %235

211:                                              ; preds = %206
  %212 = tail call ptr @__errno_location() #11
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = call i32 @s2n_print_stacktrace(ptr noundef %214) #10
  %216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %222

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #10
  %221 = call i32 @isatty(i32 noundef %220) #10
  %.not581 = icmp eq i32 %221, 0
  br i1 %.not581, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

223:                                              ; preds = %218, %222
  %.str.5.sink654 = phi ptr [ @.str.5, %222 ], [ @.str.2, %218 ]
  store i32 %213, ptr %212, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef nonnull @.str.4) #10
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #10
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = call ptr @strerror(i32 noundef %231) #10
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink654, i32 noundef %225, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #12
  call void @exit(i32 noundef 1) #13
  unreachable

235:                                              ; preds = %206
  %236 = call zeroext i1 @s2n_is_in_fips_mode() #10
  br i1 %236, label %969, label %237

237:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  store ptr null, ptr %10, align 8, !tbaa !9
  %238 = load i32, ptr @test_count, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  store i32 %239, ptr @test_count, align 4, !tbaa !5
  %240 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %241 = icmp eq ptr %240, null
  br i1 %241, label %242, label %266

242:                                              ; preds = %237
  %243 = tail call ptr @__errno_location() #11
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = call i32 @s2n_print_stacktrace(ptr noundef %245) #10
  %247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %248 = trunc nuw i8 %247 to i1
  br i1 %248, label %249, label %253

249:                                              ; preds = %242
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = call i32 @fileno(ptr noundef %250) #10
  %252 = call i32 @isatty(i32 noundef %251) #10
  %.not433 = icmp eq i32 %252, 0
  br i1 %.not433, label %253, label %254

253:                                              ; preds = %249, %242
  br label %254

254:                                              ; preds = %249, %253
  %.str.5.sink665 = phi ptr [ @.str.5, %253 ], [ @.str.2, %249 ]
  store i32 %244, ptr %243, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror(i32 noundef %258, ptr noundef nonnull @.str.4) #10
  %260 = load i32, ptr %257, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef nonnull @.str.4) #10
  %262 = load i32, ptr %243, align 4, !tbaa !5
  %263 = call ptr @strerror(i32 noundef %262) #10
  %264 = load i32, ptr %243, align 4, !tbaa !5
  %265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef nonnull %.str.5.sink665, i32 noundef %256, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %259, ptr noundef %261, ptr noundef %263, i32 noundef %264) #12
  call void @exit(i32 noundef 1) #13
  unreachable

266:                                              ; preds = %237
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr @test_count, align 4, !tbaa !5
  %269 = getelementptr inbounds i8, ptr %240, i64 16
  %270 = load ptr, ptr %269, align 8, !tbaa !15
  %271 = icmp eq ptr %270, null
  br i1 %271, label %296, label %272

272:                                              ; preds = %266
  %273 = tail call ptr @__errno_location() #11
  %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) #10
  %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) #10
  %282 = call i32 @isatty(i32 noundef %281) #10
  %.not = icmp eq i32 %282, 0
  br i1 %.not, label %283, label %284

283:                                              ; preds = %279, %272
  br label %284

284:                                              ; preds = %279, %283
  %.str.5.sink676 = 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) #10
  %290 = load i32, ptr %287, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef nonnull @.str.4) #10
  %292 = load i32, ptr %273, align 4, !tbaa !5
  %293 = call ptr @strerror(i32 noundef %292) #10
  %294 = load i32, ptr %273, align 4, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull %.str.5.sink676, i32 noundef %286, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %289, ptr noundef %291, ptr noundef %293, i32 noundef %294) #12
  call void @exit(i32 noundef 1) #13
  unreachable

296:                                              ; preds = %266
  %297 = add nsw i32 %267, 2
  store i32 %297, ptr @test_count, align 4, !tbaa !5
  %298 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %240, ptr noundef nonnull %6) #10
  %299 = icmp eq i32 %298, -1
  br i1 %299, label %300, label %324

300:                                              ; preds = %296
  %301 = tail call ptr @__errno_location() #11
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = call i32 @s2n_print_stacktrace(ptr noundef %303) #10
  %305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %306 = trunc nuw i8 %305 to i1
  br i1 %306, label %307, label %311

307:                                              ; preds = %300
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = call i32 @fileno(ptr noundef %308) #10
  %310 = call i32 @isatty(i32 noundef %309) #10
  %.not432 = icmp eq i32 %310, 0
  br i1 %.not432, label %311, label %312

311:                                              ; preds = %307, %300
  br label %312

312:                                              ; preds = %307, %311
  %.str.5.sink687 = phi ptr [ @.str.5, %311 ], [ @.str.2, %307 ]
  store i32 %302, ptr %301, align 4, !tbaa !5
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror(i32 noundef %316, ptr noundef nonnull @.str.4) #10
  %318 = load i32, ptr %315, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror_debug(i32 noundef %318, ptr noundef nonnull @.str.4) #10
  %320 = load i32, ptr %301, align 4, !tbaa !5
  %321 = call ptr @strerror(i32 noundef %320) #10
  %322 = load i32, ptr %301, align 4, !tbaa !5
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %313, ptr noundef nonnull %.str.5.sink687, i32 noundef %314, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %317, ptr noundef %319, ptr noundef %321, i32 noundef %322) #12
  call void @exit(i32 noundef 1) #13
  unreachable

324:                                              ; preds = %296
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr @test_count, align 4, !tbaa !5
  %327 = load ptr, ptr %6, align 8, !tbaa !9
  %328 = load ptr, ptr %3, align 8, !tbaa !9
  %329 = getelementptr inbounds i8, ptr %328, i64 8
  %330 = load ptr, ptr %329, align 8, !tbaa !42
  %331 = icmp eq ptr %327, %330
  br i1 %331, label %356, label %332

332:                                              ; preds = %324
  %333 = tail call ptr @__errno_location() #11
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @s2n_print_stacktrace(ptr noundef %335) #10
  %337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %338 = trunc nuw i8 %337 to i1
  br i1 %338, label %339, label %343

339:                                              ; preds = %332
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @fileno(ptr noundef %340) #10
  %342 = call i32 @isatty(i32 noundef %341) #10
  %.not410 = icmp eq i32 %342, 0
  br i1 %.not410, label %343, label %344

343:                                              ; preds = %339, %332
  br label %344

344:                                              ; preds = %339, %343
  %.str.5.sink698 = phi ptr [ @.str.5, %343 ], [ @.str.2, %339 ]
  store i32 %334, ptr %333, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror(i32 noundef %348, ptr noundef nonnull @.str.4) #10
  %350 = load i32, ptr %347, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror_debug(i32 noundef %350, ptr noundef nonnull @.str.4) #10
  %352 = load i32, ptr %333, align 4, !tbaa !5
  %353 = call ptr @strerror(i32 noundef %352) #10
  %354 = load i32, ptr %333, align 4, !tbaa !5
  %355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef nonnull %.str.5.sink698, i32 noundef %346, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %349, ptr noundef %351, ptr noundef %353, i32 noundef %354) #12
  call void @exit(i32 noundef 1) #13
  unreachable

356:                                              ; preds = %324
  %357 = add nsw i32 %325, 2
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %240, ptr noundef nonnull %7) #10
  %359 = icmp eq i32 %358, -1
  br i1 %359, label %360, label %384

360:                                              ; preds = %356
  %361 = tail call ptr @__errno_location() #11
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = call i32 @s2n_print_stacktrace(ptr noundef %363) #10
  %365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %366 = trunc nuw i8 %365 to i1
  br i1 %366, label %367, label %371

367:                                              ; preds = %360
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = call i32 @fileno(ptr noundef %368) #10
  %370 = call i32 @isatty(i32 noundef %369) #10
  %.not431 = icmp eq i32 %370, 0
  br i1 %.not431, label %371, label %372

371:                                              ; preds = %367, %360
  br label %372

372:                                              ; preds = %367, %371
  %.str.5.sink709 = phi ptr [ @.str.5, %371 ], [ @.str.2, %367 ]
  store i32 %362, ptr %361, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror(i32 noundef %376, ptr noundef nonnull @.str.4) #10
  %378 = load i32, ptr %375, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror_debug(i32 noundef %378, ptr noundef nonnull @.str.4) #10
  %380 = load i32, ptr %361, align 4, !tbaa !5
  %381 = call ptr @strerror(i32 noundef %380) #10
  %382 = load i32, ptr %361, align 4, !tbaa !5
  %383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef nonnull %.str.5.sink709, i32 noundef %374, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %377, ptr noundef %379, ptr noundef %381, i32 noundef %382) #12
  call void @exit(i32 noundef 1) #13
  unreachable

384:                                              ; preds = %356
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = load ptr, ptr %7, align 8, !tbaa !9
  %388 = load ptr, ptr %3, align 8, !tbaa !9
  %389 = icmp eq ptr %387, %388
  br i1 %389, label %414, label %390

390:                                              ; preds = %384
  %391 = tail call ptr @__errno_location() #11
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = call i32 @s2n_print_stacktrace(ptr noundef %393) #10
  %395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %396 = trunc nuw i8 %395 to i1
  br i1 %396, label %397, label %401

397:                                              ; preds = %390
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = call i32 @fileno(ptr noundef %398) #10
  %400 = call i32 @isatty(i32 noundef %399) #10
  %.not411 = icmp eq i32 %400, 0
  br i1 %.not411, label %401, label %402

401:                                              ; preds = %397, %390
  br label %402

402:                                              ; preds = %397, %401
  %.str.5.sink720 = phi ptr [ @.str.5, %401 ], [ @.str.2, %397 ]
  store i32 %392, ptr %391, align 4, !tbaa !5
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror(i32 noundef %406, ptr noundef nonnull @.str.4) #10
  %408 = load i32, ptr %405, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror_debug(i32 noundef %408, ptr noundef nonnull @.str.4) #10
  %410 = load i32, ptr %391, align 4, !tbaa !5
  %411 = call ptr @strerror(i32 noundef %410) #10
  %412 = load i32, ptr %391, align 4, !tbaa !5
  %413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %403, ptr noundef nonnull %.str.5.sink720, i32 noundef %404, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %407, ptr noundef %409, ptr noundef %411, i32 noundef %412) #12
  call void @exit(i32 noundef 1) #13
  unreachable

414:                                              ; preds = %384
  %415 = add nsw i32 %385, 2
  store i32 %415, ptr @test_count, align 4, !tbaa !5
  %416 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %240, ptr noundef nonnull %8) #10
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %418, label %442

418:                                              ; preds = %414
  %419 = tail call ptr @__errno_location() #11
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = call i32 @s2n_print_stacktrace(ptr noundef %421) #10
  %423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %424 = trunc nuw i8 %423 to i1
  br i1 %424, label %425, label %429

425:                                              ; preds = %418
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = call i32 @fileno(ptr noundef %426) #10
  %428 = call i32 @isatty(i32 noundef %427) #10
  %.not430 = icmp eq i32 %428, 0
  br i1 %.not430, label %429, label %430

429:                                              ; preds = %425, %418
  br label %430

430:                                              ; preds = %425, %429
  %.str.5.sink731 = phi ptr [ @.str.5, %429 ], [ @.str.2, %425 ]
  store i32 %420, ptr %419, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror(i32 noundef %434, ptr noundef nonnull @.str.4) #10
  %436 = load i32, ptr %433, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef nonnull @.str.4) #10
  %438 = load i32, ptr %419, align 4, !tbaa !5
  %439 = call ptr @strerror(i32 noundef %438) #10
  %440 = load i32, ptr %419, align 4, !tbaa !5
  %441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef nonnull %.str.5.sink731, i32 noundef %432, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %435, ptr noundef %437, ptr noundef %439, i32 noundef %440) #12
  call void @exit(i32 noundef 1) #13
  unreachable

442:                                              ; preds = %414
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = load ptr, ptr %8, align 8, !tbaa !9
  %446 = load ptr, ptr %3, align 8, !tbaa !9
  %447 = getelementptr inbounds i8, ptr %446, i64 16
  %448 = load ptr, ptr %447, align 8, !tbaa !44
  %449 = icmp eq ptr %445, %448
  br i1 %449, label %474, label %450

450:                                              ; preds = %442
  %451 = tail call ptr @__errno_location() #11
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453) #10
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc nuw i8 %455 to i1
  br i1 %456, label %457, label %461

457:                                              ; preds = %450
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #10
  %460 = call i32 @isatty(i32 noundef %459) #10
  %.not412 = icmp eq i32 %460, 0
  br i1 %.not412, label %461, label %462

461:                                              ; preds = %457, %450
  br label %462

462:                                              ; preds = %457, %461
  %.str.5.sink742 = phi ptr [ @.str.5, %461 ], [ @.str.2, %457 ]
  store i32 %452, ptr %451, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %466, ptr noundef nonnull @.str.4) #10
  %468 = load i32, ptr %465, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef nonnull @.str.4) #10
  %470 = load i32, ptr %451, align 4, !tbaa !5
  %471 = call ptr @strerror(i32 noundef %470) #10
  %472 = load i32, ptr %451, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.5.sink742, i32 noundef %464, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %467, ptr noundef %469, ptr noundef %471, i32 noundef %472) #12
  call void @exit(i32 noundef 1) #13
  unreachable

474:                                              ; preds = %442
  %475 = add nsw i32 %443, 2
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  %476 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %240, ptr noundef nonnull %9) #10
  %477 = icmp eq i32 %476, -1
  br i1 %477, label %478, label %502

478:                                              ; preds = %474
  %479 = tail call ptr @__errno_location() #11
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = call i32 @s2n_print_stacktrace(ptr noundef %481) #10
  %483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %484 = trunc nuw i8 %483 to i1
  br i1 %484, label %485, label %489

485:                                              ; preds = %478
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = call i32 @fileno(ptr noundef %486) #10
  %488 = call i32 @isatty(i32 noundef %487) #10
  %.not429 = icmp eq i32 %488, 0
  br i1 %.not429, label %489, label %490

489:                                              ; preds = %485, %478
  br label %490

490:                                              ; preds = %485, %489
  %.str.5.sink753 = phi ptr [ @.str.5, %489 ], [ @.str.2, %485 ]
  store i32 %480, ptr %479, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror(i32 noundef %494, ptr noundef nonnull @.str.4) #10
  %496 = load i32, ptr %493, align 4, !tbaa !5
  %497 = call ptr @s2n_strerror_debug(i32 noundef %496, ptr noundef nonnull @.str.4) #10
  %498 = load i32, ptr %479, align 4, !tbaa !5
  %499 = call ptr @strerror(i32 noundef %498) #10
  %500 = load i32, ptr %479, align 4, !tbaa !5
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %491, ptr noundef nonnull %.str.5.sink753, i32 noundef %492, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %495, ptr noundef %497, ptr noundef %499, i32 noundef %500) #12
  call void @exit(i32 noundef 1) #13
  unreachable

502:                                              ; preds = %474
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr @test_count, align 4, !tbaa !5
  %505 = load ptr, ptr %9, align 8, !tbaa !9
  %506 = load ptr, ptr %3, align 8, !tbaa !9
  %507 = getelementptr inbounds i8, ptr %506, i64 24
  %508 = load ptr, ptr %507, align 8, !tbaa !45
  %509 = icmp eq ptr %505, %508
  br i1 %509, label %534, label %510

510:                                              ; preds = %502
  %511 = tail call ptr @__errno_location() #11
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @s2n_print_stacktrace(ptr noundef %513) #10
  %515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %516 = trunc nuw i8 %515 to i1
  br i1 %516, label %517, label %521

517:                                              ; preds = %510
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @fileno(ptr noundef %518) #10
  %520 = call i32 @isatty(i32 noundef %519) #10
  %.not413 = icmp eq i32 %520, 0
  br i1 %.not413, label %521, label %522

521:                                              ; preds = %517, %510
  br label %522

522:                                              ; preds = %517, %521
  %.str.5.sink764 = phi ptr [ @.str.5, %521 ], [ @.str.2, %517 ]
  store i32 %512, ptr %511, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef nonnull @.str.4) #10
  %528 = load i32, ptr %525, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror_debug(i32 noundef %528, ptr noundef nonnull @.str.4) #10
  %530 = load i32, ptr %511, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #10
  %532 = load i32, ptr %511, align 4, !tbaa !5
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef nonnull %.str.5.sink764, i32 noundef %524, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %527, ptr noundef %529, ptr noundef %531, i32 noundef %532) #12
  call void @exit(i32 noundef 1) #13
  unreachable

534:                                              ; preds = %502
  %535 = add nsw i32 %503, 2
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %240, ptr noundef nonnull %10) #10
  %537 = icmp eq i32 %536, -1
  br i1 %537, label %538, label %562

538:                                              ; preds = %534
  %539 = tail call ptr @__errno_location() #11
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @s2n_print_stacktrace(ptr noundef %541) #10
  %543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %544 = trunc nuw i8 %543 to i1
  br i1 %544, label %545, label %549

545:                                              ; preds = %538
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @fileno(ptr noundef %546) #10
  %548 = call i32 @isatty(i32 noundef %547) #10
  %.not428 = icmp eq i32 %548, 0
  br i1 %.not428, label %549, label %550

549:                                              ; preds = %545, %538
  br label %550

550:                                              ; preds = %545, %549
  %.str.5.sink775 = phi ptr [ @.str.5, %549 ], [ @.str.2, %545 ]
  store i32 %540, ptr %539, align 4, !tbaa !5
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror(i32 noundef %554, ptr noundef nonnull @.str.4) #10
  %556 = load i32, ptr %553, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef nonnull @.str.4) #10
  %558 = load i32, ptr %539, align 4, !tbaa !5
  %559 = call ptr @strerror(i32 noundef %558) #10
  %560 = load i32, ptr %539, align 4, !tbaa !5
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %551, ptr noundef nonnull %.str.5.sink775, i32 noundef %552, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %555, ptr noundef %557, ptr noundef %559, i32 noundef %560) #12
  call void @exit(i32 noundef 1) #13
  unreachable

562:                                              ; preds = %534
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  %565 = load ptr, ptr %10, align 8, !tbaa !9
  %566 = load ptr, ptr %3, align 8, !tbaa !9
  %567 = getelementptr inbounds i8, ptr %566, i64 40
  %568 = load ptr, ptr %567, align 8, !tbaa !46
  %569 = icmp eq ptr %565, %568
  br i1 %569, label %594, label %570

570:                                              ; preds = %562
  %571 = tail call ptr @__errno_location() #11
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @s2n_print_stacktrace(ptr noundef %573) #10
  %575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %576 = trunc nuw i8 %575 to i1
  br i1 %576, label %577, label %581

577:                                              ; preds = %570
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = call i32 @fileno(ptr noundef %578) #10
  %580 = call i32 @isatty(i32 noundef %579) #10
  %.not414 = icmp eq i32 %580, 0
  br i1 %.not414, label %581, label %582

581:                                              ; preds = %577, %570
  br label %582

582:                                              ; preds = %577, %581
  %.str.5.sink786 = phi ptr [ @.str.5, %581 ], [ @.str.2, %577 ]
  store i32 %572, ptr %571, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror(i32 noundef %586, ptr noundef nonnull @.str.4) #10
  %588 = load i32, ptr %585, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef nonnull @.str.4) #10
  %590 = load i32, ptr %571, align 4, !tbaa !5
  %591 = call ptr @strerror(i32 noundef %590) #10
  %592 = load i32, ptr %571, align 4, !tbaa !5
  %593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef nonnull %.str.5.sink786, i32 noundef %584, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %587, ptr noundef %589, ptr noundef %591, i32 noundef %592) #12
  call void @exit(i32 noundef 1) #13
  unreachable

594:                                              ; preds = %562
  %595 = add nsw i32 %563, 2
  store i32 %595, ptr @test_count, align 4, !tbaa !5
  %596 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %240, ptr noundef nonnull @.str.27) #10
  %597 = icmp eq i32 %596, -1
  br i1 %597, label %598, label %622

598:                                              ; preds = %594
  %599 = tail call ptr @__errno_location() #11
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @s2n_print_stacktrace(ptr noundef %601) #10
  %603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %604 = trunc nuw i8 %603 to i1
  br i1 %604, label %605, label %609

605:                                              ; preds = %598
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = call i32 @fileno(ptr noundef %606) #10
  %608 = call i32 @isatty(i32 noundef %607) #10
  %.not427 = icmp eq i32 %608, 0
  br i1 %.not427, label %609, label %610

609:                                              ; preds = %605, %598
  br label %610

610:                                              ; preds = %605, %609
  %.str.5.sink797 = phi ptr [ @.str.5, %609 ], [ @.str.2, %605 ]
  store i32 %600, ptr %599, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror(i32 noundef %614, ptr noundef nonnull @.str.4) #10
  %616 = load i32, ptr %613, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror_debug(i32 noundef %616, ptr noundef nonnull @.str.4) #10
  %618 = load i32, ptr %599, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #10
  %620 = load i32, ptr %599, align 4, !tbaa !5
  %621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %611, ptr noundef nonnull %.str.5.sink797, i32 noundef %612, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %615, ptr noundef %617, ptr noundef %619, i32 noundef %620) #12
  call void @exit(i32 noundef 1) #13
  unreachable

622:                                              ; preds = %594
  %623 = load i32, ptr @test_count, align 4, !tbaa !5
  %624 = add nsw i32 %623, 1
  store i32 %624, ptr @test_count, align 4, !tbaa !5
  %625 = load ptr, ptr %269, align 8, !tbaa !15
  %626 = icmp eq ptr %625, null
  br i1 %626, label %627, label %651

627:                                              ; preds = %622
  %628 = tail call ptr @__errno_location() #11
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @s2n_print_stacktrace(ptr noundef %630) #10
  %632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %633 = trunc nuw i8 %632 to i1
  br i1 %633, label %634, label %638

634:                                              ; preds = %627
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @fileno(ptr noundef %635) #10
  %637 = call i32 @isatty(i32 noundef %636) #10
  %.not426 = icmp eq i32 %637, 0
  br i1 %.not426, label %638, label %639

638:                                              ; preds = %634, %627
  br label %639

639:                                              ; preds = %634, %638
  %.str.5.sink808 = phi ptr [ @.str.5, %638 ], [ @.str.2, %634 ]
  store i32 %629, ptr %628, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror(i32 noundef %643, ptr noundef nonnull @.str.4) #10
  %645 = load i32, ptr %642, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror_debug(i32 noundef %645, ptr noundef nonnull @.str.4) #10
  %647 = load i32, ptr %628, align 4, !tbaa !5
  %648 = call ptr @strerror(i32 noundef %647) #10
  %649 = load i32, ptr %628, align 4, !tbaa !5
  %650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %640, ptr noundef nonnull %.str.5.sink808, i32 noundef %641, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %644, ptr noundef %646, ptr noundef %648, i32 noundef %649) #12
  call void @exit(i32 noundef 1) #13
  unreachable

651:                                              ; preds = %622
  store ptr null, ptr %6, align 8, !tbaa !9
  %652 = add nsw i32 %623, 2
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %240, ptr noundef nonnull %6) #10
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %679

655:                                              ; preds = %651
  %656 = tail call ptr @__errno_location() #11
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 @s2n_print_stacktrace(ptr noundef %658) #10
  %660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %661 = trunc nuw i8 %660 to i1
  br i1 %661, label %662, label %666

662:                                              ; preds = %655
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @fileno(ptr noundef %663) #10
  %665 = call i32 @isatty(i32 noundef %664) #10
  %.not425 = icmp eq i32 %665, 0
  br i1 %.not425, label %666, label %667

666:                                              ; preds = %662, %655
  br label %667

667:                                              ; preds = %662, %666
  %.str.5.sink819 = phi ptr [ @.str.5, %666 ], [ @.str.2, %662 ]
  store i32 %657, ptr %656, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef nonnull @.str.4) #10
  %673 = load i32, ptr %670, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef nonnull @.str.4) #10
  %675 = load i32, ptr %656, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #10
  %677 = load i32, ptr %656, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef nonnull %.str.5.sink819, i32 noundef %669, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %672, ptr noundef %674, ptr noundef %676, i32 noundef %677) #12
  call void @exit(i32 noundef 1) #13
  unreachable

679:                                              ; preds = %651
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = load ptr, ptr %6, align 8, !tbaa !9
  %683 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170328, i64 8), align 8, !tbaa !42
  %684 = icmp eq ptr %682, %683
  br i1 %684, label %709, label %685

685:                                              ; preds = %679
  %686 = tail call ptr @__errno_location() #11
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @s2n_print_stacktrace(ptr noundef %688) #10
  %690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %691 = trunc nuw i8 %690 to i1
  br i1 %691, label %692, label %696

692:                                              ; preds = %685
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = call i32 @fileno(ptr noundef %693) #10
  %695 = call i32 @isatty(i32 noundef %694) #10
  %.not415 = icmp eq i32 %695, 0
  br i1 %.not415, label %696, label %697

696:                                              ; preds = %692, %685
  br label %697

697:                                              ; preds = %692, %696
  %.str.5.sink830 = phi ptr [ @.str.5, %696 ], [ @.str.2, %692 ]
  store i32 %687, ptr %686, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror(i32 noundef %701, ptr noundef nonnull @.str.4) #10
  %703 = load i32, ptr %700, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror_debug(i32 noundef %703, ptr noundef nonnull @.str.4) #10
  %705 = load i32, ptr %686, align 4, !tbaa !5
  %706 = call ptr @strerror(i32 noundef %705) #10
  %707 = load i32, ptr %686, align 4, !tbaa !5
  %708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %698, ptr noundef nonnull %.str.5.sink830, i32 noundef %699, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %702, ptr noundef %704, ptr noundef %706, i32 noundef %707) #12
  call void @exit(i32 noundef 1) #13
  unreachable

709:                                              ; preds = %679
  store ptr null, ptr %7, align 8, !tbaa !9
  %710 = add nsw i32 %680, 2
  store i32 %710, ptr @test_count, align 4, !tbaa !5
  %711 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %240, ptr noundef nonnull %7) #10
  %712 = icmp eq i32 %711, -1
  br i1 %712, label %713, label %737

713:                                              ; preds = %709
  %714 = tail call ptr @__errno_location() #11
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @s2n_print_stacktrace(ptr noundef %716) #10
  %718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %719 = trunc nuw i8 %718 to i1
  br i1 %719, label %720, label %724

720:                                              ; preds = %713
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = call i32 @fileno(ptr noundef %721) #10
  %723 = call i32 @isatty(i32 noundef %722) #10
  %.not424 = icmp eq i32 %723, 0
  br i1 %.not424, label %724, label %725

724:                                              ; preds = %720, %713
  br label %725

725:                                              ; preds = %720, %724
  %.str.5.sink841 = phi ptr [ @.str.5, %724 ], [ @.str.2, %720 ]
  store i32 %715, ptr %714, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef nonnull @.str.4) #10
  %731 = load i32, ptr %728, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef nonnull @.str.4) #10
  %733 = load i32, ptr %714, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #10
  %735 = load i32, ptr %714, align 4, !tbaa !5
  %736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %726, ptr noundef nonnull %.str.5.sink841, i32 noundef %727, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %730, ptr noundef %732, ptr noundef %734, i32 noundef %735) #12
  call void @exit(i32 noundef 1) #13
  unreachable

737:                                              ; preds = %709
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr @test_count, align 4, !tbaa !5
  %740 = load ptr, ptr %7, align 8, !tbaa !9
  %741 = icmp eq ptr %740, @security_policy_20170328
  br i1 %741, label %766, label %742

742:                                              ; preds = %737
  %743 = tail call ptr @__errno_location() #11
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745) #10
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc nuw i8 %747 to i1
  br i1 %748, label %749, label %753

749:                                              ; preds = %742
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #10
  %752 = call i32 @isatty(i32 noundef %751) #10
  %.not416 = icmp eq i32 %752, 0
  br i1 %.not416, label %753, label %754

753:                                              ; preds = %749, %742
  br label %754

754:                                              ; preds = %749, %753
  %.str.5.sink852 = phi ptr [ @.str.5, %753 ], [ @.str.2, %749 ]
  store i32 %744, ptr %743, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef nonnull @.str.4) #10
  %760 = load i32, ptr %757, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef nonnull @.str.4) #10
  %762 = load i32, ptr %743, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #10
  %764 = load i32, ptr %743, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef nonnull %.str.5.sink852, i32 noundef %756, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %759, ptr noundef %761, ptr noundef %763, i32 noundef %764) #12
  call void @exit(i32 noundef 1) #13
  unreachable

766:                                              ; preds = %737
  store ptr null, ptr %8, align 8, !tbaa !9
  %767 = add nsw i32 %738, 2
  store i32 %767, ptr @test_count, align 4, !tbaa !5
  %768 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %240, ptr noundef nonnull %8) #10
  %769 = icmp eq i32 %768, -1
  br i1 %769, label %770, label %794

770:                                              ; preds = %766
  %771 = tail call ptr @__errno_location() #11
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = call i32 @s2n_print_stacktrace(ptr noundef %773) #10
  %775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %776 = trunc nuw i8 %775 to i1
  br i1 %776, label %777, label %781

777:                                              ; preds = %770
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @fileno(ptr noundef %778) #10
  %780 = call i32 @isatty(i32 noundef %779) #10
  %.not423 = icmp eq i32 %780, 0
  br i1 %.not423, label %781, label %782

781:                                              ; preds = %777, %770
  br label %782

782:                                              ; preds = %777, %781
  %.str.5.sink863 = phi ptr [ @.str.5, %781 ], [ @.str.2, %777 ]
  store i32 %772, ptr %771, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror(i32 noundef %786, ptr noundef nonnull @.str.4) #10
  %788 = load i32, ptr %785, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror_debug(i32 noundef %788, ptr noundef nonnull @.str.4) #10
  %790 = load i32, ptr %771, align 4, !tbaa !5
  %791 = call ptr @strerror(i32 noundef %790) #10
  %792 = load i32, ptr %771, align 4, !tbaa !5
  %793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef nonnull %.str.5.sink863, i32 noundef %784, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %787, ptr noundef %789, ptr noundef %791, i32 noundef %792) #12
  call void @exit(i32 noundef 1) #13
  unreachable

794:                                              ; preds = %766
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = load ptr, ptr %8, align 8, !tbaa !9
  %798 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170328, i64 16), align 8, !tbaa !44
  %799 = icmp eq ptr %797, %798
  br i1 %799, label %824, label %800

800:                                              ; preds = %794
  %801 = tail call ptr @__errno_location() #11
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @s2n_print_stacktrace(ptr noundef %803) #10
  %805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %806 = trunc nuw i8 %805 to i1
  br i1 %806, label %807, label %811

807:                                              ; preds = %800
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @fileno(ptr noundef %808) #10
  %810 = call i32 @isatty(i32 noundef %809) #10
  %.not417 = icmp eq i32 %810, 0
  br i1 %.not417, label %811, label %812

811:                                              ; preds = %807, %800
  br label %812

812:                                              ; preds = %807, %811
  %.str.5.sink874 = phi ptr [ @.str.5, %811 ], [ @.str.2, %807 ]
  store i32 %802, ptr %801, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef nonnull @.str.4) #10
  %818 = load i32, ptr %815, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef nonnull @.str.4) #10
  %820 = load i32, ptr %801, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #10
  %822 = load i32, ptr %801, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef nonnull %.str.5.sink874, i32 noundef %814, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %817, ptr noundef %819, ptr noundef %821, i32 noundef %822) #12
  call void @exit(i32 noundef 1) #13
  unreachable

824:                                              ; preds = %794
  store ptr null, ptr %9, align 8, !tbaa !9
  %825 = add nsw i32 %795, 2
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %240, ptr noundef nonnull %9) #10
  %827 = icmp eq i32 %826, -1
  br i1 %827, label %828, label %852

828:                                              ; preds = %824
  %829 = tail call ptr @__errno_location() #11
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = call i32 @s2n_print_stacktrace(ptr noundef %831) #10
  %833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %834 = trunc nuw i8 %833 to i1
  br i1 %834, label %835, label %839

835:                                              ; preds = %828
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = call i32 @fileno(ptr noundef %836) #10
  %838 = call i32 @isatty(i32 noundef %837) #10
  %.not422 = icmp eq i32 %838, 0
  br i1 %.not422, label %839, label %840

839:                                              ; preds = %835, %828
  br label %840

840:                                              ; preds = %835, %839
  %.str.5.sink885 = phi ptr [ @.str.5, %839 ], [ @.str.2, %835 ]
  store i32 %830, ptr %829, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef nonnull @.str.4) #10
  %846 = load i32, ptr %843, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef nonnull @.str.4) #10
  %848 = load i32, ptr %829, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #10
  %850 = load i32, ptr %829, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef nonnull %.str.5.sink885, i32 noundef %842, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %845, ptr noundef %847, ptr noundef %849, i32 noundef %850) #12
  call void @exit(i32 noundef 1) #13
  unreachable

852:                                              ; preds = %824
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr @test_count, align 4, !tbaa !5
  %855 = load ptr, ptr %9, align 8, !tbaa !9
  %856 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170328, i64 24), align 8, !tbaa !45
  %857 = icmp eq ptr %855, %856
  br i1 %857, label %882, label %858

858:                                              ; preds = %852
  %859 = tail call ptr @__errno_location() #11
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = call i32 @s2n_print_stacktrace(ptr noundef %861) #10
  %863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %864 = trunc nuw i8 %863 to i1
  br i1 %864, label %865, label %869

865:                                              ; preds = %858
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = call i32 @fileno(ptr noundef %866) #10
  %868 = call i32 @isatty(i32 noundef %867) #10
  %.not418 = icmp eq i32 %868, 0
  br i1 %.not418, label %869, label %870

869:                                              ; preds = %865, %858
  br label %870

870:                                              ; preds = %865, %869
  %.str.5.sink896 = phi ptr [ @.str.5, %869 ], [ @.str.2, %865 ]
  store i32 %860, ptr %859, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror(i32 noundef %874, ptr noundef nonnull @.str.4) #10
  %876 = load i32, ptr %873, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror_debug(i32 noundef %876, ptr noundef nonnull @.str.4) #10
  %878 = load i32, ptr %859, align 4, !tbaa !5
  %879 = call ptr @strerror(i32 noundef %878) #10
  %880 = load i32, ptr %859, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %871, ptr noundef nonnull %.str.5.sink896, i32 noundef %872, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %875, ptr noundef %877, ptr noundef %879, i32 noundef %880) #12
  call void @exit(i32 noundef 1) #13
  unreachable

882:                                              ; preds = %852
  store ptr null, ptr %10, align 8, !tbaa !9
  %883 = add nsw i32 %853, 2
  store i32 %883, ptr @test_count, align 4, !tbaa !5
  %884 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %240, ptr noundef nonnull %10) #10
  %885 = icmp eq i32 %884, -1
  br i1 %885, label %886, label %910

886:                                              ; preds = %882
  %887 = tail call ptr @__errno_location() #11
  %888 = load i32, ptr %887, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @s2n_print_stacktrace(ptr noundef %889) #10
  %891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %892 = trunc nuw i8 %891 to i1
  br i1 %892, label %893, label %897

893:                                              ; preds = %886
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = call i32 @fileno(ptr noundef %894) #10
  %896 = call i32 @isatty(i32 noundef %895) #10
  %.not421 = icmp eq i32 %896, 0
  br i1 %.not421, label %897, label %898

897:                                              ; preds = %893, %886
  br label %898

898:                                              ; preds = %893, %897
  %.str.5.sink907 = phi ptr [ @.str.5, %897 ], [ @.str.2, %893 ]
  store i32 %888, ptr %887, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef nonnull @.str.4) #10
  %904 = load i32, ptr %901, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror_debug(i32 noundef %904, ptr noundef nonnull @.str.4) #10
  %906 = load i32, ptr %887, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #10
  %908 = load i32, ptr %887, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %899, ptr noundef nonnull %.str.5.sink907, i32 noundef %900, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %903, ptr noundef %905, ptr noundef %907, i32 noundef %908) #12
  call void @exit(i32 noundef 1) #13
  unreachable

910:                                              ; preds = %882
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = add nsw i32 %911, 1
  store i32 %912, ptr @test_count, align 4, !tbaa !5
  %913 = load ptr, ptr %10, align 8, !tbaa !9
  %914 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_20170328, i64 40), align 8, !tbaa !46
  %915 = icmp eq ptr %913, %914
  br i1 %915, label %940, label %916

916:                                              ; preds = %910
  %917 = tail call ptr @__errno_location() #11
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @s2n_print_stacktrace(ptr noundef %919) #10
  %921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %922 = trunc nuw i8 %921 to i1
  br i1 %922, label %923, label %927

923:                                              ; preds = %916
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @fileno(ptr noundef %924) #10
  %926 = call i32 @isatty(i32 noundef %925) #10
  %.not419 = icmp eq i32 %926, 0
  br i1 %.not419, label %927, label %928

927:                                              ; preds = %923, %916
  br label %928

928:                                              ; preds = %923, %927
  %.str.5.sink918 = phi ptr [ @.str.5, %927 ], [ @.str.2, %923 ]
  store i32 %918, ptr %917, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror(i32 noundef %932, ptr noundef nonnull @.str.4) #10
  %934 = load i32, ptr %931, align 4, !tbaa !5
  %935 = call ptr @s2n_strerror_debug(i32 noundef %934, ptr noundef nonnull @.str.4) #10
  %936 = load i32, ptr %917, align 4, !tbaa !5
  %937 = call ptr @strerror(i32 noundef %936) #10
  %938 = load i32, ptr %917, align 4, !tbaa !5
  %939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %929, ptr noundef nonnull %.str.5.sink918, i32 noundef %930, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %933, ptr noundef %935, ptr noundef %937, i32 noundef %938) #12
  call void @exit(i32 noundef 1) #13
  unreachable

940:                                              ; preds = %910
  %941 = add nsw i32 %911, 2
  store i32 %941, ptr @test_count, align 4, !tbaa !5
  %942 = call i32 @s2n_connection_free(ptr noundef nonnull %240) #10
  %943 = icmp eq i32 %942, -1
  br i1 %943, label %944, label %968

944:                                              ; preds = %940
  %945 = tail call ptr @__errno_location() #11
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @s2n_print_stacktrace(ptr noundef %947) #10
  %949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %950 = trunc nuw i8 %949 to i1
  br i1 %950, label %951, label %955

951:                                              ; preds = %944
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = call i32 @fileno(ptr noundef %952) #10
  %954 = call i32 @isatty(i32 noundef %953) #10
  %.not420 = icmp eq i32 %954, 0
  br i1 %.not420, label %955, label %956

955:                                              ; preds = %951, %944
  br label %956

956:                                              ; preds = %951, %955
  %.str.5.sink929 = phi ptr [ @.str.5, %955 ], [ @.str.2, %951 ]
  store i32 %946, ptr %945, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef nonnull @.str.4) #10
  %962 = load i32, ptr %959, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror_debug(i32 noundef %962, ptr noundef nonnull @.str.4) #10
  %964 = load i32, ptr %945, align 4, !tbaa !5
  %965 = call ptr @strerror(i32 noundef %964) #10
  %966 = load i32, ptr %945, align 4, !tbaa !5
  %967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef nonnull %.str.5.sink929, i32 noundef %958, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %961, ptr noundef %963, ptr noundef %965, i32 noundef %966) #12
  call void @exit(i32 noundef 1) #13
  unreachable

968:                                              ; preds = %940
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  br label %969

969:                                              ; preds = %235, %968
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr @test_count, align 4, !tbaa !5
  %972 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %973 = icmp eq i32 %972, -1
  br i1 %973, label %974, label %998

974:                                              ; preds = %969
  %975 = tail call ptr @__errno_location() #11
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @s2n_print_stacktrace(ptr noundef %977) #10
  %979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %980 = trunc nuw i8 %979 to i1
  br i1 %980, label %981, label %985

981:                                              ; preds = %974
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @fileno(ptr noundef %982) #10
  %984 = call i32 @isatty(i32 noundef %983) #10
  %.not580 = icmp eq i32 %984, 0
  br i1 %.not580, label %985, label %986

985:                                              ; preds = %981, %974
  br label %986

986:                                              ; preds = %981, %985
  %.str.5.sink940 = phi ptr [ @.str.5, %985 ], [ @.str.2, %981 ]
  store i32 %976, ptr %975, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror(i32 noundef %990, ptr noundef nonnull @.str.4) #10
  %992 = load i32, ptr %989, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror_debug(i32 noundef %992, ptr noundef nonnull @.str.4) #10
  %994 = load i32, ptr %975, align 4, !tbaa !5
  %995 = call ptr @strerror(i32 noundef %994) #10
  %996 = load i32, ptr %975, align 4, !tbaa !5
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef nonnull %.str.5.sink940, i32 noundef %988, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %991, ptr noundef %993, ptr noundef %995, i32 noundef %996) #12
  call void @exit(i32 noundef 1) #13
  unreachable

998:                                              ; preds = %969
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  store ptr null, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  store ptr null, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #10
  store ptr null, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  store ptr null, ptr %15, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 1
  store i32 %1000, ptr @test_count, align 4, !tbaa !5
  %1001 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1002 = icmp eq ptr %1001, null
  br i1 %1002, label %1003, label %1027

1003:                                             ; preds = %998
  %1004 = tail call ptr @__errno_location() #11
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @s2n_print_stacktrace(ptr noundef %1006) #10
  %1008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1009 = trunc nuw i8 %1008 to i1
  br i1 %1009, label %1010, label %1014

1010:                                             ; preds = %1003
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @fileno(ptr noundef %1011) #10
  %1013 = call i32 @isatty(i32 noundef %1012) #10
  %.not579 = icmp eq i32 %1013, 0
  br i1 %.not579, label %1014, label %1015

1014:                                             ; preds = %1010, %1003
  br label %1015

1015:                                             ; preds = %1010, %1014
  %.str.5.sink951 = phi ptr [ @.str.5, %1014 ], [ @.str.2, %1010 ]
  store i32 %1005, ptr %1004, align 4, !tbaa !5
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = load i32, ptr @test_count, align 4, !tbaa !5
  %1018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call ptr @s2n_strerror(i32 noundef %1019, ptr noundef nonnull @.str.4) #10
  %1021 = load i32, ptr %1018, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror_debug(i32 noundef %1021, ptr noundef nonnull @.str.4) #10
  %1023 = load i32, ptr %1004, align 4, !tbaa !5
  %1024 = call ptr @strerror(i32 noundef %1023) #10
  %1025 = load i32, ptr %1004, align 4, !tbaa !5
  %1026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1016, ptr noundef nonnull %.str.5.sink951, i32 noundef %1017, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %1020, ptr noundef %1022, ptr noundef %1024, i32 noundef %1025) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1027:                                             ; preds = %998
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = add nsw i32 %1028, 1
  store i32 %1029, ptr @test_count, align 4, !tbaa !5
  %1030 = getelementptr inbounds i8, ptr %1001, i64 16
  %1031 = load ptr, ptr %1030, align 8, !tbaa !15
  %1032 = icmp eq ptr %1031, null
  br i1 %1032, label %1057, label %1033

1033:                                             ; preds = %1027
  %1034 = tail call ptr @__errno_location() #11
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @s2n_print_stacktrace(ptr noundef %1036) #10
  %1038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1039 = trunc nuw i8 %1038 to i1
  br i1 %1039, label %1040, label %1044

1040:                                             ; preds = %1033
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @fileno(ptr noundef %1041) #10
  %1043 = call i32 @isatty(i32 noundef %1042) #10
  %.not434 = icmp eq i32 %1043, 0
  br i1 %.not434, label %1044, label %1045

1044:                                             ; preds = %1040, %1033
  br label %1045

1045:                                             ; preds = %1040, %1044
  %.str.5.sink962 = phi ptr [ @.str.5, %1044 ], [ @.str.2, %1040 ]
  store i32 %1035, ptr %1034, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror(i32 noundef %1049, ptr noundef nonnull @.str.4) #10
  %1051 = load i32, ptr %1048, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef nonnull @.str.4) #10
  %1053 = load i32, ptr %1034, align 4, !tbaa !5
  %1054 = call ptr @strerror(i32 noundef %1053) #10
  %1055 = load i32, ptr %1034, align 4, !tbaa !5
  %1056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1046, ptr noundef nonnull %.str.5.sink962, i32 noundef %1047, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %1050, ptr noundef %1052, ptr noundef %1054, i32 noundef %1055) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1057:                                             ; preds = %1027
  %1058 = add nsw i32 %1028, 2
  store i32 %1058, ptr @test_count, align 4, !tbaa !5
  %1059 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %11) #10
  %1060 = icmp eq i32 %1059, -1
  br i1 %1060, label %1061, label %1085

1061:                                             ; preds = %1057
  %1062 = tail call ptr @__errno_location() #11
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @s2n_print_stacktrace(ptr noundef %1064) #10
  %1066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1067 = trunc nuw i8 %1066 to i1
  br i1 %1067, label %1068, label %1072

1068:                                             ; preds = %1061
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @fileno(ptr noundef %1069) #10
  %1071 = call i32 @isatty(i32 noundef %1070) #10
  %.not578 = icmp eq i32 %1071, 0
  br i1 %.not578, label %1072, label %1073

1072:                                             ; preds = %1068, %1061
  br label %1073

1073:                                             ; preds = %1068, %1072
  %.str.5.sink973 = phi ptr [ @.str.5, %1072 ], [ @.str.2, %1068 ]
  store i32 %1063, ptr %1062, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.4) #10
  %1079 = load i32, ptr %1076, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.4) #10
  %1081 = load i32, ptr %1062, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #10
  %1083 = load i32, ptr %1062, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef nonnull %.str.5.sink973, i32 noundef %1075, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1085:                                             ; preds = %1057
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr @test_count, align 4, !tbaa !5
  %1088 = load ptr, ptr %11, align 8, !tbaa !9
  %1089 = load ptr, ptr %4, align 8, !tbaa !9
  %1090 = getelementptr inbounds i8, ptr %1089, i64 8
  %1091 = load ptr, ptr %1090, align 8, !tbaa !42
  %1092 = icmp eq ptr %1088, %1091
  br i1 %1092, label %1117, label %1093

1093:                                             ; preds = %1085
  %1094 = tail call ptr @__errno_location() #11
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @s2n_print_stacktrace(ptr noundef %1096) #10
  %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 = %1093
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #10
  %1103 = call i32 @isatty(i32 noundef %1102) #10
  %.not435 = icmp eq i32 %1103, 0
  br i1 %.not435, label %1104, label %1105

1104:                                             ; preds = %1100, %1093
  br label %1105

1105:                                             ; preds = %1100, %1104
  %.str.5.sink984 = phi ptr [ @.str.5, %1104 ], [ @.str.2, %1100 ]
  store i32 %1095, ptr %1094, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror(i32 noundef %1109, ptr noundef nonnull @.str.4) #10
  %1111 = load i32, ptr %1108, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef nonnull @.str.4) #10
  %1113 = load i32, ptr %1094, align 4, !tbaa !5
  %1114 = call ptr @strerror(i32 noundef %1113) #10
  %1115 = load i32, ptr %1094, align 4, !tbaa !5
  %1116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef nonnull %.str.5.sink984, i32 noundef %1107, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %1110, ptr noundef %1112, ptr noundef %1114, i32 noundef %1115) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1117:                                             ; preds = %1085
  %1118 = add nsw i32 %1086, 2
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %1001, ptr noundef nonnull %12) #10
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1121, label %1145

1121:                                             ; preds = %1117
  %1122 = tail call ptr @__errno_location() #11
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @s2n_print_stacktrace(ptr noundef %1124) #10
  %1126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc nuw i8 %1126 to i1
  br i1 %1127, label %1128, label %1132

1128:                                             ; preds = %1121
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @fileno(ptr noundef %1129) #10
  %1131 = call i32 @isatty(i32 noundef %1130) #10
  %.not577 = icmp eq i32 %1131, 0
  br i1 %.not577, label %1132, label %1133

1132:                                             ; preds = %1128, %1121
  br label %1133

1133:                                             ; preds = %1128, %1132
  %.str.5.sink995 = phi ptr [ @.str.5, %1132 ], [ @.str.2, %1128 ]
  store i32 %1123, ptr %1122, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1137, ptr noundef nonnull @.str.4) #10
  %1139 = load i32, ptr %1136, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef nonnull @.str.4) #10
  %1141 = load i32, ptr %1122, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #10
  %1143 = load i32, ptr %1122, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef nonnull %.str.5.sink995, i32 noundef %1135, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %1138, ptr noundef %1140, ptr noundef %1142, i32 noundef %1143) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1145:                                             ; preds = %1117
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = add nsw i32 %1146, 1
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = load ptr, ptr %12, align 8, !tbaa !9
  %1149 = load ptr, ptr %4, align 8, !tbaa !9
  %1150 = icmp eq ptr %1148, %1149
  br i1 %1150, label %1175, label %1151

1151:                                             ; preds = %1145
  %1152 = tail call ptr @__errno_location() #11
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @s2n_print_stacktrace(ptr noundef %1154) #10
  %1156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1157 = trunc nuw i8 %1156 to i1
  br i1 %1157, label %1158, label %1162

1158:                                             ; preds = %1151
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @fileno(ptr noundef %1159) #10
  %1161 = call i32 @isatty(i32 noundef %1160) #10
  %.not436 = icmp eq i32 %1161, 0
  br i1 %.not436, label %1162, label %1163

1162:                                             ; preds = %1158, %1151
  br label %1163

1163:                                             ; preds = %1158, %1162
  %.str.5.sink1006 = phi ptr [ @.str.5, %1162 ], [ @.str.2, %1158 ]
  store i32 %1153, ptr %1152, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror(i32 noundef %1167, ptr noundef nonnull @.str.4) #10
  %1169 = load i32, ptr %1166, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror_debug(i32 noundef %1169, ptr noundef nonnull @.str.4) #10
  %1171 = load i32, ptr %1152, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #10
  %1173 = load i32, ptr %1152, align 4, !tbaa !5
  %1174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull %.str.5.sink1006, i32 noundef %1165, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %1168, ptr noundef %1170, ptr noundef %1172, i32 noundef %1173) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1175:                                             ; preds = %1145
  %1176 = add nsw i32 %1146, 2
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %13) #10
  %1178 = icmp eq i32 %1177, -1
  br i1 %1178, label %1179, label %1203

1179:                                             ; preds = %1175
  %1180 = tail call ptr @__errno_location() #11
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = call i32 @s2n_print_stacktrace(ptr noundef %1182) #10
  %1184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1185 = trunc nuw i8 %1184 to i1
  br i1 %1185, label %1186, label %1190

1186:                                             ; preds = %1179
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = call i32 @fileno(ptr noundef %1187) #10
  %1189 = call i32 @isatty(i32 noundef %1188) #10
  %.not576 = icmp eq i32 %1189, 0
  br i1 %.not576, label %1190, label %1191

1190:                                             ; preds = %1186, %1179
  br label %1191

1191:                                             ; preds = %1186, %1190
  %.str.5.sink1017 = phi ptr [ @.str.5, %1190 ], [ @.str.2, %1186 ]
  store i32 %1181, ptr %1180, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef nonnull @.str.4) #10
  %1197 = load i32, ptr %1194, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef nonnull @.str.4) #10
  %1199 = load i32, ptr %1180, align 4, !tbaa !5
  %1200 = call ptr @strerror(i32 noundef %1199) #10
  %1201 = load i32, ptr %1180, align 4, !tbaa !5
  %1202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef nonnull %.str.5.sink1017, i32 noundef %1193, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %1196, ptr noundef %1198, ptr noundef %1200, i32 noundef %1201) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1203:                                             ; preds = %1175
  %1204 = load i32, ptr @test_count, align 4, !tbaa !5
  %1205 = add nsw i32 %1204, 1
  store i32 %1205, ptr @test_count, align 4, !tbaa !5
  %1206 = load ptr, ptr %13, align 8, !tbaa !9
  %1207 = load ptr, ptr %4, align 8, !tbaa !9
  %1208 = getelementptr inbounds i8, ptr %1207, i64 16
  %1209 = load ptr, ptr %1208, align 8, !tbaa !44
  %1210 = icmp eq ptr %1206, %1209
  br i1 %1210, label %1235, label %1211

1211:                                             ; preds = %1203
  %1212 = tail call ptr @__errno_location() #11
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @s2n_print_stacktrace(ptr noundef %1214) #10
  %1216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1217 = trunc nuw i8 %1216 to i1
  br i1 %1217, label %1218, label %1222

1218:                                             ; preds = %1211
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = call i32 @fileno(ptr noundef %1219) #10
  %1221 = call i32 @isatty(i32 noundef %1220) #10
  %.not437 = icmp eq i32 %1221, 0
  br i1 %.not437, label %1222, label %1223

1222:                                             ; preds = %1218, %1211
  br label %1223

1223:                                             ; preds = %1218, %1222
  %.str.5.sink1028 = phi ptr [ @.str.5, %1222 ], [ @.str.2, %1218 ]
  store i32 %1213, ptr %1212, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror(i32 noundef %1227, ptr noundef nonnull @.str.4) #10
  %1229 = load i32, ptr %1226, align 4, !tbaa !5
  %1230 = call ptr @s2n_strerror_debug(i32 noundef %1229, ptr noundef nonnull @.str.4) #10
  %1231 = load i32, ptr %1212, align 4, !tbaa !5
  %1232 = call ptr @strerror(i32 noundef %1231) #10
  %1233 = load i32, ptr %1212, align 4, !tbaa !5
  %1234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef nonnull %.str.5.sink1028, i32 noundef %1225, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %1228, ptr noundef %1230, ptr noundef %1232, i32 noundef %1233) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1235:                                             ; preds = %1203
  %1236 = add nsw i32 %1204, 2
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %14) #10
  %1238 = icmp eq i32 %1237, -1
  br i1 %1238, label %1239, label %1263

1239:                                             ; preds = %1235
  %1240 = tail call ptr @__errno_location() #11
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @s2n_print_stacktrace(ptr noundef %1242) #10
  %1244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1245 = trunc nuw i8 %1244 to i1
  br i1 %1245, label %1246, label %1250

1246:                                             ; preds = %1239
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @fileno(ptr noundef %1247) #10
  %1249 = call i32 @isatty(i32 noundef %1248) #10
  %.not575 = icmp eq i32 %1249, 0
  br i1 %.not575, label %1250, label %1251

1250:                                             ; preds = %1246, %1239
  br label %1251

1251:                                             ; preds = %1246, %1250
  %.str.5.sink1039 = phi ptr [ @.str.5, %1250 ], [ @.str.2, %1246 ]
  store i32 %1241, ptr %1240, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror(i32 noundef %1255, ptr noundef nonnull @.str.4) #10
  %1257 = load i32, ptr %1254, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror_debug(i32 noundef %1257, ptr noundef nonnull @.str.4) #10
  %1259 = load i32, ptr %1240, align 4, !tbaa !5
  %1260 = call ptr @strerror(i32 noundef %1259) #10
  %1261 = load i32, ptr %1240, align 4, !tbaa !5
  %1262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef nonnull %.str.5.sink1039, i32 noundef %1253, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %1256, ptr noundef %1258, ptr noundef %1260, i32 noundef %1261) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1263:                                             ; preds = %1235
  %1264 = load i32, ptr @test_count, align 4, !tbaa !5
  %1265 = add nsw i32 %1264, 1
  store i32 %1265, ptr @test_count, align 4, !tbaa !5
  %1266 = load ptr, ptr %14, align 8, !tbaa !9
  %1267 = load ptr, ptr %4, align 8, !tbaa !9
  %1268 = getelementptr inbounds i8, ptr %1267, i64 24
  %1269 = load ptr, ptr %1268, align 8, !tbaa !45
  %1270 = icmp eq ptr %1266, %1269
  br i1 %1270, label %1295, label %1271

1271:                                             ; preds = %1263
  %1272 = tail call ptr @__errno_location() #11
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = call i32 @s2n_print_stacktrace(ptr noundef %1274) #10
  %1276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1277 = trunc nuw i8 %1276 to i1
  br i1 %1277, label %1278, label %1282

1278:                                             ; preds = %1271
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @fileno(ptr noundef %1279) #10
  %1281 = call i32 @isatty(i32 noundef %1280) #10
  %.not438 = icmp eq i32 %1281, 0
  br i1 %.not438, label %1282, label %1283

1282:                                             ; preds = %1278, %1271
  br label %1283

1283:                                             ; preds = %1278, %1282
  %.str.5.sink1050 = phi ptr [ @.str.5, %1282 ], [ @.str.2, %1278 ]
  store i32 %1273, ptr %1272, align 4, !tbaa !5
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = load i32, ptr @test_count, align 4, !tbaa !5
  %1286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror(i32 noundef %1287, ptr noundef nonnull @.str.4) #10
  %1289 = load i32, ptr %1286, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror_debug(i32 noundef %1289, ptr noundef nonnull @.str.4) #10
  %1291 = load i32, ptr %1272, align 4, !tbaa !5
  %1292 = call ptr @strerror(i32 noundef %1291) #10
  %1293 = load i32, ptr %1272, align 4, !tbaa !5
  %1294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1284, ptr noundef nonnull %.str.5.sink1050, i32 noundef %1285, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %1288, ptr noundef %1290, ptr noundef %1292, i32 noundef %1293) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1295:                                             ; preds = %1263
  %1296 = add nsw i32 %1264, 2
  store i32 %1296, ptr @test_count, align 4, !tbaa !5
  %1297 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %15) #10
  %1298 = icmp eq i32 %1297, -1
  br i1 %1298, label %1299, label %1323

1299:                                             ; preds = %1295
  %1300 = tail call ptr @__errno_location() #11
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @s2n_print_stacktrace(ptr noundef %1302) #10
  %1304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1305 = trunc nuw i8 %1304 to i1
  br i1 %1305, label %1306, label %1310

1306:                                             ; preds = %1299
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @fileno(ptr noundef %1307) #10
  %1309 = call i32 @isatty(i32 noundef %1308) #10
  %.not574 = icmp eq i32 %1309, 0
  br i1 %.not574, label %1310, label %1311

1310:                                             ; preds = %1306, %1299
  br label %1311

1311:                                             ; preds = %1306, %1310
  %.str.5.sink1061 = phi ptr [ @.str.5, %1310 ], [ @.str.2, %1306 ]
  store i32 %1301, ptr %1300, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef nonnull @.str.4) #10
  %1317 = load i32, ptr %1314, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef nonnull @.str.4) #10
  %1319 = load i32, ptr %1300, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #10
  %1321 = load i32, ptr %1300, align 4, !tbaa !5
  %1322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef nonnull %.str.5.sink1061, i32 noundef %1313, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1316, ptr noundef %1318, ptr noundef %1320, i32 noundef %1321) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1323:                                             ; preds = %1295
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr @test_count, align 4, !tbaa !5
  %1326 = load ptr, ptr %15, align 8, !tbaa !9
  %1327 = load ptr, ptr %4, align 8, !tbaa !9
  %1328 = getelementptr inbounds i8, ptr %1327, i64 40
  %1329 = load ptr, ptr %1328, align 8, !tbaa !46
  %1330 = icmp eq ptr %1326, %1329
  br i1 %1330, label %1355, label %1331

1331:                                             ; preds = %1323
  %1332 = tail call ptr @__errno_location() #11
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = call i32 @s2n_print_stacktrace(ptr noundef %1334) #10
  %1336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1337 = trunc nuw i8 %1336 to i1
  br i1 %1337, label %1338, label %1342

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

1342:                                             ; preds = %1338, %1331
  br label %1343

1343:                                             ; preds = %1338, %1342
  %.str.5.sink1072 = phi ptr [ @.str.5, %1342 ], [ @.str.2, %1338 ]
  store i32 %1333, ptr %1332, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = load i32, ptr @test_count, align 4, !tbaa !5
  %1346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call ptr @s2n_strerror(i32 noundef %1347, ptr noundef nonnull @.str.4) #10
  %1349 = load i32, ptr %1346, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror_debug(i32 noundef %1349, ptr noundef nonnull @.str.4) #10
  %1351 = load i32, ptr %1332, align 4, !tbaa !5
  %1352 = call ptr @strerror(i32 noundef %1351) #10
  %1353 = load i32, ptr %1332, align 4, !tbaa !5
  %1354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1344, ptr noundef nonnull %.str.5.sink1072, i32 noundef %1345, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %1348, ptr noundef %1350, ptr noundef %1352, i32 noundef %1353) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1355:                                             ; preds = %1323
  %1356 = add nsw i32 %1324, 2
  store i32 %1356, ptr @test_count, align 4, !tbaa !5
  %1357 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1001, ptr noundef nonnull @.str.42) #10
  %1358 = icmp eq i32 %1357, -1
  br i1 %1358, label %1359, label %1383

1359:                                             ; preds = %1355
  %1360 = tail call ptr @__errno_location() #11
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = call i32 @s2n_print_stacktrace(ptr noundef %1362) #10
  %1364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1365 = trunc nuw i8 %1364 to i1
  br i1 %1365, label %1366, label %1370

1366:                                             ; preds = %1359
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = call i32 @fileno(ptr noundef %1367) #10
  %1369 = call i32 @isatty(i32 noundef %1368) #10
  %.not573 = icmp eq i32 %1369, 0
  br i1 %.not573, label %1370, label %1371

1370:                                             ; preds = %1366, %1359
  br label %1371

1371:                                             ; preds = %1366, %1370
  %.str.5.sink1083 = phi ptr [ @.str.5, %1370 ], [ @.str.2, %1366 ]
  store i32 %1361, ptr %1360, align 4, !tbaa !5
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = load i32, ptr @test_count, align 4, !tbaa !5
  %1374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call ptr @s2n_strerror(i32 noundef %1375, ptr noundef nonnull @.str.4) #10
  %1377 = load i32, ptr %1374, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef nonnull @.str.4) #10
  %1379 = load i32, ptr %1360, align 4, !tbaa !5
  %1380 = call ptr @strerror(i32 noundef %1379) #10
  %1381 = load i32, ptr %1360, align 4, !tbaa !5
  %1382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1372, ptr noundef nonnull %.str.5.sink1083, i32 noundef %1373, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1376, ptr noundef %1378, ptr noundef %1380, i32 noundef %1381) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1383:                                             ; preds = %1355
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = add nsw i32 %1384, 1
  store i32 %1385, ptr @test_count, align 4, !tbaa !5
  %1386 = load ptr, ptr %1030, align 8, !tbaa !15
  %1387 = icmp eq ptr %1386, null
  br i1 %1387, label %1388, label %1412

1388:                                             ; preds = %1383
  %1389 = tail call ptr @__errno_location() #11
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @s2n_print_stacktrace(ptr noundef %1391) #10
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1399

1395:                                             ; preds = %1388
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #10
  %1398 = call i32 @isatty(i32 noundef %1397) #10
  %.not572 = icmp eq i32 %1398, 0
  br i1 %.not572, label %1399, label %1400

1399:                                             ; preds = %1395, %1388
  br label %1400

1400:                                             ; preds = %1395, %1399
  %.str.5.sink1094 = phi ptr [ @.str.5, %1399 ], [ @.str.2, %1395 ]
  store i32 %1390, ptr %1389, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror(i32 noundef %1404, ptr noundef nonnull @.str.4) #10
  %1406 = load i32, ptr %1403, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror_debug(i32 noundef %1406, ptr noundef nonnull @.str.4) #10
  %1408 = load i32, ptr %1389, align 4, !tbaa !5
  %1409 = call ptr @strerror(i32 noundef %1408) #10
  %1410 = load i32, ptr %1389, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull %.str.5.sink1094, i32 noundef %1402, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1405, ptr noundef %1407, ptr noundef %1409, i32 noundef %1410) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1412:                                             ; preds = %1383
  store ptr null, ptr %11, align 8, !tbaa !9
  %1413 = add nsw i32 %1384, 2
  store i32 %1413, ptr @test_count, align 4, !tbaa !5
  %1414 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %11) #10
  %1415 = icmp eq i32 %1414, -1
  br i1 %1415, label %1416, label %1440

1416:                                             ; preds = %1412
  %1417 = tail call ptr @__errno_location() #11
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = call i32 @s2n_print_stacktrace(ptr noundef %1419) #10
  %1421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1422 = trunc nuw i8 %1421 to i1
  br i1 %1422, label %1423, label %1427

1423:                                             ; preds = %1416
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @fileno(ptr noundef %1424) #10
  %1426 = call i32 @isatty(i32 noundef %1425) #10
  %.not571 = icmp eq i32 %1426, 0
  br i1 %.not571, label %1427, label %1428

1427:                                             ; preds = %1423, %1416
  br label %1428

1428:                                             ; preds = %1423, %1427
  %.str.5.sink1105 = phi ptr [ @.str.5, %1427 ], [ @.str.2, %1423 ]
  store i32 %1418, ptr %1417, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef nonnull @.str.4) #10
  %1434 = load i32, ptr %1431, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror_debug(i32 noundef %1434, ptr noundef nonnull @.str.4) #10
  %1436 = load i32, ptr %1417, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #10
  %1438 = load i32, ptr %1417, align 4, !tbaa !5
  %1439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1429, ptr noundef nonnull %.str.5.sink1105, i32 noundef %1430, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1433, ptr noundef %1435, ptr noundef %1437, i32 noundef %1438) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1440:                                             ; preds = %1412
  %1441 = load i32, ptr @test_count, align 4, !tbaa !5
  %1442 = add nsw i32 %1441, 1
  store i32 %1442, ptr @test_count, align 4, !tbaa !5
  %1443 = load ptr, ptr %11, align 8, !tbaa !9
  %1444 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls13, i64 8), align 8, !tbaa !42
  %1445 = icmp eq ptr %1443, %1444
  br i1 %1445, label %1470, label %1446

1446:                                             ; preds = %1440
  %1447 = tail call ptr @__errno_location() #11
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @s2n_print_stacktrace(ptr noundef %1449) #10
  %1451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1452 = trunc nuw i8 %1451 to i1
  br i1 %1452, label %1453, label %1457

1453:                                             ; preds = %1446
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @fileno(ptr noundef %1454) #10
  %1456 = call i32 @isatty(i32 noundef %1455) #10
  %.not440 = icmp eq i32 %1456, 0
  br i1 %.not440, label %1457, label %1458

1457:                                             ; preds = %1453, %1446
  br label %1458

1458:                                             ; preds = %1453, %1457
  %.str.5.sink1116 = phi ptr [ @.str.5, %1457 ], [ @.str.2, %1453 ]
  store i32 %1448, ptr %1447, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror(i32 noundef %1462, ptr noundef nonnull @.str.4) #10
  %1464 = load i32, ptr %1461, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror_debug(i32 noundef %1464, ptr noundef nonnull @.str.4) #10
  %1466 = load i32, ptr %1447, align 4, !tbaa !5
  %1467 = call ptr @strerror(i32 noundef %1466) #10
  %1468 = load i32, ptr %1447, align 4, !tbaa !5
  %1469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1459, ptr noundef nonnull %.str.5.sink1116, i32 noundef %1460, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1463, ptr noundef %1465, ptr noundef %1467, i32 noundef %1468) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1470:                                             ; preds = %1440
  store ptr null, ptr %12, align 8, !tbaa !9
  %1471 = add nsw i32 %1441, 2
  store i32 %1471, ptr @test_count, align 4, !tbaa !5
  %1472 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %1001, ptr noundef nonnull %12) #10
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1498

1474:                                             ; preds = %1470
  %1475 = tail call ptr @__errno_location() #11
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @s2n_print_stacktrace(ptr noundef %1477) #10
  %1479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1480 = trunc nuw i8 %1479 to i1
  br i1 %1480, label %1481, label %1485

1481:                                             ; preds = %1474
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = call i32 @fileno(ptr noundef %1482) #10
  %1484 = call i32 @isatty(i32 noundef %1483) #10
  %.not570 = icmp eq i32 %1484, 0
  br i1 %.not570, label %1485, label %1486

1485:                                             ; preds = %1481, %1474
  br label %1486

1486:                                             ; preds = %1481, %1485
  %.str.5.sink1127 = phi ptr [ @.str.5, %1485 ], [ @.str.2, %1481 ]
  store i32 %1476, ptr %1475, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #10
  %1492 = load i32, ptr %1489, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #10
  %1494 = load i32, ptr %1475, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #10
  %1496 = load i32, ptr %1475, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef nonnull %.str.5.sink1127, i32 noundef %1488, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1498:                                             ; preds = %1470
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = add nsw i32 %1499, 1
  store i32 %1500, ptr @test_count, align 4, !tbaa !5
  %1501 = load ptr, ptr %12, align 8, !tbaa !9
  %1502 = icmp eq ptr %1501, @security_policy_test_all_tls13
  br i1 %1502, label %1527, label %1503

1503:                                             ; preds = %1498
  %1504 = tail call ptr @__errno_location() #11
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506) #10
  %1508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1509 = trunc nuw i8 %1508 to i1
  br i1 %1509, label %1510, label %1514

1510:                                             ; preds = %1503
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #10
  %1513 = call i32 @isatty(i32 noundef %1512) #10
  %.not441 = icmp eq i32 %1513, 0
  br i1 %.not441, label %1514, label %1515

1514:                                             ; preds = %1510, %1503
  br label %1515

1515:                                             ; preds = %1510, %1514
  %.str.5.sink1138 = phi ptr [ @.str.5, %1514 ], [ @.str.2, %1510 ]
  store i32 %1505, ptr %1504, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.4) #10
  %1521 = load i32, ptr %1518, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.4) #10
  %1523 = load i32, ptr %1504, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #10
  %1525 = load i32, ptr %1504, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef nonnull %.str.5.sink1138, i32 noundef %1517, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1527:                                             ; preds = %1498
  store ptr null, ptr %13, align 8, !tbaa !9
  %1528 = add nsw i32 %1499, 2
  store i32 %1528, ptr @test_count, align 4, !tbaa !5
  %1529 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %13) #10
  %1530 = icmp eq i32 %1529, -1
  br i1 %1530, label %1531, label %1555

1531:                                             ; preds = %1527
  %1532 = tail call ptr @__errno_location() #11
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #10
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc nuw i8 %1536 to i1
  br i1 %1537, label %1538, label %1542

1538:                                             ; preds = %1531
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #10
  %1541 = call i32 @isatty(i32 noundef %1540) #10
  %.not569 = icmp eq i32 %1541, 0
  br i1 %.not569, label %1542, label %1543

1542:                                             ; preds = %1538, %1531
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.5.sink1149 = phi ptr [ @.str.5, %1542 ], [ @.str.2, %1538 ]
  store i32 %1533, ptr %1532, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1547, ptr noundef nonnull @.str.4) #10
  %1549 = load i32, ptr %1546, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror_debug(i32 noundef %1549, ptr noundef nonnull @.str.4) #10
  %1551 = load i32, ptr %1532, align 4, !tbaa !5
  %1552 = call ptr @strerror(i32 noundef %1551) #10
  %1553 = load i32, ptr %1532, align 4, !tbaa !5
  %1554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.5.sink1149, i32 noundef %1545, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1548, ptr noundef %1550, ptr noundef %1552, i32 noundef %1553) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1555:                                             ; preds = %1527
  %1556 = load i32, ptr @test_count, align 4, !tbaa !5
  %1557 = add nsw i32 %1556, 1
  store i32 %1557, ptr @test_count, align 4, !tbaa !5
  %1558 = load ptr, ptr %13, align 8, !tbaa !9
  %1559 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls13, i64 16), align 8, !tbaa !44
  %1560 = icmp eq ptr %1558, %1559
  br i1 %1560, label %1585, label %1561

1561:                                             ; preds = %1555
  %1562 = tail call ptr @__errno_location() #11
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = call i32 @s2n_print_stacktrace(ptr noundef %1564) #10
  %1566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1567 = trunc nuw i8 %1566 to i1
  br i1 %1567, label %1568, label %1572

1568:                                             ; preds = %1561
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @fileno(ptr noundef %1569) #10
  %1571 = call i32 @isatty(i32 noundef %1570) #10
  %.not442 = icmp eq i32 %1571, 0
  br i1 %.not442, label %1572, label %1573

1572:                                             ; preds = %1568, %1561
  br label %1573

1573:                                             ; preds = %1568, %1572
  %.str.5.sink1160 = phi ptr [ @.str.5, %1572 ], [ @.str.2, %1568 ]
  store i32 %1563, ptr %1562, align 4, !tbaa !5
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror(i32 noundef %1577, ptr noundef nonnull @.str.4) #10
  %1579 = load i32, ptr %1576, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror_debug(i32 noundef %1579, ptr noundef nonnull @.str.4) #10
  %1581 = load i32, ptr %1562, align 4, !tbaa !5
  %1582 = call ptr @strerror(i32 noundef %1581) #10
  %1583 = load i32, ptr %1562, align 4, !tbaa !5
  %1584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1574, ptr noundef nonnull %.str.5.sink1160, i32 noundef %1575, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1578, ptr noundef %1580, ptr noundef %1582, i32 noundef %1583) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1585:                                             ; preds = %1555
  store ptr null, ptr %14, align 8, !tbaa !9
  %1586 = add nsw i32 %1556, 2
  store i32 %1586, ptr @test_count, align 4, !tbaa !5
  %1587 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %14) #10
  %1588 = icmp eq i32 %1587, -1
  br i1 %1588, label %1589, label %1613

1589:                                             ; preds = %1585
  %1590 = tail call ptr @__errno_location() #11
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @s2n_print_stacktrace(ptr noundef %1592) #10
  %1594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1595 = trunc nuw i8 %1594 to i1
  br i1 %1595, label %1596, label %1600

1596:                                             ; preds = %1589
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = call i32 @fileno(ptr noundef %1597) #10
  %1599 = call i32 @isatty(i32 noundef %1598) #10
  %.not568 = icmp eq i32 %1599, 0
  br i1 %.not568, label %1600, label %1601

1600:                                             ; preds = %1596, %1589
  br label %1601

1601:                                             ; preds = %1596, %1600
  %.str.5.sink1171 = phi ptr [ @.str.5, %1600 ], [ @.str.2, %1596 ]
  store i32 %1591, ptr %1590, align 4, !tbaa !5
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror(i32 noundef %1605, ptr noundef nonnull @.str.4) #10
  %1607 = load i32, ptr %1604, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef nonnull @.str.4) #10
  %1609 = load i32, ptr %1590, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #10
  %1611 = load i32, ptr %1590, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1602, ptr noundef nonnull %.str.5.sink1171, i32 noundef %1603, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1606, ptr noundef %1608, ptr noundef %1610, i32 noundef %1611) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1613:                                             ; preds = %1585
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr @test_count, align 4, !tbaa !5
  %1616 = load ptr, ptr %14, align 8, !tbaa !9
  %1617 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls13, i64 24), align 8, !tbaa !45
  %1618 = icmp eq ptr %1616, %1617
  br i1 %1618, label %1643, label %1619

1619:                                             ; preds = %1613
  %1620 = tail call ptr @__errno_location() #11
  %1621 = load i32, ptr %1620, align 4, !tbaa !5
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = call i32 @s2n_print_stacktrace(ptr noundef %1622) #10
  %1624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1625 = trunc nuw i8 %1624 to i1
  br i1 %1625, label %1626, label %1630

1626:                                             ; preds = %1619
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @fileno(ptr noundef %1627) #10
  %1629 = call i32 @isatty(i32 noundef %1628) #10
  %.not443 = icmp eq i32 %1629, 0
  br i1 %.not443, label %1630, label %1631

1630:                                             ; preds = %1626, %1619
  br label %1631

1631:                                             ; preds = %1626, %1630
  %.str.5.sink1182 = phi ptr [ @.str.5, %1630 ], [ @.str.2, %1626 ]
  store i32 %1621, ptr %1620, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror(i32 noundef %1635, ptr noundef nonnull @.str.4) #10
  %1637 = load i32, ptr %1634, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror_debug(i32 noundef %1637, ptr noundef nonnull @.str.4) #10
  %1639 = load i32, ptr %1620, align 4, !tbaa !5
  %1640 = call ptr @strerror(i32 noundef %1639) #10
  %1641 = load i32, ptr %1620, align 4, !tbaa !5
  %1642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1632, ptr noundef nonnull %.str.5.sink1182, i32 noundef %1633, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1636, ptr noundef %1638, ptr noundef %1640, i32 noundef %1641) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1643:                                             ; preds = %1613
  store ptr null, ptr %15, align 8, !tbaa !9
  %1644 = add nsw i32 %1614, 2
  store i32 %1644, ptr @test_count, align 4, !tbaa !5
  %1645 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1001, ptr noundef nonnull %15) #10
  %1646 = icmp eq i32 %1645, -1
  br i1 %1646, label %1647, label %1671

1647:                                             ; preds = %1643
  %1648 = tail call ptr @__errno_location() #11
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @s2n_print_stacktrace(ptr noundef %1650) #10
  %1652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1653 = trunc nuw i8 %1652 to i1
  br i1 %1653, label %1654, label %1658

1654:                                             ; preds = %1647
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = call i32 @fileno(ptr noundef %1655) #10
  %1657 = call i32 @isatty(i32 noundef %1656) #10
  %.not567 = icmp eq i32 %1657, 0
  br i1 %.not567, label %1658, label %1659

1658:                                             ; preds = %1654, %1647
  br label %1659

1659:                                             ; preds = %1654, %1658
  %.str.5.sink1193 = phi ptr [ @.str.5, %1658 ], [ @.str.2, %1654 ]
  store i32 %1649, ptr %1648, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @s2n_strerror(i32 noundef %1663, ptr noundef nonnull @.str.4) #10
  %1665 = load i32, ptr %1662, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror_debug(i32 noundef %1665, ptr noundef nonnull @.str.4) #10
  %1667 = load i32, ptr %1648, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #10
  %1669 = load i32, ptr %1648, align 4, !tbaa !5
  %1670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1660, ptr noundef nonnull %.str.5.sink1193, i32 noundef %1661, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1664, ptr noundef %1666, ptr noundef %1668, i32 noundef %1669) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1671:                                             ; preds = %1643
  %1672 = load i32, ptr @test_count, align 4, !tbaa !5
  %1673 = add nsw i32 %1672, 1
  store i32 %1673, ptr @test_count, align 4, !tbaa !5
  %1674 = load ptr, ptr %15, align 8, !tbaa !9
  %1675 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_tls13, i64 40), align 8, !tbaa !46
  %1676 = icmp eq ptr %1674, %1675
  br i1 %1676, label %1701, label %1677

1677:                                             ; preds = %1671
  %1678 = tail call ptr @__errno_location() #11
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @s2n_print_stacktrace(ptr noundef %1680) #10
  %1682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1683 = trunc nuw i8 %1682 to i1
  br i1 %1683, label %1684, label %1688

1684:                                             ; preds = %1677
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @fileno(ptr noundef %1685) #10
  %1687 = call i32 @isatty(i32 noundef %1686) #10
  %.not444 = icmp eq i32 %1687, 0
  br i1 %.not444, label %1688, label %1689

1688:                                             ; preds = %1684, %1677
  br label %1689

1689:                                             ; preds = %1684, %1688
  %.str.5.sink1204 = phi ptr [ @.str.5, %1688 ], [ @.str.2, %1684 ]
  store i32 %1679, ptr %1678, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.4) #10
  %1695 = load i32, ptr %1692, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.4) #10
  %1697 = load i32, ptr %1678, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #10
  %1699 = load i32, ptr %1678, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull %.str.5.sink1204, i32 noundef %1691, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1701:                                             ; preds = %1671
  %1702 = add nsw i32 %1672, 2
  store i32 %1702, ptr @test_count, align 4, !tbaa !5
  %1703 = call i32 @s2n_connection_free(ptr noundef nonnull %1001) #10
  %1704 = icmp eq i32 %1703, -1
  br i1 %1704, label %1705, label %1729

1705:                                             ; preds = %1701
  %1706 = tail call ptr @__errno_location() #11
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @s2n_print_stacktrace(ptr noundef %1708) #10
  %1710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1711 = trunc nuw i8 %1710 to i1
  br i1 %1711, label %1712, label %1716

1712:                                             ; preds = %1705
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @fileno(ptr noundef %1713) #10
  %1715 = call i32 @isatty(i32 noundef %1714) #10
  %.not566 = icmp eq i32 %1715, 0
  br i1 %.not566, label %1716, label %1717

1716:                                             ; preds = %1712, %1705
  br label %1717

1717:                                             ; preds = %1712, %1716
  %.str.5.sink1215 = phi ptr [ @.str.5, %1716 ], [ @.str.2, %1712 ]
  store i32 %1707, ptr %1706, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @s2n_strerror(i32 noundef %1721, ptr noundef nonnull @.str.4) #10
  %1723 = load i32, ptr %1720, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror_debug(i32 noundef %1723, ptr noundef nonnull @.str.4) #10
  %1725 = load i32, ptr %1706, align 4, !tbaa !5
  %1726 = call ptr @strerror(i32 noundef %1725) #10
  %1727 = load i32, ptr %1706, align 4, !tbaa !5
  %1728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1718, ptr noundef nonnull %.str.5.sink1215, i32 noundef %1719, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1722, ptr noundef %1724, ptr noundef %1726, i32 noundef %1727) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1729:                                             ; preds = %1701
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = add nsw i32 %1730, 1
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %1733 = icmp eq i32 %1732, -1
  br i1 %1733, label %1734, label %1758

1734:                                             ; preds = %1729
  %1735 = tail call ptr @__errno_location() #11
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @s2n_print_stacktrace(ptr noundef %1737) #10
  %1739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1740 = trunc nuw i8 %1739 to i1
  br i1 %1740, label %1741, label %1745

1741:                                             ; preds = %1734
  %1742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1743 = call i32 @fileno(ptr noundef %1742) #10
  %1744 = call i32 @isatty(i32 noundef %1743) #10
  %.not565 = icmp eq i32 %1744, 0
  br i1 %.not565, label %1745, label %1746

1745:                                             ; preds = %1741, %1734
  br label %1746

1746:                                             ; preds = %1741, %1745
  %.str.5.sink1226 = phi ptr [ @.str.5, %1745 ], [ @.str.2, %1741 ]
  store i32 %1736, ptr %1735, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror(i32 noundef %1750, ptr noundef nonnull @.str.4) #10
  %1752 = load i32, ptr %1749, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror_debug(i32 noundef %1752, ptr noundef nonnull @.str.4) #10
  %1754 = load i32, ptr %1735, align 4, !tbaa !5
  %1755 = call ptr @strerror(i32 noundef %1754) #10
  %1756 = load i32, ptr %1735, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef nonnull %.str.5.sink1226, i32 noundef %1748, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1751, ptr noundef %1753, ptr noundef %1755, i32 noundef %1756) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1758:                                             ; preds = %1729
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  %1759 = call zeroext i1 @s2n_is_in_fips_mode() #10
  br i1 %1759, label %1760, label %2492

1760:                                             ; preds = %1758
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #10
  store ptr null, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #10
  store ptr null, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #10
  store ptr null, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  store ptr null, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #10
  store ptr null, ptr %20, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = add nsw i32 %1761, 1
  store i32 %1762, ptr @test_count, align 4, !tbaa !5
  %1763 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1764 = icmp eq ptr %1763, null
  br i1 %1764, label %1765, label %1789

1765:                                             ; preds = %1760
  %1766 = tail call ptr @__errno_location() #11
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = call i32 @s2n_print_stacktrace(ptr noundef %1768) #10
  %1770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1771 = trunc nuw i8 %1770 to i1
  br i1 %1771, label %1772, label %1776

1772:                                             ; preds = %1765
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = call i32 @fileno(ptr noundef %1773) #10
  %1775 = call i32 @isatty(i32 noundef %1774) #10
  %.not564 = icmp eq i32 %1775, 0
  br i1 %.not564, label %1776, label %1777

1776:                                             ; preds = %1772, %1765
  br label %1777

1777:                                             ; preds = %1772, %1776
  %.str.5.sink1237 = phi ptr [ @.str.5, %1776 ], [ @.str.2, %1772 ]
  store i32 %1767, ptr %1766, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %1780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror(i32 noundef %1781, ptr noundef nonnull @.str.4) #10
  %1783 = load i32, ptr %1780, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror_debug(i32 noundef %1783, ptr noundef nonnull @.str.4) #10
  %1785 = load i32, ptr %1766, align 4, !tbaa !5
  %1786 = call ptr @strerror(i32 noundef %1785) #10
  %1787 = load i32, ptr %1766, align 4, !tbaa !5
  %1788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1778, ptr noundef nonnull %.str.5.sink1237, i32 noundef %1779, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1782, ptr noundef %1784, ptr noundef %1786, i32 noundef %1787) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1789:                                             ; preds = %1760
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = add nsw i32 %1790, 1
  store i32 %1791, ptr @test_count, align 4, !tbaa !5
  %1792 = getelementptr inbounds i8, ptr %1763, i64 16
  %1793 = load ptr, ptr %1792, align 8, !tbaa !15
  %1794 = icmp eq ptr %1793, null
  br i1 %1794, label %1819, label %1795

1795:                                             ; preds = %1789
  %1796 = tail call ptr @__errno_location() #11
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = call i32 @s2n_print_stacktrace(ptr noundef %1798) #10
  %1800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1801 = trunc nuw i8 %1800 to i1
  br i1 %1801, label %1802, label %1806

1802:                                             ; preds = %1795
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @fileno(ptr noundef %1803) #10
  %1805 = call i32 @isatty(i32 noundef %1804) #10
  %.not445 = icmp eq i32 %1805, 0
  br i1 %.not445, label %1806, label %1807

1806:                                             ; preds = %1802, %1795
  br label %1807

1807:                                             ; preds = %1802, %1806
  %.str.5.sink1248 = phi ptr [ @.str.5, %1806 ], [ @.str.2, %1802 ]
  store i32 %1797, ptr %1796, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror(i32 noundef %1811, ptr noundef nonnull @.str.4) #10
  %1813 = load i32, ptr %1810, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef nonnull @.str.4) #10
  %1815 = load i32, ptr %1796, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #10
  %1817 = load i32, ptr %1796, align 4, !tbaa !5
  %1818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1808, ptr noundef nonnull %.str.5.sink1248, i32 noundef %1809, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1812, ptr noundef %1814, ptr noundef %1816, i32 noundef %1817) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1819:                                             ; preds = %1789
  %1820 = add nsw i32 %1790, 2
  store i32 %1820, ptr @test_count, align 4, !tbaa !5
  %1821 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %16) #10
  %1822 = icmp eq i32 %1821, -1
  br i1 %1822, label %1823, label %1847

1823:                                             ; preds = %1819
  %1824 = tail call ptr @__errno_location() #11
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @s2n_print_stacktrace(ptr noundef %1826) #10
  %1828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1829 = trunc nuw i8 %1828 to i1
  br i1 %1829, label %1830, label %1834

1830:                                             ; preds = %1823
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = call i32 @fileno(ptr noundef %1831) #10
  %1833 = call i32 @isatty(i32 noundef %1832) #10
  %.not563 = icmp eq i32 %1833, 0
  br i1 %.not563, label %1834, label %1835

1834:                                             ; preds = %1830, %1823
  br label %1835

1835:                                             ; preds = %1830, %1834
  %.str.5.sink1259 = phi ptr [ @.str.5, %1834 ], [ @.str.2, %1830 ]
  store i32 %1825, ptr %1824, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef nonnull @.str.4) #10
  %1841 = load i32, ptr %1838, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef nonnull @.str.4) #10
  %1843 = load i32, ptr %1824, align 4, !tbaa !5
  %1844 = call ptr @strerror(i32 noundef %1843) #10
  %1845 = load i32, ptr %1824, align 4, !tbaa !5
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef nonnull %.str.5.sink1259, i32 noundef %1837, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1840, ptr noundef %1842, ptr noundef %1844, i32 noundef %1845) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1847:                                             ; preds = %1819
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = add nsw i32 %1848, 1
  store i32 %1849, ptr @test_count, align 4, !tbaa !5
  %1850 = load ptr, ptr %16, align 8, !tbaa !9
  %1851 = load ptr, ptr %5, align 8, !tbaa !9
  %1852 = getelementptr inbounds i8, ptr %1851, i64 8
  %1853 = load ptr, ptr %1852, align 8, !tbaa !42
  %1854 = icmp eq ptr %1850, %1853
  br i1 %1854, label %1879, label %1855

1855:                                             ; preds = %1847
  %1856 = tail call ptr @__errno_location() #11
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = call i32 @s2n_print_stacktrace(ptr noundef %1858) #10
  %1860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1861 = trunc nuw i8 %1860 to i1
  br i1 %1861, label %1862, label %1866

1862:                                             ; preds = %1855
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = call i32 @fileno(ptr noundef %1863) #10
  %1865 = call i32 @isatty(i32 noundef %1864) #10
  %.not446 = icmp eq i32 %1865, 0
  br i1 %.not446, label %1866, label %1867

1866:                                             ; preds = %1862, %1855
  br label %1867

1867:                                             ; preds = %1862, %1866
  %.str.5.sink1270 = phi ptr [ @.str.5, %1866 ], [ @.str.2, %1862 ]
  store i32 %1857, ptr %1856, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef nonnull @.str.4) #10
  %1873 = load i32, ptr %1870, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror_debug(i32 noundef %1873, ptr noundef nonnull @.str.4) #10
  %1875 = load i32, ptr %1856, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #10
  %1877 = load i32, ptr %1856, align 4, !tbaa !5
  %1878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1868, ptr noundef nonnull %.str.5.sink1270, i32 noundef %1869, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1872, ptr noundef %1874, ptr noundef %1876, i32 noundef %1877) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1879:                                             ; preds = %1847
  %1880 = add nsw i32 %1848, 2
  store i32 %1880, ptr @test_count, align 4, !tbaa !5
  %1881 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %1763, ptr noundef nonnull %17) #10
  %1882 = icmp eq i32 %1881, -1
  br i1 %1882, label %1883, label %1907

1883:                                             ; preds = %1879
  %1884 = tail call ptr @__errno_location() #11
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = call i32 @s2n_print_stacktrace(ptr noundef %1886) #10
  %1888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1889 = trunc nuw i8 %1888 to i1
  br i1 %1889, label %1890, label %1894

1890:                                             ; preds = %1883
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = call i32 @fileno(ptr noundef %1891) #10
  %1893 = call i32 @isatty(i32 noundef %1892) #10
  %.not562 = icmp eq i32 %1893, 0
  br i1 %.not562, label %1894, label %1895

1894:                                             ; preds = %1890, %1883
  br label %1895

1895:                                             ; preds = %1890, %1894
  %.str.5.sink1281 = phi ptr [ @.str.5, %1894 ], [ @.str.2, %1890 ]
  store i32 %1885, ptr %1884, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1899, ptr noundef nonnull @.str.4) #10
  %1901 = load i32, ptr %1898, align 4, !tbaa !5
  %1902 = call ptr @s2n_strerror_debug(i32 noundef %1901, ptr noundef nonnull @.str.4) #10
  %1903 = load i32, ptr %1884, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #10
  %1905 = load i32, ptr %1884, align 4, !tbaa !5
  %1906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef nonnull %.str.5.sink1281, i32 noundef %1897, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1900, ptr noundef %1902, ptr noundef %1904, i32 noundef %1905) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1907:                                             ; preds = %1879
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = add nsw i32 %1908, 1
  store i32 %1909, ptr @test_count, align 4, !tbaa !5
  %1910 = load ptr, ptr %17, align 8, !tbaa !9
  %1911 = load ptr, ptr %5, align 8, !tbaa !9
  %1912 = icmp eq ptr %1910, %1911
  br i1 %1912, label %1937, label %1913

1913:                                             ; preds = %1907
  %1914 = tail call ptr @__errno_location() #11
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = call i32 @s2n_print_stacktrace(ptr noundef %1916) #10
  %1918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1919 = trunc nuw i8 %1918 to i1
  br i1 %1919, label %1920, label %1924

1920:                                             ; preds = %1913
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = call i32 @fileno(ptr noundef %1921) #10
  %1923 = call i32 @isatty(i32 noundef %1922) #10
  %.not447 = icmp eq i32 %1923, 0
  br i1 %.not447, label %1924, label %1925

1924:                                             ; preds = %1920, %1913
  br label %1925

1925:                                             ; preds = %1920, %1924
  %.str.5.sink1292 = phi ptr [ @.str.5, %1924 ], [ @.str.2, %1920 ]
  store i32 %1915, ptr %1914, align 4, !tbaa !5
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = call ptr @s2n_strerror(i32 noundef %1929, ptr noundef nonnull @.str.4) #10
  %1931 = load i32, ptr %1928, align 4, !tbaa !5
  %1932 = call ptr @s2n_strerror_debug(i32 noundef %1931, ptr noundef nonnull @.str.4) #10
  %1933 = load i32, ptr %1914, align 4, !tbaa !5
  %1934 = call ptr @strerror(i32 noundef %1933) #10
  %1935 = load i32, ptr %1914, align 4, !tbaa !5
  %1936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1926, ptr noundef nonnull %.str.5.sink1292, i32 noundef %1927, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1930, ptr noundef %1932, ptr noundef %1934, i32 noundef %1935) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1937:                                             ; preds = %1907
  %1938 = add nsw i32 %1908, 2
  store i32 %1938, ptr @test_count, align 4, !tbaa !5
  %1939 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %18) #10
  %1940 = icmp eq i32 %1939, -1
  br i1 %1940, label %1941, label %1965

1941:                                             ; preds = %1937
  %1942 = tail call ptr @__errno_location() #11
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @s2n_print_stacktrace(ptr noundef %1944) #10
  %1946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1947 = trunc nuw i8 %1946 to i1
  br i1 %1947, label %1948, label %1952

1948:                                             ; preds = %1941
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = call i32 @fileno(ptr noundef %1949) #10
  %1951 = call i32 @isatty(i32 noundef %1950) #10
  %.not561 = icmp eq i32 %1951, 0
  br i1 %.not561, label %1952, label %1953

1952:                                             ; preds = %1948, %1941
  br label %1953

1953:                                             ; preds = %1948, %1952
  %.str.5.sink1303 = phi ptr [ @.str.5, %1952 ], [ @.str.2, %1948 ]
  store i32 %1943, ptr %1942, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror(i32 noundef %1957, ptr noundef nonnull @.str.4) #10
  %1959 = load i32, ptr %1956, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror_debug(i32 noundef %1959, ptr noundef nonnull @.str.4) #10
  %1961 = load i32, ptr %1942, align 4, !tbaa !5
  %1962 = call ptr @strerror(i32 noundef %1961) #10
  %1963 = load i32, ptr %1942, align 4, !tbaa !5
  %1964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef nonnull %.str.5.sink1303, i32 noundef %1955, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1958, ptr noundef %1960, ptr noundef %1962, i32 noundef %1963) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1965:                                             ; preds = %1937
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = add nsw i32 %1966, 1
  store i32 %1967, ptr @test_count, align 4, !tbaa !5
  %1968 = load ptr, ptr %18, align 8, !tbaa !9
  %1969 = load ptr, ptr %5, align 8, !tbaa !9
  %1970 = getelementptr inbounds i8, ptr %1969, i64 16
  %1971 = load ptr, ptr %1970, align 8, !tbaa !44
  %1972 = icmp eq ptr %1968, %1971
  br i1 %1972, label %1997, label %1973

1973:                                             ; preds = %1965
  %1974 = tail call ptr @__errno_location() #11
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = call i32 @s2n_print_stacktrace(ptr noundef %1976) #10
  %1978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1979 = trunc nuw i8 %1978 to i1
  br i1 %1979, label %1980, label %1984

1980:                                             ; preds = %1973
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = call i32 @fileno(ptr noundef %1981) #10
  %1983 = call i32 @isatty(i32 noundef %1982) #10
  %.not448 = icmp eq i32 %1983, 0
  br i1 %.not448, label %1984, label %1985

1984:                                             ; preds = %1980, %1973
  br label %1985

1985:                                             ; preds = %1980, %1984
  %.str.5.sink1314 = phi ptr [ @.str.5, %1984 ], [ @.str.2, %1980 ]
  store i32 %1975, ptr %1974, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror(i32 noundef %1989, ptr noundef nonnull @.str.4) #10
  %1991 = load i32, ptr %1988, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror_debug(i32 noundef %1991, ptr noundef nonnull @.str.4) #10
  %1993 = load i32, ptr %1974, align 4, !tbaa !5
  %1994 = call ptr @strerror(i32 noundef %1993) #10
  %1995 = load i32, ptr %1974, align 4, !tbaa !5
  %1996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1986, ptr noundef nonnull %.str.5.sink1314, i32 noundef %1987, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1990, ptr noundef %1992, ptr noundef %1994, i32 noundef %1995) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1997:                                             ; preds = %1965
  %1998 = add nsw i32 %1966, 2
  store i32 %1998, ptr @test_count, align 4, !tbaa !5
  %1999 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %19) #10
  %2000 = icmp eq i32 %1999, -1
  br i1 %2000, label %2001, label %2025

2001:                                             ; preds = %1997
  %2002 = tail call ptr @__errno_location() #11
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = call i32 @s2n_print_stacktrace(ptr noundef %2004) #10
  %2006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2007 = trunc nuw i8 %2006 to i1
  br i1 %2007, label %2008, label %2012

2008:                                             ; preds = %2001
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @fileno(ptr noundef %2009) #10
  %2011 = call i32 @isatty(i32 noundef %2010) #10
  %.not560 = icmp eq i32 %2011, 0
  br i1 %.not560, label %2012, label %2013

2012:                                             ; preds = %2008, %2001
  br label %2013

2013:                                             ; preds = %2008, %2012
  %.str.5.sink1325 = phi ptr [ @.str.5, %2012 ], [ @.str.2, %2008 ]
  store i32 %2003, ptr %2002, align 4, !tbaa !5
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = load i32, ptr @test_count, align 4, !tbaa !5
  %2016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call ptr @s2n_strerror(i32 noundef %2017, ptr noundef nonnull @.str.4) #10
  %2019 = load i32, ptr %2016, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef nonnull @.str.4) #10
  %2021 = load i32, ptr %2002, align 4, !tbaa !5
  %2022 = call ptr @strerror(i32 noundef %2021) #10
  %2023 = load i32, ptr %2002, align 4, !tbaa !5
  %2024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2014, ptr noundef nonnull %.str.5.sink1325, i32 noundef %2015, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %2018, ptr noundef %2020, ptr noundef %2022, i32 noundef %2023) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2025:                                             ; preds = %1997
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = add nsw i32 %2026, 1
  store i32 %2027, ptr @test_count, align 4, !tbaa !5
  %2028 = load ptr, ptr %19, align 8, !tbaa !9
  %2029 = load ptr, ptr %5, align 8, !tbaa !9
  %2030 = getelementptr inbounds i8, ptr %2029, i64 24
  %2031 = load ptr, ptr %2030, align 8, !tbaa !45
  %2032 = icmp eq ptr %2028, %2031
  br i1 %2032, label %2057, label %2033

2033:                                             ; preds = %2025
  %2034 = tail call ptr @__errno_location() #11
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @s2n_print_stacktrace(ptr noundef %2036) #10
  %2038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2039 = trunc nuw i8 %2038 to i1
  br i1 %2039, label %2040, label %2044

2040:                                             ; preds = %2033
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = call i32 @fileno(ptr noundef %2041) #10
  %2043 = call i32 @isatty(i32 noundef %2042) #10
  %.not449 = icmp eq i32 %2043, 0
  br i1 %.not449, label %2044, label %2045

2044:                                             ; preds = %2040, %2033
  br label %2045

2045:                                             ; preds = %2040, %2044
  %.str.5.sink1336 = phi ptr [ @.str.5, %2044 ], [ @.str.2, %2040 ]
  store i32 %2035, ptr %2034, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = load i32, ptr @test_count, align 4, !tbaa !5
  %2048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror(i32 noundef %2049, ptr noundef nonnull @.str.4) #10
  %2051 = load i32, ptr %2048, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef nonnull @.str.4) #10
  %2053 = load i32, ptr %2034, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #10
  %2055 = load i32, ptr %2034, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2046, ptr noundef nonnull %.str.5.sink1336, i32 noundef %2047, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %2050, ptr noundef %2052, ptr noundef %2054, i32 noundef %2055) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2057:                                             ; preds = %2025
  %2058 = add nsw i32 %2026, 2
  store i32 %2058, ptr @test_count, align 4, !tbaa !5
  %2059 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %20) #10
  %2060 = icmp eq i32 %2059, -1
  br i1 %2060, label %2061, label %2085

2061:                                             ; preds = %2057
  %2062 = tail call ptr @__errno_location() #11
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = call i32 @s2n_print_stacktrace(ptr noundef %2064) #10
  %2066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2067 = trunc nuw i8 %2066 to i1
  br i1 %2067, label %2068, label %2072

2068:                                             ; preds = %2061
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = call i32 @fileno(ptr noundef %2069) #10
  %2071 = call i32 @isatty(i32 noundef %2070) #10
  %.not559 = icmp eq i32 %2071, 0
  br i1 %.not559, label %2072, label %2073

2072:                                             ; preds = %2068, %2061
  br label %2073

2073:                                             ; preds = %2068, %2072
  %.str.5.sink1347 = phi ptr [ @.str.5, %2072 ], [ @.str.2, %2068 ]
  store i32 %2063, ptr %2062, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2077 = load i32, ptr %2076, align 4, !tbaa !5
  %2078 = call ptr @s2n_strerror(i32 noundef %2077, ptr noundef nonnull @.str.4) #10
  %2079 = load i32, ptr %2076, align 4, !tbaa !5
  %2080 = call ptr @s2n_strerror_debug(i32 noundef %2079, ptr noundef nonnull @.str.4) #10
  %2081 = load i32, ptr %2062, align 4, !tbaa !5
  %2082 = call ptr @strerror(i32 noundef %2081) #10
  %2083 = load i32, ptr %2062, align 4, !tbaa !5
  %2084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2074, ptr noundef nonnull %.str.5.sink1347, i32 noundef %2075, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %2078, ptr noundef %2080, ptr noundef %2082, i32 noundef %2083) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2085:                                             ; preds = %2057
  %2086 = load i32, ptr @test_count, align 4, !tbaa !5
  %2087 = add nsw i32 %2086, 1
  store i32 %2087, ptr @test_count, align 4, !tbaa !5
  %2088 = load ptr, ptr %20, align 8, !tbaa !9
  %2089 = load ptr, ptr %5, align 8, !tbaa !9
  %2090 = getelementptr inbounds i8, ptr %2089, i64 40
  %2091 = load ptr, ptr %2090, align 8, !tbaa !46
  %2092 = icmp eq ptr %2088, %2091
  br i1 %2092, label %2117, label %2093

2093:                                             ; preds = %2085
  %2094 = tail call ptr @__errno_location() #11
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = call i32 @s2n_print_stacktrace(ptr noundef %2096) #10
  %2098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2099 = trunc nuw i8 %2098 to i1
  br i1 %2099, label %2100, label %2104

2100:                                             ; preds = %2093
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @fileno(ptr noundef %2101) #10
  %2103 = call i32 @isatty(i32 noundef %2102) #10
  %.not450 = icmp eq i32 %2103, 0
  br i1 %.not450, label %2104, label %2105

2104:                                             ; preds = %2100, %2093
  br label %2105

2105:                                             ; preds = %2100, %2104
  %.str.5.sink1358 = phi ptr [ @.str.5, %2104 ], [ @.str.2, %2100 ]
  store i32 %2095, ptr %2094, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror(i32 noundef %2109, ptr noundef nonnull @.str.4) #10
  %2111 = load i32, ptr %2108, align 4, !tbaa !5
  %2112 = call ptr @s2n_strerror_debug(i32 noundef %2111, ptr noundef nonnull @.str.4) #10
  %2113 = load i32, ptr %2094, align 4, !tbaa !5
  %2114 = call ptr @strerror(i32 noundef %2113) #10
  %2115 = load i32, ptr %2094, align 4, !tbaa !5
  %2116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2106, ptr noundef nonnull %.str.5.sink1358, i32 noundef %2107, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %2110, ptr noundef %2112, ptr noundef %2114, i32 noundef %2115) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2117:                                             ; preds = %2085
  %2118 = add nsw i32 %2086, 2
  store i32 %2118, ptr @test_count, align 4, !tbaa !5
  %2119 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1763, ptr noundef nonnull @.str.54) #10
  %2120 = icmp eq i32 %2119, -1
  br i1 %2120, label %2121, label %2145

2121:                                             ; preds = %2117
  %2122 = tail call ptr @__errno_location() #11
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @s2n_print_stacktrace(ptr noundef %2124) #10
  %2126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2127 = trunc nuw i8 %2126 to i1
  br i1 %2127, label %2128, label %2132

2128:                                             ; preds = %2121
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = call i32 @fileno(ptr noundef %2129) #10
  %2131 = call i32 @isatty(i32 noundef %2130) #10
  %.not558 = icmp eq i32 %2131, 0
  br i1 %.not558, label %2132, label %2133

2132:                                             ; preds = %2128, %2121
  br label %2133

2133:                                             ; preds = %2128, %2132
  %.str.5.sink1369 = phi ptr [ @.str.5, %2132 ], [ @.str.2, %2128 ]
  store i32 %2123, ptr %2122, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2137, ptr noundef nonnull @.str.4) #10
  %2139 = load i32, ptr %2136, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror_debug(i32 noundef %2139, ptr noundef nonnull @.str.4) #10
  %2141 = load i32, ptr %2122, align 4, !tbaa !5
  %2142 = call ptr @strerror(i32 noundef %2141) #10
  %2143 = load i32, ptr %2122, align 4, !tbaa !5
  %2144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2134, ptr noundef nonnull %.str.5.sink1369, i32 noundef %2135, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %2138, ptr noundef %2140, ptr noundef %2142, i32 noundef %2143) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2145:                                             ; preds = %2117
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = add nsw i32 %2146, 1
  store i32 %2147, ptr @test_count, align 4, !tbaa !5
  %2148 = load ptr, ptr %1792, align 8, !tbaa !15
  %2149 = icmp eq ptr %2148, null
  br i1 %2149, label %2150, label %2174

2150:                                             ; preds = %2145
  %2151 = tail call ptr @__errno_location() #11
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = call i32 @s2n_print_stacktrace(ptr noundef %2153) #10
  %2155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2156 = trunc nuw i8 %2155 to i1
  br i1 %2156, label %2157, label %2161

2157:                                             ; preds = %2150
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @fileno(ptr noundef %2158) #10
  %2160 = call i32 @isatty(i32 noundef %2159) #10
  %.not557 = icmp eq i32 %2160, 0
  br i1 %.not557, label %2161, label %2162

2161:                                             ; preds = %2157, %2150
  br label %2162

2162:                                             ; preds = %2157, %2161
  %.str.5.sink1380 = phi ptr [ @.str.5, %2161 ], [ @.str.2, %2157 ]
  store i32 %2152, ptr %2151, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef nonnull @.str.4) #10
  %2168 = load i32, ptr %2165, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror_debug(i32 noundef %2168, ptr noundef nonnull @.str.4) #10
  %2170 = load i32, ptr %2151, align 4, !tbaa !5
  %2171 = call ptr @strerror(i32 noundef %2170) #10
  %2172 = load i32, ptr %2151, align 4, !tbaa !5
  %2173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2163, ptr noundef nonnull %.str.5.sink1380, i32 noundef %2164, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %2167, ptr noundef %2169, ptr noundef %2171, i32 noundef %2172) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2174:                                             ; preds = %2145
  store ptr null, ptr %16, align 8, !tbaa !9
  %2175 = add nsw i32 %2146, 2
  store i32 %2175, ptr @test_count, align 4, !tbaa !5
  %2176 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %16) #10
  %2177 = icmp eq i32 %2176, -1
  br i1 %2177, label %2178, label %2202

2178:                                             ; preds = %2174
  %2179 = tail call ptr @__errno_location() #11
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181) #10
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2184 = trunc nuw i8 %2183 to i1
  br i1 %2184, label %2185, label %2189

2185:                                             ; preds = %2178
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #10
  %2188 = call i32 @isatty(i32 noundef %2187) #10
  %.not556 = icmp eq i32 %2188, 0
  br i1 %.not556, label %2189, label %2190

2189:                                             ; preds = %2185, %2178
  br label %2190

2190:                                             ; preds = %2185, %2189
  %.str.5.sink1391 = phi ptr [ @.str.5, %2189 ], [ @.str.2, %2185 ]
  store i32 %2180, ptr %2179, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call ptr @s2n_strerror(i32 noundef %2194, ptr noundef nonnull @.str.4) #10
  %2196 = load i32, ptr %2193, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror_debug(i32 noundef %2196, ptr noundef nonnull @.str.4) #10
  %2198 = load i32, ptr %2179, align 4, !tbaa !5
  %2199 = call ptr @strerror(i32 noundef %2198) #10
  %2200 = load i32, ptr %2179, align 4, !tbaa !5
  %2201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef nonnull %.str.5.sink1391, i32 noundef %2192, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %2195, ptr noundef %2197, ptr noundef %2199, i32 noundef %2200) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2202:                                             ; preds = %2174
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = add nsw i32 %2203, 1
  store i32 %2204, ptr @test_count, align 4, !tbaa !5
  %2205 = load ptr, ptr %16, align 8, !tbaa !9
  %2206 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_fips, i64 8), align 8, !tbaa !42
  %2207 = icmp eq ptr %2205, %2206
  br i1 %2207, label %2232, label %2208

2208:                                             ; preds = %2202
  %2209 = tail call ptr @__errno_location() #11
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = call i32 @s2n_print_stacktrace(ptr noundef %2211) #10
  %2213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2214 = trunc nuw i8 %2213 to i1
  br i1 %2214, label %2215, label %2219

2215:                                             ; preds = %2208
  %2216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2217 = call i32 @fileno(ptr noundef %2216) #10
  %2218 = call i32 @isatty(i32 noundef %2217) #10
  %.not451 = icmp eq i32 %2218, 0
  br i1 %.not451, label %2219, label %2220

2219:                                             ; preds = %2215, %2208
  br label %2220

2220:                                             ; preds = %2215, %2219
  %.str.5.sink1402 = phi ptr [ @.str.5, %2219 ], [ @.str.2, %2215 ]
  store i32 %2210, ptr %2209, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror(i32 noundef %2224, ptr noundef nonnull @.str.4) #10
  %2226 = load i32, ptr %2223, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror_debug(i32 noundef %2226, ptr noundef nonnull @.str.4) #10
  %2228 = load i32, ptr %2209, align 4, !tbaa !5
  %2229 = call ptr @strerror(i32 noundef %2228) #10
  %2230 = load i32, ptr %2209, align 4, !tbaa !5
  %2231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2221, ptr noundef nonnull %.str.5.sink1402, i32 noundef %2222, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %2225, ptr noundef %2227, ptr noundef %2229, i32 noundef %2230) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2232:                                             ; preds = %2202
  store ptr null, ptr %17, align 8, !tbaa !9
  %2233 = add nsw i32 %2203, 2
  store i32 %2233, ptr @test_count, align 4, !tbaa !5
  %2234 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %1763, ptr noundef nonnull %17) #10
  %2235 = icmp eq i32 %2234, -1
  br i1 %2235, label %2236, label %2260

2236:                                             ; preds = %2232
  %2237 = tail call ptr @__errno_location() #11
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = call i32 @s2n_print_stacktrace(ptr noundef %2239) #10
  %2241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2242 = trunc nuw i8 %2241 to i1
  br i1 %2242, label %2243, label %2247

2243:                                             ; preds = %2236
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = call i32 @fileno(ptr noundef %2244) #10
  %2246 = call i32 @isatty(i32 noundef %2245) #10
  %.not555 = icmp eq i32 %2246, 0
  br i1 %.not555, label %2247, label %2248

2247:                                             ; preds = %2243, %2236
  br label %2248

2248:                                             ; preds = %2243, %2247
  %.str.5.sink1413 = phi ptr [ @.str.5, %2247 ], [ @.str.2, %2243 ]
  store i32 %2238, ptr %2237, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror(i32 noundef %2252, ptr noundef nonnull @.str.4) #10
  %2254 = load i32, ptr %2251, align 4, !tbaa !5
  %2255 = call ptr @s2n_strerror_debug(i32 noundef %2254, ptr noundef nonnull @.str.4) #10
  %2256 = load i32, ptr %2237, align 4, !tbaa !5
  %2257 = call ptr @strerror(i32 noundef %2256) #10
  %2258 = load i32, ptr %2237, align 4, !tbaa !5
  %2259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2249, ptr noundef nonnull %.str.5.sink1413, i32 noundef %2250, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %2253, ptr noundef %2255, ptr noundef %2257, i32 noundef %2258) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2260:                                             ; preds = %2232
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = add nsw i32 %2261, 1
  store i32 %2262, ptr @test_count, align 4, !tbaa !5
  %2263 = load ptr, ptr %17, align 8, !tbaa !9
  %2264 = icmp eq ptr %2263, @security_policy_test_all_fips
  br i1 %2264, label %2289, label %2265

2265:                                             ; preds = %2260
  %2266 = tail call ptr @__errno_location() #11
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2269 = call i32 @s2n_print_stacktrace(ptr noundef %2268) #10
  %2270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2271 = trunc nuw i8 %2270 to i1
  br i1 %2271, label %2272, label %2276

2272:                                             ; preds = %2265
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = call i32 @fileno(ptr noundef %2273) #10
  %2275 = call i32 @isatty(i32 noundef %2274) #10
  %.not452 = icmp eq i32 %2275, 0
  br i1 %.not452, label %2276, label %2277

2276:                                             ; preds = %2272, %2265
  br label %2277

2277:                                             ; preds = %2272, %2276
  %.str.5.sink1424 = phi ptr [ @.str.5, %2276 ], [ @.str.2, %2272 ]
  store i32 %2267, ptr %2266, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @s2n_strerror(i32 noundef %2281, ptr noundef nonnull @.str.4) #10
  %2283 = load i32, ptr %2280, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror_debug(i32 noundef %2283, ptr noundef nonnull @.str.4) #10
  %2285 = load i32, ptr %2266, align 4, !tbaa !5
  %2286 = call ptr @strerror(i32 noundef %2285) #10
  %2287 = load i32, ptr %2266, align 4, !tbaa !5
  %2288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2278, ptr noundef nonnull %.str.5.sink1424, i32 noundef %2279, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %2282, ptr noundef %2284, ptr noundef %2286, i32 noundef %2287) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2289:                                             ; preds = %2260
  store ptr null, ptr %18, align 8, !tbaa !9
  %2290 = add nsw i32 %2261, 2
  store i32 %2290, ptr @test_count, align 4, !tbaa !5
  %2291 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %18) #10
  %2292 = icmp eq i32 %2291, -1
  br i1 %2292, label %2293, label %2317

2293:                                             ; preds = %2289
  %2294 = tail call ptr @__errno_location() #11
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = call i32 @s2n_print_stacktrace(ptr noundef %2296) #10
  %2298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2299 = trunc nuw i8 %2298 to i1
  br i1 %2299, label %2300, label %2304

2300:                                             ; preds = %2293
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = call i32 @fileno(ptr noundef %2301) #10
  %2303 = call i32 @isatty(i32 noundef %2302) #10
  %.not554 = icmp eq i32 %2303, 0
  br i1 %.not554, label %2304, label %2305

2304:                                             ; preds = %2300, %2293
  br label %2305

2305:                                             ; preds = %2300, %2304
  %.str.5.sink1435 = phi ptr [ @.str.5, %2304 ], [ @.str.2, %2300 ]
  store i32 %2295, ptr %2294, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = load i32, ptr @test_count, align 4, !tbaa !5
  %2308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @s2n_strerror(i32 noundef %2309, ptr noundef nonnull @.str.4) #10
  %2311 = load i32, ptr %2308, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror_debug(i32 noundef %2311, ptr noundef nonnull @.str.4) #10
  %2313 = load i32, ptr %2294, align 4, !tbaa !5
  %2314 = call ptr @strerror(i32 noundef %2313) #10
  %2315 = load i32, ptr %2294, align 4, !tbaa !5
  %2316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2306, ptr noundef nonnull %.str.5.sink1435, i32 noundef %2307, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %2310, ptr noundef %2312, ptr noundef %2314, i32 noundef %2315) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2317:                                             ; preds = %2289
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = add nsw i32 %2318, 1
  store i32 %2319, ptr @test_count, align 4, !tbaa !5
  %2320 = load ptr, ptr %18, align 8, !tbaa !9
  %2321 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_fips, i64 16), align 8, !tbaa !44
  %2322 = icmp eq ptr %2320, %2321
  br i1 %2322, label %2347, label %2323

2323:                                             ; preds = %2317
  %2324 = tail call ptr @__errno_location() #11
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = call i32 @s2n_print_stacktrace(ptr noundef %2326) #10
  %2328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2329 = trunc nuw i8 %2328 to i1
  br i1 %2329, label %2330, label %2334

2330:                                             ; preds = %2323
  %2331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2332 = call i32 @fileno(ptr noundef %2331) #10
  %2333 = call i32 @isatty(i32 noundef %2332) #10
  %.not453 = icmp eq i32 %2333, 0
  br i1 %.not453, label %2334, label %2335

2334:                                             ; preds = %2330, %2323
  br label %2335

2335:                                             ; preds = %2330, %2334
  %.str.5.sink1446 = phi ptr [ @.str.5, %2334 ], [ @.str.2, %2330 ]
  store i32 %2325, ptr %2324, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror(i32 noundef %2339, ptr noundef nonnull @.str.4) #10
  %2341 = load i32, ptr %2338, align 4, !tbaa !5
  %2342 = call ptr @s2n_strerror_debug(i32 noundef %2341, ptr noundef nonnull @.str.4) #10
  %2343 = load i32, ptr %2324, align 4, !tbaa !5
  %2344 = call ptr @strerror(i32 noundef %2343) #10
  %2345 = load i32, ptr %2324, align 4, !tbaa !5
  %2346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef nonnull %.str.5.sink1446, i32 noundef %2337, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %2340, ptr noundef %2342, ptr noundef %2344, i32 noundef %2345) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2347:                                             ; preds = %2317
  store ptr null, ptr %19, align 8, !tbaa !9
  %2348 = add nsw i32 %2318, 2
  store i32 %2348, ptr @test_count, align 4, !tbaa !5
  %2349 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %19) #10
  %2350 = icmp eq i32 %2349, -1
  br i1 %2350, label %2351, label %2375

2351:                                             ; preds = %2347
  %2352 = tail call ptr @__errno_location() #11
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = call i32 @s2n_print_stacktrace(ptr noundef %2354) #10
  %2356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2357 = trunc nuw i8 %2356 to i1
  br i1 %2357, label %2358, label %2362

2358:                                             ; preds = %2351
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2360 = call i32 @fileno(ptr noundef %2359) #10
  %2361 = call i32 @isatty(i32 noundef %2360) #10
  %.not553 = icmp eq i32 %2361, 0
  br i1 %.not553, label %2362, label %2363

2362:                                             ; preds = %2358, %2351
  br label %2363

2363:                                             ; preds = %2358, %2362
  %.str.5.sink1457 = phi ptr [ @.str.5, %2362 ], [ @.str.2, %2358 ]
  store i32 %2353, ptr %2352, align 4, !tbaa !5
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = load i32, ptr @test_count, align 4, !tbaa !5
  %2366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror(i32 noundef %2367, ptr noundef nonnull @.str.4) #10
  %2369 = load i32, ptr %2366, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror_debug(i32 noundef %2369, ptr noundef nonnull @.str.4) #10
  %2371 = load i32, ptr %2352, align 4, !tbaa !5
  %2372 = call ptr @strerror(i32 noundef %2371) #10
  %2373 = load i32, ptr %2352, align 4, !tbaa !5
  %2374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2364, ptr noundef nonnull %.str.5.sink1457, i32 noundef %2365, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %2368, ptr noundef %2370, ptr noundef %2372, i32 noundef %2373) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2375:                                             ; preds = %2347
  %2376 = load i32, ptr @test_count, align 4, !tbaa !5
  %2377 = add nsw i32 %2376, 1
  store i32 %2377, ptr @test_count, align 4, !tbaa !5
  %2378 = load ptr, ptr %19, align 8, !tbaa !9
  %2379 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_fips, i64 24), align 8, !tbaa !45
  %2380 = icmp eq ptr %2378, %2379
  br i1 %2380, label %2405, label %2381

2381:                                             ; preds = %2375
  %2382 = tail call ptr @__errno_location() #11
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = call i32 @s2n_print_stacktrace(ptr noundef %2384) #10
  %2386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2387 = trunc nuw i8 %2386 to i1
  br i1 %2387, label %2388, label %2392

2388:                                             ; preds = %2381
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @fileno(ptr noundef %2389) #10
  %2391 = call i32 @isatty(i32 noundef %2390) #10
  %.not454 = icmp eq i32 %2391, 0
  br i1 %.not454, label %2392, label %2393

2392:                                             ; preds = %2388, %2381
  br label %2393

2393:                                             ; preds = %2388, %2392
  %.str.5.sink1468 = phi ptr [ @.str.5, %2392 ], [ @.str.2, %2388 ]
  store i32 %2383, ptr %2382, align 4, !tbaa !5
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = load i32, ptr @test_count, align 4, !tbaa !5
  %2396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror(i32 noundef %2397, ptr noundef nonnull @.str.4) #10
  %2399 = load i32, ptr %2396, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror_debug(i32 noundef %2399, ptr noundef nonnull @.str.4) #10
  %2401 = load i32, ptr %2382, align 4, !tbaa !5
  %2402 = call ptr @strerror(i32 noundef %2401) #10
  %2403 = load i32, ptr %2382, align 4, !tbaa !5
  %2404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2394, ptr noundef nonnull %.str.5.sink1468, i32 noundef %2395, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %2398, ptr noundef %2400, ptr noundef %2402, i32 noundef %2403) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2405:                                             ; preds = %2375
  store ptr null, ptr %20, align 8, !tbaa !9
  %2406 = add nsw i32 %2376, 2
  store i32 %2406, ptr @test_count, align 4, !tbaa !5
  %2407 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1763, ptr noundef nonnull %20) #10
  %2408 = icmp eq i32 %2407, -1
  br i1 %2408, label %2409, label %2433

2409:                                             ; preds = %2405
  %2410 = tail call ptr @__errno_location() #11
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = call i32 @s2n_print_stacktrace(ptr noundef %2412) #10
  %2414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2415 = trunc nuw i8 %2414 to i1
  br i1 %2415, label %2416, label %2420

2416:                                             ; preds = %2409
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @fileno(ptr noundef %2417) #10
  %2419 = call i32 @isatty(i32 noundef %2418) #10
  %.not552 = icmp eq i32 %2419, 0
  br i1 %.not552, label %2420, label %2421

2420:                                             ; preds = %2416, %2409
  br label %2421

2421:                                             ; preds = %2416, %2420
  %.str.5.sink1479 = phi ptr [ @.str.5, %2420 ], [ @.str.2, %2416 ]
  store i32 %2411, ptr %2410, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = load i32, ptr @test_count, align 4, !tbaa !5
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror(i32 noundef %2425, ptr noundef nonnull @.str.4) #10
  %2427 = load i32, ptr %2424, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror_debug(i32 noundef %2427, ptr noundef nonnull @.str.4) #10
  %2429 = load i32, ptr %2410, align 4, !tbaa !5
  %2430 = call ptr @strerror(i32 noundef %2429) #10
  %2431 = load i32, ptr %2410, align 4, !tbaa !5
  %2432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2422, ptr noundef nonnull %.str.5.sink1479, i32 noundef %2423, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %2426, ptr noundef %2428, ptr noundef %2430, i32 noundef %2431) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2433:                                             ; preds = %2405
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = add nsw i32 %2434, 1
  store i32 %2435, ptr @test_count, align 4, !tbaa !5
  %2436 = load ptr, ptr %20, align 8, !tbaa !9
  %2437 = load ptr, ptr getelementptr inbounds (i8, ptr @security_policy_test_all_fips, i64 40), align 8, !tbaa !46
  %2438 = icmp eq ptr %2436, %2437
  br i1 %2438, label %2463, label %2439

2439:                                             ; preds = %2433
  %2440 = tail call ptr @__errno_location() #11
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @s2n_print_stacktrace(ptr noundef %2442) #10
  %2444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2445 = trunc nuw i8 %2444 to i1
  br i1 %2445, label %2446, label %2450

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
  %.not455 = icmp eq i32 %2449, 0
  br i1 %.not455, label %2450, label %2451

2450:                                             ; preds = %2446, %2439
  br label %2451

2451:                                             ; preds = %2446, %2450
  %.str.5.sink1490 = phi ptr [ @.str.5, %2450 ], [ @.str.2, %2446 ]
  store i32 %2441, ptr %2440, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror(i32 noundef %2455, ptr noundef nonnull @.str.4) #10
  %2457 = load i32, ptr %2454, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror_debug(i32 noundef %2457, ptr noundef nonnull @.str.4) #10
  %2459 = load i32, ptr %2440, align 4, !tbaa !5
  %2460 = call ptr @strerror(i32 noundef %2459) #10
  %2461 = load i32, ptr %2440, align 4, !tbaa !5
  %2462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef nonnull %.str.5.sink1490, i32 noundef %2453, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %2456, ptr noundef %2458, ptr noundef %2460, i32 noundef %2461) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2463:                                             ; preds = %2433
  %2464 = add nsw i32 %2434, 2
  store i32 %2464, ptr @test_count, align 4, !tbaa !5
  %2465 = call i32 @s2n_connection_free(ptr noundef nonnull %1763) #10
  %2466 = icmp eq i32 %2465, -1
  br i1 %2466, label %2467, label %2491

2467:                                             ; preds = %2463
  %2468 = tail call ptr @__errno_location() #11
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2471 = call i32 @s2n_print_stacktrace(ptr noundef %2470) #10
  %2472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2473 = trunc nuw i8 %2472 to i1
  br i1 %2473, label %2474, label %2478

2474:                                             ; preds = %2467
  %2475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2476 = call i32 @fileno(ptr noundef %2475) #10
  %2477 = call i32 @isatty(i32 noundef %2476) #10
  %.not551 = icmp eq i32 %2477, 0
  br i1 %.not551, label %2478, label %2479

2478:                                             ; preds = %2474, %2467
  br label %2479

2479:                                             ; preds = %2474, %2478
  %.str.5.sink1501 = phi ptr [ @.str.5, %2478 ], [ @.str.2, %2474 ]
  store i32 %2469, ptr %2468, align 4, !tbaa !5
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = load i32, ptr @test_count, align 4, !tbaa !5
  %2482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror(i32 noundef %2483, ptr noundef nonnull @.str.4) #10
  %2485 = load i32, ptr %2482, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror_debug(i32 noundef %2485, ptr noundef nonnull @.str.4) #10
  %2487 = load i32, ptr %2468, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #10
  %2489 = load i32, ptr %2468, align 4, !tbaa !5
  %2490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2480, ptr noundef nonnull %.str.5.sink1501, i32 noundef %2481, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %2484, ptr noundef %2486, ptr noundef %2488, i32 noundef %2489) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2491:                                             ; preds = %2463
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  br label %2492

2492:                                             ; preds = %2491, %1758
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #10
  store ptr null, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #10
  store ptr null, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #10
  store ptr null, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #10
  store ptr null, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  store ptr null, ptr %25, align 8, !tbaa !9
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = add nsw i32 %2493, 1
  store i32 %2494, ptr @test_count, align 4, !tbaa !5
  %2495 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2496 = icmp eq ptr %2495, null
  br i1 %2496, label %2497, label %2521

2497:                                             ; preds = %2492
  %2498 = tail call ptr @__errno_location() #11
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @s2n_print_stacktrace(ptr noundef %2500) #10
  %2502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2503 = trunc nuw i8 %2502 to i1
  br i1 %2503, label %2504, label %2508

2504:                                             ; preds = %2497
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = call i32 @fileno(ptr noundef %2505) #10
  %2507 = call i32 @isatty(i32 noundef %2506) #10
  %.not550 = icmp eq i32 %2507, 0
  br i1 %.not550, label %2508, label %2509

2508:                                             ; preds = %2504, %2497
  br label %2509

2509:                                             ; preds = %2504, %2508
  %.str.5.sink1512 = phi ptr [ @.str.5, %2508 ], [ @.str.2, %2504 ]
  store i32 %2499, ptr %2498, align 4, !tbaa !5
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = load i32, ptr @test_count, align 4, !tbaa !5
  %2512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror(i32 noundef %2513, ptr noundef nonnull @.str.4) #10
  %2515 = load i32, ptr %2512, align 4, !tbaa !5
  %2516 = call ptr @s2n_strerror_debug(i32 noundef %2515, ptr noundef nonnull @.str.4) #10
  %2517 = load i32, ptr %2498, align 4, !tbaa !5
  %2518 = call ptr @strerror(i32 noundef %2517) #10
  %2519 = load i32, ptr %2498, align 4, !tbaa !5
  %2520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2510, ptr noundef nonnull %.str.5.sink1512, i32 noundef %2511, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %2514, ptr noundef %2516, ptr noundef %2518, i32 noundef %2519) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2521:                                             ; preds = %2492
  %2522 = load i32, ptr @test_count, align 4, !tbaa !5
  %2523 = add nsw i32 %2522, 1
  store i32 %2523, ptr @test_count, align 4, !tbaa !5
  %2524 = getelementptr inbounds i8, ptr %2495, i64 16
  %2525 = load ptr, ptr %2524, align 8, !tbaa !15
  %2526 = icmp eq ptr %2525, null
  br i1 %2526, label %2551, label %2527

2527:                                             ; preds = %2521
  %2528 = tail call ptr @__errno_location() #11
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = call i32 @s2n_print_stacktrace(ptr noundef %2530) #10
  %2532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2533 = trunc nuw i8 %2532 to i1
  br i1 %2533, label %2534, label %2538

2534:                                             ; preds = %2527
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = call i32 @fileno(ptr noundef %2535) #10
  %2537 = call i32 @isatty(i32 noundef %2536) #10
  %.not456 = icmp eq i32 %2537, 0
  br i1 %.not456, label %2538, label %2539

2538:                                             ; preds = %2534, %2527
  br label %2539

2539:                                             ; preds = %2534, %2538
  %.str.5.sink1523 = phi ptr [ @.str.5, %2538 ], [ @.str.2, %2534 ]
  store i32 %2529, ptr %2528, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror(i32 noundef %2543, ptr noundef nonnull @.str.4) #10
  %2545 = load i32, ptr %2542, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror_debug(i32 noundef %2545, ptr noundef nonnull @.str.4) #10
  %2547 = load i32, ptr %2528, align 4, !tbaa !5
  %2548 = call ptr @strerror(i32 noundef %2547) #10
  %2549 = load i32, ptr %2528, align 4, !tbaa !5
  %2550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2540, ptr noundef nonnull %.str.5.sink1523, i32 noundef %2541, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %2544, ptr noundef %2546, ptr noundef %2548, i32 noundef %2549) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2551:                                             ; preds = %2521
  %2552 = add nsw i32 %2522, 2
  store i32 %2552, ptr @test_count, align 4, !tbaa !5
  %2553 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2495, ptr noundef null) #10
  %2554 = icmp eq i32 %2553, -1
  br i1 %2554, label %2579, label %2555

2555:                                             ; preds = %2551
  %2556 = tail call ptr @__errno_location() #11
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = call i32 @s2n_print_stacktrace(ptr noundef %2558) #10
  %2560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2561 = trunc nuw i8 %2560 to i1
  br i1 %2561, label %2562, label %2566

2562:                                             ; preds = %2555
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @fileno(ptr noundef %2563) #10
  %2565 = call i32 @isatty(i32 noundef %2564) #10
  %.not457 = icmp eq i32 %2565, 0
  br i1 %.not457, label %2566, label %2567

2566:                                             ; preds = %2562, %2555
  br label %2567

2567:                                             ; preds = %2562, %2566
  %.str.5.sink1534 = phi ptr [ @.str.5, %2566 ], [ @.str.2, %2562 ]
  store i32 %2557, ptr %2556, align 4, !tbaa !5
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = load i32, ptr @test_count, align 4, !tbaa !5
  %2570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  %2572 = call ptr @s2n_strerror(i32 noundef %2571, ptr noundef nonnull @.str.4) #10
  %2573 = load i32, ptr %2570, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror_debug(i32 noundef %2573, ptr noundef nonnull @.str.4) #10
  %2575 = load i32, ptr %2556, align 4, !tbaa !5
  %2576 = call ptr @strerror(i32 noundef %2575) #10
  %2577 = load i32, ptr %2556, align 4, !tbaa !5
  %2578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2568, ptr noundef nonnull %.str.5.sink1534, i32 noundef %2569, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2572, ptr noundef %2574, ptr noundef %2576, i32 noundef %2577) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2579:                                             ; preds = %2551
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = add nsw i32 %2580, 1
  store i32 %2581, ptr @test_count, align 4, !tbaa !5
  %2582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2583 = load i32, ptr %2582, align 4, !tbaa !5
  %2584 = icmp eq i32 %2583, 0
  br i1 %2584, label %2585, label %2608

2585:                                             ; preds = %2579
  %2586 = tail call ptr @__errno_location() #11
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @s2n_print_stacktrace(ptr noundef %2588) #10
  %2590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2591 = trunc nuw i8 %2590 to i1
  br i1 %2591, label %2592, label %2596

2592:                                             ; preds = %2585
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = call i32 @fileno(ptr noundef %2593) #10
  %2595 = call i32 @isatty(i32 noundef %2594) #10
  %.not549 = icmp eq i32 %2595, 0
  br i1 %.not549, label %2596, label %2597

2596:                                             ; preds = %2592, %2585
  br label %2597

2597:                                             ; preds = %2592, %2596
  %.str.5.sink1545 = phi ptr [ @.str.5, %2596 ], [ @.str.2, %2592 ]
  store i32 %2587, ptr %2586, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = load i32, ptr @test_count, align 4, !tbaa !5
  %2600 = load i32, ptr %2582, align 4, !tbaa !5
  %2601 = call ptr @s2n_strerror(i32 noundef %2600, ptr noundef nonnull @.str.4) #10
  %2602 = load i32, ptr %2582, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef nonnull @.str.4) #10
  %2604 = load i32, ptr %2586, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #10
  %2606 = load i32, ptr %2586, align 4, !tbaa !5
  %2607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2598, ptr noundef nonnull %.str.5.sink1545, i32 noundef %2599, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2601, ptr noundef %2603, ptr noundef %2605, i32 noundef %2606) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2608:                                             ; preds = %2579
  %2609 = add nsw i32 %2580, 2
  store i32 %2609, ptr @test_count, align 4, !tbaa !5
  %2610 = call ptr @s2n_strerror_debug(i32 noundef %2583, ptr noundef nonnull @.str.4) #10
  %2611 = icmp eq ptr %2610, null
  br i1 %2611, label %2612, label %2635

2612:                                             ; preds = %2608
  %2613 = tail call ptr @__errno_location() #11
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = call i32 @s2n_print_stacktrace(ptr noundef %2615) #10
  %2617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2618 = trunc nuw i8 %2617 to i1
  br i1 %2618, label %2619, label %2623

2619:                                             ; preds = %2612
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = call i32 @fileno(ptr noundef %2620) #10
  %2622 = call i32 @isatty(i32 noundef %2621) #10
  %.not548 = icmp eq i32 %2622, 0
  br i1 %.not548, label %2623, label %2624

2623:                                             ; preds = %2619, %2612
  br label %2624

2624:                                             ; preds = %2619, %2623
  %.str.5.sink1554 = phi ptr [ @.str.5, %2623 ], [ @.str.2, %2619 ]
  store i32 %2614, ptr %2613, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = load i32, ptr %2582, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror(i32 noundef %2627, ptr noundef nonnull @.str.4) #10
  %2629 = load i32, ptr %2582, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef nonnull @.str.4) #10
  %2631 = load i32, ptr %2613, align 4, !tbaa !5
  %2632 = call ptr @strerror(i32 noundef %2631) #10
  %2633 = load i32, ptr %2613, align 4, !tbaa !5
  %2634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2625, ptr noundef nonnull %.str.5.sink1554, i32 noundef %2626, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2628, ptr noundef %2630, ptr noundef %2632, i32 noundef %2633) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2635:                                             ; preds = %2608
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %2636 = tail call ptr @__errno_location() #11
  store i32 0, ptr %2636, align 4, !tbaa !5
  %2637 = load i32, ptr @test_count, align 4, !tbaa !5
  %2638 = add nsw i32 %2637, 1
  store i32 %2638, ptr @test_count, align 4, !tbaa !5
  %2639 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2495, ptr noundef nonnull @.str.64) #10
  %2640 = icmp eq i32 %2639, -1
  br i1 %2640, label %2641, label %2663

2641:                                             ; preds = %2635
  %2642 = load i32, ptr %2636, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @s2n_print_stacktrace(ptr noundef %2643) #10
  %2645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2646 = trunc nuw i8 %2645 to i1
  br i1 %2646, label %2647, label %2651

2647:                                             ; preds = %2641
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = call i32 @fileno(ptr noundef %2648) #10
  %2650 = call i32 @isatty(i32 noundef %2649) #10
  %.not547 = icmp eq i32 %2650, 0
  br i1 %.not547, label %2651, label %2652

2651:                                             ; preds = %2647, %2641
  br label %2652

2652:                                             ; preds = %2647, %2651
  %.str.5.sink1563 = phi ptr [ @.str.5, %2651 ], [ @.str.2, %2647 ]
  store i32 %2642, ptr %2636, align 4, !tbaa !5
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = load i32, ptr %2582, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror(i32 noundef %2655, ptr noundef nonnull @.str.4) #10
  %2657 = load i32, ptr %2582, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef nonnull @.str.4) #10
  %2659 = load i32, ptr %2636, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #10
  %2661 = load i32, ptr %2636, align 4, !tbaa !5
  %2662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2653, ptr noundef nonnull %.str.5.sink1563, i32 noundef %2654, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %2656, ptr noundef %2658, ptr noundef %2660, i32 noundef %2661) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2663:                                             ; preds = %2635
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = add nsw i32 %2664, 1
  store i32 %2665, ptr @test_count, align 4, !tbaa !5
  %2666 = load ptr, ptr %2524, align 8, !tbaa !15
  %2667 = icmp eq ptr %2666, null
  br i1 %2667, label %2668, label %2690

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %2636, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @s2n_print_stacktrace(ptr noundef %2670) #10
  %2672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2673 = trunc nuw i8 %2672 to i1
  br i1 %2673, label %2674, label %2678

2674:                                             ; preds = %2668
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = call i32 @fileno(ptr noundef %2675) #10
  %2677 = call i32 @isatty(i32 noundef %2676) #10
  %.not546 = icmp eq i32 %2677, 0
  br i1 %.not546, label %2678, label %2679

2678:                                             ; preds = %2674, %2668
  br label %2679

2679:                                             ; preds = %2674, %2678
  %.str.5.sink1572 = phi ptr [ @.str.5, %2678 ], [ @.str.2, %2674 ]
  store i32 %2669, ptr %2636, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = load i32, ptr %2582, align 4, !tbaa !5
  %2683 = call ptr @s2n_strerror(i32 noundef %2682, ptr noundef nonnull @.str.4) #10
  %2684 = load i32, ptr %2582, align 4, !tbaa !5
  %2685 = call ptr @s2n_strerror_debug(i32 noundef %2684, ptr noundef nonnull @.str.4) #10
  %2686 = load i32, ptr %2636, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #10
  %2688 = load i32, ptr %2636, align 4, !tbaa !5
  %2689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef nonnull %.str.5.sink1572, i32 noundef %2681, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %2683, ptr noundef %2685, ptr noundef %2687, i32 noundef %2688) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2690:                                             ; preds = %2663
  %2691 = add nsw i32 %2664, 2
  store i32 %2691, ptr @test_count, align 4, !tbaa !5
  %2692 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %2495, ptr noundef nonnull %21) #10
  %2693 = icmp eq i32 %2692, -1
  br i1 %2693, label %2694, label %2716

2694:                                             ; preds = %2690
  %2695 = load i32, ptr %2636, align 4, !tbaa !5
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = call i32 @s2n_print_stacktrace(ptr noundef %2696) #10
  %2698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2699 = trunc nuw i8 %2698 to i1
  br i1 %2699, label %2700, label %2704

2700:                                             ; preds = %2694
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = call i32 @fileno(ptr noundef %2701) #10
  %2703 = call i32 @isatty(i32 noundef %2702) #10
  %.not545 = icmp eq i32 %2703, 0
  br i1 %.not545, label %2704, label %2705

2704:                                             ; preds = %2700, %2694
  br label %2705

2705:                                             ; preds = %2700, %2704
  %.str.5.sink1581 = phi ptr [ @.str.5, %2704 ], [ @.str.2, %2700 ]
  store i32 %2695, ptr %2636, align 4, !tbaa !5
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = load i32, ptr @test_count, align 4, !tbaa !5
  %2708 = load i32, ptr %2582, align 4, !tbaa !5
  %2709 = call ptr @s2n_strerror(i32 noundef %2708, ptr noundef nonnull @.str.4) #10
  %2710 = load i32, ptr %2582, align 4, !tbaa !5
  %2711 = call ptr @s2n_strerror_debug(i32 noundef %2710, ptr noundef nonnull @.str.4) #10
  %2712 = load i32, ptr %2636, align 4, !tbaa !5
  %2713 = call ptr @strerror(i32 noundef %2712) #10
  %2714 = load i32, ptr %2636, align 4, !tbaa !5
  %2715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2706, ptr noundef nonnull %.str.5.sink1581, i32 noundef %2707, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %2709, ptr noundef %2711, ptr noundef %2713, i32 noundef %2714) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2716:                                             ; preds = %2690
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = add nsw i32 %2717, 1
  store i32 %2718, ptr @test_count, align 4, !tbaa !5
  %2719 = load ptr, ptr %21, align 8, !tbaa !9
  %2720 = icmp eq ptr %2719, @cipher_preferences_null
  br i1 %2720, label %2743, label %2721

2721:                                             ; preds = %2716
  %2722 = load i32, ptr %2636, align 4, !tbaa !5
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = call i32 @s2n_print_stacktrace(ptr noundef %2723) #10
  %2725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2726 = trunc nuw i8 %2725 to i1
  br i1 %2726, label %2727, label %2731

2727:                                             ; preds = %2721
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = call i32 @fileno(ptr noundef %2728) #10
  %2730 = call i32 @isatty(i32 noundef %2729) #10
  %.not458 = icmp eq i32 %2730, 0
  br i1 %.not458, label %2731, label %2732

2731:                                             ; preds = %2727, %2721
  br label %2732

2732:                                             ; preds = %2727, %2731
  %.str.5.sink1590 = phi ptr [ @.str.5, %2731 ], [ @.str.2, %2727 ]
  store i32 %2722, ptr %2636, align 4, !tbaa !5
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = load i32, ptr @test_count, align 4, !tbaa !5
  %2735 = load i32, ptr %2582, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror(i32 noundef %2735, ptr noundef nonnull @.str.4) #10
  %2737 = load i32, ptr %2582, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror_debug(i32 noundef %2737, ptr noundef nonnull @.str.4) #10
  %2739 = load i32, ptr %2636, align 4, !tbaa !5
  %2740 = call ptr @strerror(i32 noundef %2739) #10
  %2741 = load i32, ptr %2636, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2733, ptr noundef nonnull %.str.5.sink1590, i32 noundef %2734, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %2736, ptr noundef %2738, ptr noundef %2740, i32 noundef %2741) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2743:                                             ; preds = %2716
  %2744 = add nsw i32 %2717, 2
  store i32 %2744, ptr @test_count, align 4, !tbaa !5
  %2745 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %2495, ptr noundef nonnull %22) #10
  %2746 = icmp eq i32 %2745, -1
  br i1 %2746, label %2747, label %2769

2747:                                             ; preds = %2743
  %2748 = load i32, ptr %2636, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @s2n_print_stacktrace(ptr noundef %2749) #10
  %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) #10
  %2756 = call i32 @isatty(i32 noundef %2755) #10
  %.not544 = icmp eq i32 %2756, 0
  br i1 %.not544, label %2757, label %2758

2757:                                             ; preds = %2753, %2747
  br label %2758

2758:                                             ; preds = %2753, %2757
  %.str.5.sink1599 = phi ptr [ @.str.5, %2757 ], [ @.str.2, %2753 ]
  store i32 %2748, ptr %2636, 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 %2582, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef nonnull @.str.4) #10
  %2763 = load i32, ptr %2582, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef nonnull @.str.4) #10
  %2765 = load i32, ptr %2636, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #10
  %2767 = load i32, ptr %2636, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef nonnull %.str.5.sink1599, i32 noundef %2760, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2762, ptr noundef %2764, ptr noundef %2766, i32 noundef %2767) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2769:                                             ; preds = %2743
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = add nsw i32 %2770, 1
  store i32 %2771, ptr @test_count, align 4, !tbaa !5
  %2772 = load ptr, ptr %22, align 8, !tbaa !9
  %2773 = icmp eq ptr %2772, @security_policy_null
  br i1 %2773, label %2796, label %2774

2774:                                             ; preds = %2769
  %2775 = load i32, ptr %2636, align 4, !tbaa !5
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @s2n_print_stacktrace(ptr noundef %2776) #10
  %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) #10
  %2783 = call i32 @isatty(i32 noundef %2782) #10
  %.not459 = icmp eq i32 %2783, 0
  br i1 %.not459, label %2784, label %2785

2784:                                             ; preds = %2780, %2774
  br label %2785

2785:                                             ; preds = %2780, %2784
  %.str.5.sink1608 = phi ptr [ @.str.5, %2784 ], [ @.str.2, %2780 ]
  store i32 %2775, ptr %2636, 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 %2582, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror(i32 noundef %2788, ptr noundef nonnull @.str.4) #10
  %2790 = load i32, ptr %2582, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror_debug(i32 noundef %2790, ptr noundef nonnull @.str.4) #10
  %2792 = load i32, ptr %2636, align 4, !tbaa !5
  %2793 = call ptr @strerror(i32 noundef %2792) #10
  %2794 = load i32, ptr %2636, align 4, !tbaa !5
  %2795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2786, ptr noundef nonnull %.str.5.sink1608, i32 noundef %2787, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %2789, ptr noundef %2791, ptr noundef %2793, i32 noundef %2794) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2796:                                             ; preds = %2769
  %2797 = add nsw i32 %2770, 2
  store i32 %2797, ptr @test_count, align 4, !tbaa !5
  %2798 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %2495, ptr noundef nonnull %23) #10
  %2799 = icmp eq i32 %2798, -1
  br i1 %2799, label %2800, label %2822

2800:                                             ; preds = %2796
  %2801 = load i32, ptr %2636, align 4, !tbaa !5
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = call i32 @s2n_print_stacktrace(ptr noundef %2802) #10
  %2804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2805 = trunc nuw i8 %2804 to i1
  br i1 %2805, label %2806, label %2810

2806:                                             ; preds = %2800
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = call i32 @fileno(ptr noundef %2807) #10
  %2809 = call i32 @isatty(i32 noundef %2808) #10
  %.not543 = icmp eq i32 %2809, 0
  br i1 %.not543, label %2810, label %2811

2810:                                             ; preds = %2806, %2800
  br label %2811

2811:                                             ; preds = %2806, %2810
  %.str.5.sink1617 = phi ptr [ @.str.5, %2810 ], [ @.str.2, %2806 ]
  store i32 %2801, ptr %2636, align 4, !tbaa !5
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = load i32, ptr %2582, align 4, !tbaa !5
  %2815 = call ptr @s2n_strerror(i32 noundef %2814, ptr noundef nonnull @.str.4) #10
  %2816 = load i32, ptr %2582, align 4, !tbaa !5
  %2817 = call ptr @s2n_strerror_debug(i32 noundef %2816, ptr noundef nonnull @.str.4) #10
  %2818 = load i32, ptr %2636, align 4, !tbaa !5
  %2819 = call ptr @strerror(i32 noundef %2818) #10
  %2820 = load i32, ptr %2636, align 4, !tbaa !5
  %2821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2812, ptr noundef nonnull %.str.5.sink1617, i32 noundef %2813, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2815, ptr noundef %2817, ptr noundef %2819, i32 noundef %2820) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2822:                                             ; preds = %2796
  %2823 = load i32, ptr @test_count, align 4, !tbaa !5
  %2824 = add nsw i32 %2823, 1
  store i32 %2824, ptr @test_count, align 4, !tbaa !5
  %2825 = load ptr, ptr %23, align 8, !tbaa !9
  %2826 = icmp eq ptr %2825, @kem_preferences_null
  br i1 %2826, label %2849, label %2827

2827:                                             ; preds = %2822
  %2828 = load i32, ptr %2636, align 4, !tbaa !5
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = call i32 @s2n_print_stacktrace(ptr noundef %2829) #10
  %2831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2832 = trunc nuw i8 %2831 to i1
  br i1 %2832, label %2833, label %2837

2833:                                             ; preds = %2827
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = call i32 @fileno(ptr noundef %2834) #10
  %2836 = call i32 @isatty(i32 noundef %2835) #10
  %.not460 = icmp eq i32 %2836, 0
  br i1 %.not460, label %2837, label %2838

2837:                                             ; preds = %2833, %2827
  br label %2838

2838:                                             ; preds = %2833, %2837
  %.str.5.sink1626 = phi ptr [ @.str.5, %2837 ], [ @.str.2, %2833 ]
  store i32 %2828, ptr %2636, align 4, !tbaa !5
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = load i32, ptr %2582, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror(i32 noundef %2841, ptr noundef nonnull @.str.4) #10
  %2843 = load i32, ptr %2582, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef nonnull @.str.4) #10
  %2845 = load i32, ptr %2636, align 4, !tbaa !5
  %2846 = call ptr @strerror(i32 noundef %2845) #10
  %2847 = load i32, ptr %2636, align 4, !tbaa !5
  %2848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2839, ptr noundef nonnull %.str.5.sink1626, i32 noundef %2840, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2842, ptr noundef %2844, ptr noundef %2846, i32 noundef %2847) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2849:                                             ; preds = %2822
  %2850 = add nsw i32 %2823, 2
  store i32 %2850, ptr @test_count, align 4, !tbaa !5
  %2851 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %2495, ptr noundef nonnull %24) #10
  %2852 = icmp eq i32 %2851, -1
  br i1 %2852, label %2853, label %2875

2853:                                             ; preds = %2849
  %2854 = load i32, ptr %2636, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = call i32 @s2n_print_stacktrace(ptr noundef %2855) #10
  %2857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2858 = trunc nuw i8 %2857 to i1
  br i1 %2858, label %2859, label %2863

2859:                                             ; preds = %2853
  %2860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2861 = call i32 @fileno(ptr noundef %2860) #10
  %2862 = call i32 @isatty(i32 noundef %2861) #10
  %.not542 = icmp eq i32 %2862, 0
  br i1 %.not542, label %2863, label %2864

2863:                                             ; preds = %2859, %2853
  br label %2864

2864:                                             ; preds = %2859, %2863
  %.str.5.sink1635 = phi ptr [ @.str.5, %2863 ], [ @.str.2, %2859 ]
  store i32 %2854, ptr %2636, align 4, !tbaa !5
  %2865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2866 = load i32, ptr @test_count, align 4, !tbaa !5
  %2867 = load i32, ptr %2582, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror(i32 noundef %2867, ptr noundef nonnull @.str.4) #10
  %2869 = load i32, ptr %2582, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror_debug(i32 noundef %2869, ptr noundef nonnull @.str.4) #10
  %2871 = load i32, ptr %2636, align 4, !tbaa !5
  %2872 = call ptr @strerror(i32 noundef %2871) #10
  %2873 = load i32, ptr %2636, align 4, !tbaa !5
  %2874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2865, ptr noundef nonnull %.str.5.sink1635, i32 noundef %2866, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %2868, ptr noundef %2870, ptr noundef %2872, i32 noundef %2873) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2875:                                             ; preds = %2849
  %2876 = load i32, ptr @test_count, align 4, !tbaa !5
  %2877 = add nsw i32 %2876, 1
  store i32 %2877, ptr @test_count, align 4, !tbaa !5
  %2878 = load ptr, ptr %24, align 8, !tbaa !9
  %2879 = icmp eq ptr %2878, @s2n_signature_preferences_null
  br i1 %2879, label %2902, label %2880

2880:                                             ; preds = %2875
  %2881 = load i32, ptr %2636, align 4, !tbaa !5
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = call i32 @s2n_print_stacktrace(ptr noundef %2882) #10
  %2884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2885 = trunc nuw i8 %2884 to i1
  br i1 %2885, label %2886, label %2890

2886:                                             ; preds = %2880
  %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
  %.not461 = icmp eq i32 %2889, 0
  br i1 %.not461, label %2890, label %2891

2890:                                             ; preds = %2886, %2880
  br label %2891

2891:                                             ; preds = %2886, %2890
  %.str.5.sink1644 = phi ptr [ @.str.5, %2890 ], [ @.str.2, %2886 ]
  store i32 %2881, ptr %2636, align 4, !tbaa !5
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = load i32, ptr @test_count, align 4, !tbaa !5
  %2894 = load i32, ptr %2582, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror(i32 noundef %2894, ptr noundef nonnull @.str.4) #10
  %2896 = load i32, ptr %2582, align 4, !tbaa !5
  %2897 = call ptr @s2n_strerror_debug(i32 noundef %2896, ptr noundef nonnull @.str.4) #10
  %2898 = load i32, ptr %2636, align 4, !tbaa !5
  %2899 = call ptr @strerror(i32 noundef %2898) #10
  %2900 = load i32, ptr %2636, align 4, !tbaa !5
  %2901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2892, ptr noundef nonnull %.str.5.sink1644, i32 noundef %2893, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %2895, ptr noundef %2897, ptr noundef %2899, i32 noundef %2900) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2902:                                             ; preds = %2875
  %2903 = add nsw i32 %2876, 2
  store i32 %2903, ptr @test_count, align 4, !tbaa !5
  %2904 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %2495, ptr noundef nonnull %25) #10
  %2905 = icmp eq i32 %2904, -1
  br i1 %2905, label %2906, label %2928

2906:                                             ; preds = %2902
  %2907 = load i32, ptr %2636, align 4, !tbaa !5
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = call i32 @s2n_print_stacktrace(ptr noundef %2908) #10
  %2910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2911 = trunc nuw i8 %2910 to i1
  br i1 %2911, label %2912, label %2916

2912:                                             ; preds = %2906
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = call i32 @fileno(ptr noundef %2913) #10
  %2915 = call i32 @isatty(i32 noundef %2914) #10
  %.not541 = icmp eq i32 %2915, 0
  br i1 %.not541, label %2916, label %2917

2916:                                             ; preds = %2912, %2906
  br label %2917

2917:                                             ; preds = %2912, %2916
  %.str.5.sink1653 = phi ptr [ @.str.5, %2916 ], [ @.str.2, %2912 ]
  store i32 %2907, ptr %2636, align 4, !tbaa !5
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = load i32, ptr @test_count, align 4, !tbaa !5
  %2920 = load i32, ptr %2582, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror(i32 noundef %2920, ptr noundef nonnull @.str.4) #10
  %2922 = load i32, ptr %2582, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror_debug(i32 noundef %2922, ptr noundef nonnull @.str.4) #10
  %2924 = load i32, ptr %2636, align 4, !tbaa !5
  %2925 = call ptr @strerror(i32 noundef %2924) #10
  %2926 = load i32, ptr %2636, align 4, !tbaa !5
  %2927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2918, ptr noundef nonnull %.str.5.sink1653, i32 noundef %2919, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %2921, ptr noundef %2923, ptr noundef %2925, i32 noundef %2926) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2928:                                             ; preds = %2902
  %2929 = load i32, ptr @test_count, align 4, !tbaa !5
  %2930 = add nsw i32 %2929, 1
  store i32 %2930, ptr @test_count, align 4, !tbaa !5
  %2931 = load ptr, ptr %25, align 8, !tbaa !9
  %2932 = icmp eq ptr %2931, @s2n_ecc_preferences_null
  br i1 %2932, label %2955, label %2933

2933:                                             ; preds = %2928
  %2934 = load i32, ptr %2636, align 4, !tbaa !5
  %2935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2936 = call i32 @s2n_print_stacktrace(ptr noundef %2935) #10
  %2937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2938 = trunc nuw i8 %2937 to i1
  br i1 %2938, label %2939, label %2943

2939:                                             ; preds = %2933
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = call i32 @fileno(ptr noundef %2940) #10
  %2942 = call i32 @isatty(i32 noundef %2941) #10
  %.not462 = icmp eq i32 %2942, 0
  br i1 %.not462, label %2943, label %2944

2943:                                             ; preds = %2939, %2933
  br label %2944

2944:                                             ; preds = %2939, %2943
  %.str.5.sink1662 = phi ptr [ @.str.5, %2943 ], [ @.str.2, %2939 ]
  store i32 %2934, ptr %2636, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = load i32, ptr @test_count, align 4, !tbaa !5
  %2947 = load i32, ptr %2582, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror(i32 noundef %2947, ptr noundef nonnull @.str.4) #10
  %2949 = load i32, ptr %2582, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef nonnull @.str.4) #10
  %2951 = load i32, ptr %2636, align 4, !tbaa !5
  %2952 = call ptr @strerror(i32 noundef %2951) #10
  %2953 = load i32, ptr %2636, align 4, !tbaa !5
  %2954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2945, ptr noundef nonnull %.str.5.sink1662, i32 noundef %2946, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2948, ptr noundef %2950, ptr noundef %2952, i32 noundef %2953) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2955:                                             ; preds = %2928
  %2956 = add nsw i32 %2929, 2
  store i32 %2956, ptr @test_count, align 4, !tbaa !5
  %2957 = call i32 @s2n_connection_free(ptr noundef nonnull %2495) #10
  %2958 = icmp eq i32 %2957, -1
  br i1 %2958, label %2959, label %2981

2959:                                             ; preds = %2955
  %2960 = load i32, ptr %2636, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @s2n_print_stacktrace(ptr noundef %2961) #10
  %2963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2964 = trunc nuw i8 %2963 to i1
  br i1 %2964, label %2965, label %2969

2965:                                             ; preds = %2959
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @fileno(ptr noundef %2966) #10
  %2968 = call i32 @isatty(i32 noundef %2967) #10
  %.not540 = icmp eq i32 %2968, 0
  br i1 %.not540, label %2969, label %2970

2969:                                             ; preds = %2965, %2959
  br label %2970

2970:                                             ; preds = %2965, %2969
  %.str.5.sink1671 = phi ptr [ @.str.5, %2969 ], [ @.str.2, %2965 ]
  store i32 %2960, ptr %2636, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = load i32, ptr %2582, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror(i32 noundef %2973, ptr noundef nonnull @.str.4) #10
  %2975 = load i32, ptr %2582, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror_debug(i32 noundef %2975, ptr noundef nonnull @.str.4) #10
  %2977 = load i32, ptr %2636, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #10
  %2979 = load i32, ptr %2636, align 4, !tbaa !5
  %2980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2971, ptr noundef nonnull %.str.5.sink1671, i32 noundef %2972, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %2974, ptr noundef %2976, ptr noundef %2978, i32 noundef %2979) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2981:                                             ; preds = %2955
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #10
  store ptr null, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #10
  store ptr null, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  store ptr null, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  store ptr null, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #10
  store ptr null, ptr %30, align 8, !tbaa !9
  %2982 = load i32, ptr @test_count, align 4, !tbaa !5
  %2983 = add nsw i32 %2982, 1
  store i32 %2983, ptr @test_count, align 4, !tbaa !5
  %2984 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef null, ptr noundef nonnull %26) #10
  %2985 = icmp eq i32 %2984, -1
  br i1 %2985, label %3008, label %2986

2986:                                             ; preds = %2981
  %2987 = load i32, ptr %2636, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = call i32 @s2n_print_stacktrace(ptr noundef %2988) #10
  %2990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2991 = trunc nuw i8 %2990 to i1
  br i1 %2991, label %2992, label %2996

2992:                                             ; preds = %2986
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @fileno(ptr noundef %2993) #10
  %2995 = call i32 @isatty(i32 noundef %2994) #10
  %.not463 = icmp eq i32 %2995, 0
  br i1 %.not463, label %2996, label %2997

2996:                                             ; preds = %2992, %2986
  br label %2997

2997:                                             ; preds = %2992, %2996
  %.str.5.sink1680 = phi ptr [ @.str.5, %2996 ], [ @.str.2, %2992 ]
  store i32 %2987, ptr %2636, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = load i32, ptr @test_count, align 4, !tbaa !5
  %3000 = load i32, ptr %2582, align 4, !tbaa !5
  %3001 = call ptr @s2n_strerror(i32 noundef %3000, ptr noundef nonnull @.str.4) #10
  %3002 = load i32, ptr %2582, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror_debug(i32 noundef %3002, ptr noundef nonnull @.str.4) #10
  %3004 = load i32, ptr %2636, align 4, !tbaa !5
  %3005 = call ptr @strerror(i32 noundef %3004) #10
  %3006 = load i32, ptr %2636, align 4, !tbaa !5
  %3007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2998, ptr noundef nonnull %.str.5.sink1680, i32 noundef %2999, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %3001, ptr noundef %3003, ptr noundef %3005, i32 noundef %3006) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3008:                                             ; preds = %2981
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = add nsw i32 %3009, 1
  store i32 %3010, ptr @test_count, align 4, !tbaa !5
  %3011 = load i32, ptr %2582, align 4, !tbaa !5
  %3012 = icmp eq i32 %3011, 0
  br i1 %3012, label %3013, label %3035

3013:                                             ; preds = %3008
  %3014 = load i32, ptr %2636, align 4, !tbaa !5
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3016 = call i32 @s2n_print_stacktrace(ptr noundef %3015) #10
  %3017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3018 = trunc nuw i8 %3017 to i1
  br i1 %3018, label %3019, label %3023

3019:                                             ; preds = %3013
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @fileno(ptr noundef %3020) #10
  %3022 = call i32 @isatty(i32 noundef %3021) #10
  %.not539 = icmp eq i32 %3022, 0
  br i1 %.not539, label %3023, label %3024

3023:                                             ; preds = %3019, %3013
  br label %3024

3024:                                             ; preds = %3019, %3023
  %.str.5.sink1689 = phi ptr [ @.str.5, %3023 ], [ @.str.2, %3019 ]
  store i32 %3014, ptr %2636, align 4, !tbaa !5
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3026 = load i32, ptr @test_count, align 4, !tbaa !5
  %3027 = load i32, ptr %2582, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror(i32 noundef %3027, ptr noundef nonnull @.str.4) #10
  %3029 = load i32, ptr %2582, align 4, !tbaa !5
  %3030 = call ptr @s2n_strerror_debug(i32 noundef %3029, ptr noundef nonnull @.str.4) #10
  %3031 = load i32, ptr %2636, align 4, !tbaa !5
  %3032 = call ptr @strerror(i32 noundef %3031) #10
  %3033 = load i32, ptr %2636, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3025, ptr noundef nonnull %.str.5.sink1689, i32 noundef %3026, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %3028, ptr noundef %3030, ptr noundef %3032, i32 noundef %3033) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3035:                                             ; preds = %3008
  %3036 = add nsw i32 %3009, 2
  store i32 %3036, ptr @test_count, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror_debug(i32 noundef %3011, ptr noundef nonnull @.str.4) #10
  %3038 = icmp eq ptr %3037, null
  br i1 %3038, label %3039, label %3061

3039:                                             ; preds = %3035
  %3040 = load i32, ptr %2636, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @s2n_print_stacktrace(ptr noundef %3041) #10
  %3043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc nuw i8 %3043 to i1
  br i1 %3044, label %3045, label %3049

3045:                                             ; preds = %3039
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = call i32 @fileno(ptr noundef %3046) #10
  %3048 = call i32 @isatty(i32 noundef %3047) #10
  %.not538 = icmp eq i32 %3048, 0
  br i1 %.not538, label %3049, label %3050

3049:                                             ; preds = %3045, %3039
  br label %3050

3050:                                             ; preds = %3045, %3049
  %.str.5.sink1698 = phi ptr [ @.str.5, %3049 ], [ @.str.2, %3045 ]
  store i32 %3040, ptr %2636, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = load i32, ptr %2582, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef nonnull @.str.4) #10
  %3055 = load i32, ptr %2582, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef nonnull @.str.4) #10
  %3057 = load i32, ptr %2636, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #10
  %3059 = load i32, ptr %2636, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef nonnull %.str.5.sink1698, i32 noundef %3052, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %3054, ptr noundef %3056, ptr noundef %3058, i32 noundef %3059) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3061:                                             ; preds = %3035
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = add nsw i32 %3062, 1
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = call i32 @s2n_connection_get_security_policy(ptr noundef null, ptr noundef nonnull %27) #10
  %3065 = icmp eq i32 %3064, -1
  br i1 %3065, label %3088, label %3066

3066:                                             ; preds = %3061
  %3067 = load i32, ptr %2636, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @s2n_print_stacktrace(ptr noundef %3068) #10
  %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) #10
  %3075 = call i32 @isatty(i32 noundef %3074) #10
  %.not464 = icmp eq i32 %3075, 0
  br i1 %.not464, label %3076, label %3077

3076:                                             ; preds = %3072, %3066
  br label %3077

3077:                                             ; preds = %3072, %3076
  %.str.5.sink1707 = phi ptr [ @.str.5, %3076 ], [ @.str.2, %3072 ]
  store i32 %3067, ptr %2636, 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 %2582, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror(i32 noundef %3080, ptr noundef nonnull @.str.4) #10
  %3082 = load i32, ptr %2582, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror_debug(i32 noundef %3082, ptr noundef nonnull @.str.4) #10
  %3084 = load i32, ptr %2636, align 4, !tbaa !5
  %3085 = call ptr @strerror(i32 noundef %3084) #10
  %3086 = load i32, ptr %2636, align 4, !tbaa !5
  %3087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3078, ptr noundef nonnull %.str.5.sink1707, i32 noundef %3079, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %3081, ptr noundef %3083, ptr noundef %3085, i32 noundef %3086) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3088:                                             ; preds = %3061
  %3089 = load i32, ptr @test_count, align 4, !tbaa !5
  %3090 = add nsw i32 %3089, 1
  store i32 %3090, ptr @test_count, align 4, !tbaa !5
  %3091 = load i32, ptr %2582, align 4, !tbaa !5
  %3092 = icmp eq i32 %3091, 0
  br i1 %3092, label %3093, label %3115

3093:                                             ; preds = %3088
  %3094 = load i32, ptr %2636, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @s2n_print_stacktrace(ptr noundef %3095) #10
  %3097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3098 = trunc nuw i8 %3097 to i1
  br i1 %3098, label %3099, label %3103

3099:                                             ; preds = %3093
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = call i32 @fileno(ptr noundef %3100) #10
  %3102 = call i32 @isatty(i32 noundef %3101) #10
  %.not537 = icmp eq i32 %3102, 0
  br i1 %.not537, label %3103, label %3104

3103:                                             ; preds = %3099, %3093
  br label %3104

3104:                                             ; preds = %3099, %3103
  %.str.5.sink1716 = phi ptr [ @.str.5, %3103 ], [ @.str.2, %3099 ]
  store i32 %3094, ptr %2636, align 4, !tbaa !5
  %3105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3106 = load i32, ptr @test_count, align 4, !tbaa !5
  %3107 = load i32, ptr %2582, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror(i32 noundef %3107, ptr noundef nonnull @.str.4) #10
  %3109 = load i32, ptr %2582, align 4, !tbaa !5
  %3110 = call ptr @s2n_strerror_debug(i32 noundef %3109, ptr noundef nonnull @.str.4) #10
  %3111 = load i32, ptr %2636, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #10
  %3113 = load i32, ptr %2636, align 4, !tbaa !5
  %3114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3105, ptr noundef nonnull %.str.5.sink1716, i32 noundef %3106, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %3108, ptr noundef %3110, ptr noundef %3112, i32 noundef %3113) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3115:                                             ; preds = %3088
  %3116 = add nsw i32 %3089, 2
  store i32 %3116, ptr @test_count, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror_debug(i32 noundef %3091, ptr noundef nonnull @.str.4) #10
  %3118 = icmp eq ptr %3117, null
  br i1 %3118, label %3119, label %3141

3119:                                             ; preds = %3115
  %3120 = load i32, ptr %2636, align 4, !tbaa !5
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = call i32 @s2n_print_stacktrace(ptr noundef %3121) #10
  %3123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3124 = trunc nuw i8 %3123 to i1
  br i1 %3124, label %3125, label %3129

3125:                                             ; preds = %3119
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = call i32 @fileno(ptr noundef %3126) #10
  %3128 = call i32 @isatty(i32 noundef %3127) #10
  %.not536 = icmp eq i32 %3128, 0
  br i1 %.not536, label %3129, label %3130

3129:                                             ; preds = %3125, %3119
  br label %3130

3130:                                             ; preds = %3125, %3129
  %.str.5.sink1725 = phi ptr [ @.str.5, %3129 ], [ @.str.2, %3125 ]
  store i32 %3120, ptr %2636, align 4, !tbaa !5
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = load i32, ptr @test_count, align 4, !tbaa !5
  %3133 = load i32, ptr %2582, align 4, !tbaa !5
  %3134 = call ptr @s2n_strerror(i32 noundef %3133, ptr noundef nonnull @.str.4) #10
  %3135 = load i32, ptr %2582, align 4, !tbaa !5
  %3136 = call ptr @s2n_strerror_debug(i32 noundef %3135, ptr noundef nonnull @.str.4) #10
  %3137 = load i32, ptr %2636, align 4, !tbaa !5
  %3138 = call ptr @strerror(i32 noundef %3137) #10
  %3139 = load i32, ptr %2636, align 4, !tbaa !5
  %3140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3131, ptr noundef nonnull %.str.5.sink1725, i32 noundef %3132, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %3134, ptr noundef %3136, ptr noundef %3138, i32 noundef %3139) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3141:                                             ; preds = %3115
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3142 = load i32, ptr @test_count, align 4, !tbaa !5
  %3143 = add nsw i32 %3142, 1
  store i32 %3143, ptr @test_count, align 4, !tbaa !5
  %3144 = call i32 @s2n_connection_get_kem_preferences(ptr noundef null, ptr noundef nonnull %28) #10
  %3145 = icmp eq i32 %3144, -1
  br i1 %3145, label %3168, label %3146

3146:                                             ; preds = %3141
  %3147 = load i32, ptr %2636, align 4, !tbaa !5
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = call i32 @s2n_print_stacktrace(ptr noundef %3148) #10
  %3150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3151 = trunc nuw i8 %3150 to i1
  br i1 %3151, label %3152, label %3156

3152:                                             ; preds = %3146
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = call i32 @fileno(ptr noundef %3153) #10
  %3155 = call i32 @isatty(i32 noundef %3154) #10
  %.not465 = icmp eq i32 %3155, 0
  br i1 %.not465, label %3156, label %3157

3156:                                             ; preds = %3152, %3146
  br label %3157

3157:                                             ; preds = %3152, %3156
  %.str.5.sink1734 = phi ptr [ @.str.5, %3156 ], [ @.str.2, %3152 ]
  store i32 %3147, ptr %2636, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = load i32, ptr @test_count, align 4, !tbaa !5
  %3160 = load i32, ptr %2582, align 4, !tbaa !5
  %3161 = call ptr @s2n_strerror(i32 noundef %3160, ptr noundef nonnull @.str.4) #10
  %3162 = load i32, ptr %2582, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror_debug(i32 noundef %3162, ptr noundef nonnull @.str.4) #10
  %3164 = load i32, ptr %2636, align 4, !tbaa !5
  %3165 = call ptr @strerror(i32 noundef %3164) #10
  %3166 = load i32, ptr %2636, align 4, !tbaa !5
  %3167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3158, ptr noundef nonnull %.str.5.sink1734, i32 noundef %3159, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %3161, ptr noundef %3163, ptr noundef %3165, i32 noundef %3166) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3168:                                             ; preds = %3141
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = add nsw i32 %3169, 1
  store i32 %3170, ptr @test_count, align 4, !tbaa !5
  %3171 = load i32, ptr %2582, align 4, !tbaa !5
  %3172 = icmp eq i32 %3171, 0
  br i1 %3172, label %3173, label %3195

3173:                                             ; preds = %3168
  %3174 = load i32, ptr %2636, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = call i32 @s2n_print_stacktrace(ptr noundef %3175) #10
  %3177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3178 = trunc nuw i8 %3177 to i1
  br i1 %3178, label %3179, label %3183

3179:                                             ; preds = %3173
  %3180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3181 = call i32 @fileno(ptr noundef %3180) #10
  %3182 = call i32 @isatty(i32 noundef %3181) #10
  %.not535 = icmp eq i32 %3182, 0
  br i1 %.not535, label %3183, label %3184

3183:                                             ; preds = %3179, %3173
  br label %3184

3184:                                             ; preds = %3179, %3183
  %.str.5.sink1743 = phi ptr [ @.str.5, %3183 ], [ @.str.2, %3179 ]
  store i32 %3174, ptr %2636, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = load i32, ptr %2582, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror(i32 noundef %3187, ptr noundef nonnull @.str.4) #10
  %3189 = load i32, ptr %2582, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror_debug(i32 noundef %3189, ptr noundef nonnull @.str.4) #10
  %3191 = load i32, ptr %2636, align 4, !tbaa !5
  %3192 = call ptr @strerror(i32 noundef %3191) #10
  %3193 = load i32, ptr %2636, align 4, !tbaa !5
  %3194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef nonnull %.str.5.sink1743, i32 noundef %3186, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %3188, ptr noundef %3190, ptr noundef %3192, i32 noundef %3193) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3195:                                             ; preds = %3168
  %3196 = add nsw i32 %3169, 2
  store i32 %3196, ptr @test_count, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror_debug(i32 noundef %3171, ptr noundef nonnull @.str.4) #10
  %3198 = icmp eq ptr %3197, null
  br i1 %3198, label %3199, label %3221

3199:                                             ; preds = %3195
  %3200 = load i32, ptr %2636, align 4, !tbaa !5
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = call i32 @s2n_print_stacktrace(ptr noundef %3201) #10
  %3203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3204 = trunc nuw i8 %3203 to i1
  br i1 %3204, label %3205, label %3209

3205:                                             ; preds = %3199
  %3206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3207 = call i32 @fileno(ptr noundef %3206) #10
  %3208 = call i32 @isatty(i32 noundef %3207) #10
  %.not534 = icmp eq i32 %3208, 0
  br i1 %.not534, label %3209, label %3210

3209:                                             ; preds = %3205, %3199
  br label %3210

3210:                                             ; preds = %3205, %3209
  %.str.5.sink1752 = phi ptr [ @.str.5, %3209 ], [ @.str.2, %3205 ]
  store i32 %3200, ptr %2636, align 4, !tbaa !5
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3212 = load i32, ptr @test_count, align 4, !tbaa !5
  %3213 = load i32, ptr %2582, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror(i32 noundef %3213, ptr noundef nonnull @.str.4) #10
  %3215 = load i32, ptr %2582, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror_debug(i32 noundef %3215, ptr noundef nonnull @.str.4) #10
  %3217 = load i32, ptr %2636, align 4, !tbaa !5
  %3218 = call ptr @strerror(i32 noundef %3217) #10
  %3219 = load i32, ptr %2636, align 4, !tbaa !5
  %3220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3211, ptr noundef nonnull %.str.5.sink1752, i32 noundef %3212, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %3214, ptr noundef %3216, ptr noundef %3218, i32 noundef %3219) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3221:                                             ; preds = %3195
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = add nsw i32 %3222, 1
  store i32 %3223, ptr @test_count, align 4, !tbaa !5
  %3224 = call i32 @s2n_connection_get_signature_preferences(ptr noundef null, ptr noundef nonnull %29) #10
  %3225 = icmp eq i32 %3224, -1
  br i1 %3225, label %3248, label %3226

3226:                                             ; preds = %3221
  %3227 = load i32, ptr %2636, align 4, !tbaa !5
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = call i32 @s2n_print_stacktrace(ptr noundef %3228) #10
  %3230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3231 = trunc nuw i8 %3230 to i1
  br i1 %3231, label %3232, label %3236

3232:                                             ; preds = %3226
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = call i32 @fileno(ptr noundef %3233) #10
  %3235 = call i32 @isatty(i32 noundef %3234) #10
  %.not466 = icmp eq i32 %3235, 0
  br i1 %.not466, label %3236, label %3237

3236:                                             ; preds = %3232, %3226
  br label %3237

3237:                                             ; preds = %3232, %3236
  %.str.5.sink1761 = phi ptr [ @.str.5, %3236 ], [ @.str.2, %3232 ]
  store i32 %3227, ptr %2636, align 4, !tbaa !5
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3239 = load i32, ptr @test_count, align 4, !tbaa !5
  %3240 = load i32, ptr %2582, align 4, !tbaa !5
  %3241 = call ptr @s2n_strerror(i32 noundef %3240, ptr noundef nonnull @.str.4) #10
  %3242 = load i32, ptr %2582, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror_debug(i32 noundef %3242, ptr noundef nonnull @.str.4) #10
  %3244 = load i32, ptr %2636, align 4, !tbaa !5
  %3245 = call ptr @strerror(i32 noundef %3244) #10
  %3246 = load i32, ptr %2636, align 4, !tbaa !5
  %3247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3238, ptr noundef nonnull %.str.5.sink1761, i32 noundef %3239, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %3241, ptr noundef %3243, ptr noundef %3245, i32 noundef %3246) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3248:                                             ; preds = %3221
  %3249 = load i32, ptr @test_count, align 4, !tbaa !5
  %3250 = add nsw i32 %3249, 1
  store i32 %3250, ptr @test_count, align 4, !tbaa !5
  %3251 = load i32, ptr %2582, align 4, !tbaa !5
  %3252 = icmp eq i32 %3251, 0
  br i1 %3252, label %3253, label %3275

3253:                                             ; preds = %3248
  %3254 = load i32, ptr %2636, align 4, !tbaa !5
  %3255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3256 = call i32 @s2n_print_stacktrace(ptr noundef %3255) #10
  %3257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3258 = trunc nuw i8 %3257 to i1
  br i1 %3258, label %3259, label %3263

3259:                                             ; preds = %3253
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3261 = call i32 @fileno(ptr noundef %3260) #10
  %3262 = call i32 @isatty(i32 noundef %3261) #10
  %.not533 = icmp eq i32 %3262, 0
  br i1 %.not533, label %3263, label %3264

3263:                                             ; preds = %3259, %3253
  br label %3264

3264:                                             ; preds = %3259, %3263
  %.str.5.sink1770 = phi ptr [ @.str.5, %3263 ], [ @.str.2, %3259 ]
  store i32 %3254, ptr %2636, align 4, !tbaa !5
  %3265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3266 = load i32, ptr @test_count, align 4, !tbaa !5
  %3267 = load i32, ptr %2582, align 4, !tbaa !5
  %3268 = call ptr @s2n_strerror(i32 noundef %3267, ptr noundef nonnull @.str.4) #10
  %3269 = load i32, ptr %2582, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror_debug(i32 noundef %3269, ptr noundef nonnull @.str.4) #10
  %3271 = load i32, ptr %2636, align 4, !tbaa !5
  %3272 = call ptr @strerror(i32 noundef %3271) #10
  %3273 = load i32, ptr %2636, align 4, !tbaa !5
  %3274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3265, ptr noundef nonnull %.str.5.sink1770, i32 noundef %3266, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %3268, ptr noundef %3270, ptr noundef %3272, i32 noundef %3273) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3275:                                             ; preds = %3248
  %3276 = add nsw i32 %3249, 2
  store i32 %3276, ptr @test_count, align 4, !tbaa !5
  %3277 = call ptr @s2n_strerror_debug(i32 noundef %3251, ptr noundef nonnull @.str.4) #10
  %3278 = icmp eq ptr %3277, null
  br i1 %3278, label %3279, label %3301

3279:                                             ; preds = %3275
  %3280 = load i32, ptr %2636, align 4, !tbaa !5
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = call i32 @s2n_print_stacktrace(ptr noundef %3281) #10
  %3283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3284 = trunc nuw i8 %3283 to i1
  br i1 %3284, label %3285, label %3289

3285:                                             ; preds = %3279
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = call i32 @fileno(ptr noundef %3286) #10
  %3288 = call i32 @isatty(i32 noundef %3287) #10
  %.not532 = icmp eq i32 %3288, 0
  br i1 %.not532, label %3289, label %3290

3289:                                             ; preds = %3285, %3279
  br label %3290

3290:                                             ; preds = %3285, %3289
  %.str.5.sink1779 = phi ptr [ @.str.5, %3289 ], [ @.str.2, %3285 ]
  store i32 %3280, ptr %2636, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = load i32, ptr %2582, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror(i32 noundef %3293, ptr noundef nonnull @.str.4) #10
  %3295 = load i32, ptr %2582, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror_debug(i32 noundef %3295, ptr noundef nonnull @.str.4) #10
  %3297 = load i32, ptr %2636, align 4, !tbaa !5
  %3298 = call ptr @strerror(i32 noundef %3297) #10
  %3299 = load i32, ptr %2636, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3291, ptr noundef nonnull %.str.5.sink1779, i32 noundef %3292, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %3294, ptr noundef %3296, ptr noundef %3298, i32 noundef %3299) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3301:                                             ; preds = %3275
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3302 = load i32, ptr @test_count, align 4, !tbaa !5
  %3303 = add nsw i32 %3302, 1
  store i32 %3303, ptr @test_count, align 4, !tbaa !5
  %3304 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef null, ptr noundef nonnull %30) #10
  %3305 = icmp eq i32 %3304, -1
  br i1 %3305, label %3328, label %3306

3306:                                             ; preds = %3301
  %3307 = load i32, ptr %2636, align 4, !tbaa !5
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = call i32 @s2n_print_stacktrace(ptr noundef %3308) #10
  %3310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3311 = trunc nuw i8 %3310 to i1
  br i1 %3311, label %3312, label %3316

3312:                                             ; preds = %3306
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = call i32 @fileno(ptr noundef %3313) #10
  %3315 = call i32 @isatty(i32 noundef %3314) #10
  %.not467 = icmp eq i32 %3315, 0
  br i1 %.not467, label %3316, label %3317

3316:                                             ; preds = %3312, %3306
  br label %3317

3317:                                             ; preds = %3312, %3316
  %.str.5.sink1788 = phi ptr [ @.str.5, %3316 ], [ @.str.2, %3312 ]
  store i32 %3307, ptr %2636, align 4, !tbaa !5
  %3318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3319 = load i32, ptr @test_count, align 4, !tbaa !5
  %3320 = load i32, ptr %2582, align 4, !tbaa !5
  %3321 = call ptr @s2n_strerror(i32 noundef %3320, ptr noundef nonnull @.str.4) #10
  %3322 = load i32, ptr %2582, align 4, !tbaa !5
  %3323 = call ptr @s2n_strerror_debug(i32 noundef %3322, ptr noundef nonnull @.str.4) #10
  %3324 = load i32, ptr %2636, align 4, !tbaa !5
  %3325 = call ptr @strerror(i32 noundef %3324) #10
  %3326 = load i32, ptr %2636, align 4, !tbaa !5
  %3327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3318, ptr noundef nonnull %.str.5.sink1788, i32 noundef %3319, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %3321, ptr noundef %3323, ptr noundef %3325, i32 noundef %3326) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3328:                                             ; preds = %3301
  %3329 = load i32, ptr @test_count, align 4, !tbaa !5
  %3330 = add nsw i32 %3329, 1
  store i32 %3330, ptr @test_count, align 4, !tbaa !5
  %3331 = load i32, ptr %2582, align 4, !tbaa !5
  %3332 = icmp eq i32 %3331, 0
  br i1 %3332, label %3333, label %3355

3333:                                             ; preds = %3328
  %3334 = load i32, ptr %2636, align 4, !tbaa !5
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = call i32 @s2n_print_stacktrace(ptr noundef %3335) #10
  %3337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3338 = trunc nuw i8 %3337 to i1
  br i1 %3338, label %3339, label %3343

3339:                                             ; preds = %3333
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = call i32 @fileno(ptr noundef %3340) #10
  %3342 = call i32 @isatty(i32 noundef %3341) #10
  %.not531 = icmp eq i32 %3342, 0
  br i1 %.not531, label %3343, label %3344

3343:                                             ; preds = %3339, %3333
  br label %3344

3344:                                             ; preds = %3339, %3343
  %.str.5.sink1797 = phi ptr [ @.str.5, %3343 ], [ @.str.2, %3339 ]
  store i32 %3334, ptr %2636, align 4, !tbaa !5
  %3345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3346 = load i32, ptr @test_count, align 4, !tbaa !5
  %3347 = load i32, ptr %2582, align 4, !tbaa !5
  %3348 = call ptr @s2n_strerror(i32 noundef %3347, ptr noundef nonnull @.str.4) #10
  %3349 = load i32, ptr %2582, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror_debug(i32 noundef %3349, ptr noundef nonnull @.str.4) #10
  %3351 = load i32, ptr %2636, align 4, !tbaa !5
  %3352 = call ptr @strerror(i32 noundef %3351) #10
  %3353 = load i32, ptr %2636, align 4, !tbaa !5
  %3354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3345, ptr noundef nonnull %.str.5.sink1797, i32 noundef %3346, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %3348, ptr noundef %3350, ptr noundef %3352, i32 noundef %3353) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3355:                                             ; preds = %3328
  %3356 = add nsw i32 %3329, 2
  store i32 %3356, ptr @test_count, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3331, ptr noundef nonnull @.str.4) #10
  %3358 = icmp eq ptr %3357, null
  br i1 %3358, label %3359, label %3381

3359:                                             ; preds = %3355
  %3360 = load i32, ptr %2636, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @s2n_print_stacktrace(ptr noundef %3361) #10
  %3363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3364 = trunc nuw i8 %3363 to i1
  br i1 %3364, label %3365, label %3369

3365:                                             ; preds = %3359
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @fileno(ptr noundef %3366) #10
  %3368 = call i32 @isatty(i32 noundef %3367) #10
  %.not530 = icmp eq i32 %3368, 0
  br i1 %.not530, label %3369, label %3370

3369:                                             ; preds = %3365, %3359
  br label %3370

3370:                                             ; preds = %3365, %3369
  %.str.5.sink1806 = phi ptr [ @.str.5, %3369 ], [ @.str.2, %3365 ]
  store i32 %3360, ptr %2636, align 4, !tbaa !5
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = load i32, ptr %2582, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror(i32 noundef %3373, ptr noundef nonnull @.str.4) #10
  %3375 = load i32, ptr %2582, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror_debug(i32 noundef %3375, ptr noundef nonnull @.str.4) #10
  %3377 = load i32, ptr %2636, align 4, !tbaa !5
  %3378 = call ptr @strerror(i32 noundef %3377) #10
  %3379 = load i32, ptr %2636, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3371, ptr noundef nonnull %.str.5.sink1806, i32 noundef %3372, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %3374, ptr noundef %3376, ptr noundef %3378, i32 noundef %3379) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3381:                                             ; preds = %3355
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #10
  %3382 = call ptr @s2n_config_new() #10
  store ptr %3382, ptr %31, align 8, !tbaa !9
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = add nsw i32 %3383, 1
  store i32 %3384, ptr @test_count, align 4, !tbaa !5
  %3385 = icmp eq ptr %3382, null
  br i1 %3385, label %3386, label %3408

3386:                                             ; preds = %3381
  %3387 = load i32, ptr %2636, align 4, !tbaa !5
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @s2n_print_stacktrace(ptr noundef %3388) #10
  %3390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3391 = trunc nuw i8 %3390 to i1
  br i1 %3391, label %3392, label %3396

3392:                                             ; preds = %3386
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = call i32 @fileno(ptr noundef %3393) #10
  %3395 = call i32 @isatty(i32 noundef %3394) #10
  %.not529 = icmp eq i32 %3395, 0
  br i1 %.not529, label %3396, label %3397

3396:                                             ; preds = %3392, %3386
  br label %3397

3397:                                             ; preds = %3392, %3396
  %.str.5.sink1815 = phi ptr [ @.str.5, %3396 ], [ @.str.2, %3392 ]
  store i32 %3387, ptr %2636, align 4, !tbaa !5
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = load i32, ptr @test_count, align 4, !tbaa !5
  %3400 = load i32, ptr %2582, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror(i32 noundef %3400, ptr noundef nonnull @.str.4) #10
  %3402 = load i32, ptr %2582, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror_debug(i32 noundef %3402, ptr noundef nonnull @.str.4) #10
  %3404 = load i32, ptr %2636, align 4, !tbaa !5
  %3405 = call ptr @strerror(i32 noundef %3404) #10
  %3406 = load i32, ptr %2636, align 4, !tbaa !5
  %3407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3398, ptr noundef nonnull %.str.5.sink1815, i32 noundef %3399, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %3401, ptr noundef %3403, ptr noundef %3405, i32 noundef %3406) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3408:                                             ; preds = %3381
  %3409 = add nsw i32 %3383, 2
  store i32 %3409, ptr @test_count, align 4, !tbaa !5
  %3410 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %3411 = icmp eq ptr %3410, null
  br i1 %3411, label %3412, label %3434

3412:                                             ; preds = %3408
  %3413 = load i32, ptr %2636, align 4, !tbaa !5
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = call i32 @s2n_print_stacktrace(ptr noundef %3414) #10
  %3416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3417 = trunc nuw i8 %3416 to i1
  br i1 %3417, label %3418, label %3422

3418:                                             ; preds = %3412
  %3419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3420 = call i32 @fileno(ptr noundef %3419) #10
  %3421 = call i32 @isatty(i32 noundef %3420) #10
  %.not528 = icmp eq i32 %3421, 0
  br i1 %.not528, label %3422, label %3423

3422:                                             ; preds = %3418, %3412
  br label %3423

3423:                                             ; preds = %3418, %3422
  %.str.5.sink1824 = phi ptr [ @.str.5, %3422 ], [ @.str.2, %3418 ]
  store i32 %3413, ptr %2636, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = load i32, ptr %2582, align 4, !tbaa !5
  %3427 = call ptr @s2n_strerror(i32 noundef %3426, ptr noundef nonnull @.str.4) #10
  %3428 = load i32, ptr %2582, align 4, !tbaa !5
  %3429 = call ptr @s2n_strerror_debug(i32 noundef %3428, ptr noundef nonnull @.str.4) #10
  %3430 = load i32, ptr %2636, align 4, !tbaa !5
  %3431 = call ptr @strerror(i32 noundef %3430) #10
  %3432 = load i32, ptr %2636, align 4, !tbaa !5
  %3433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3424, ptr noundef nonnull %.str.5.sink1824, i32 noundef %3425, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %3427, ptr noundef %3429, ptr noundef %3431, i32 noundef %3432) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3434:                                             ; preds = %3408
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = add nsw i32 %3435, 1
  store i32 %3436, ptr @test_count, align 4, !tbaa !5
  %3437 = load ptr, ptr %31, align 8, !tbaa !9
  %3438 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3410, ptr noundef %3437) #10
  %3439 = icmp eq i32 %3438, -1
  br i1 %3439, label %3440, label %3462

3440:                                             ; preds = %3434
  %3441 = load i32, ptr %2636, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = call i32 @s2n_print_stacktrace(ptr noundef %3442) #10
  %3444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3445 = trunc nuw i8 %3444 to i1
  br i1 %3445, label %3446, label %3450

3446:                                             ; preds = %3440
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = call i32 @fileno(ptr noundef %3447) #10
  %3449 = call i32 @isatty(i32 noundef %3448) #10
  %.not527 = icmp eq i32 %3449, 0
  br i1 %.not527, label %3450, label %3451

3450:                                             ; preds = %3446, %3440
  br label %3451

3451:                                             ; preds = %3446, %3450
  %.str.5.sink1833 = phi ptr [ @.str.5, %3450 ], [ @.str.2, %3446 ]
  store i32 %3441, ptr %2636, align 4, !tbaa !5
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = load i32, ptr %2582, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef nonnull @.str.4) #10
  %3456 = load i32, ptr %2582, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror_debug(i32 noundef %3456, ptr noundef nonnull @.str.4) #10
  %3458 = load i32, ptr %2636, align 4, !tbaa !5
  %3459 = call ptr @strerror(i32 noundef %3458) #10
  %3460 = load i32, ptr %2636, align 4, !tbaa !5
  %3461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3452, ptr noundef nonnull %.str.5.sink1833, i32 noundef %3453, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %3455, ptr noundef %3457, ptr noundef %3459, i32 noundef %3460) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3462:                                             ; preds = %3434
  %3463 = load i32, ptr @test_count, align 4, !tbaa !5
  %3464 = add nsw i32 %3463, 1
  store i32 %3464, ptr @test_count, align 4, !tbaa !5
  %3465 = getelementptr inbounds i8, ptr %3410, i64 8
  %3466 = load ptr, ptr %3465, align 8, !tbaa !47
  %3467 = getelementptr inbounds i8, ptr %3466, i64 96
  %3468 = load ptr, ptr %3467, align 8, !tbaa !48
  %3469 = icmp eq ptr %3468, null
  br i1 %3469, label %3470, label %3492

3470:                                             ; preds = %3462
  %3471 = load i32, ptr %2636, align 4, !tbaa !5
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = call i32 @s2n_print_stacktrace(ptr noundef %3472) #10
  %3474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3475 = trunc nuw i8 %3474 to i1
  br i1 %3475, label %3476, label %3480

3476:                                             ; preds = %3470
  %3477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3478 = call i32 @fileno(ptr noundef %3477) #10
  %3479 = call i32 @isatty(i32 noundef %3478) #10
  %.not526 = icmp eq i32 %3479, 0
  br i1 %.not526, label %3480, label %3481

3480:                                             ; preds = %3476, %3470
  br label %3481

3481:                                             ; preds = %3476, %3480
  %.str.5.sink1842 = phi ptr [ @.str.5, %3480 ], [ @.str.2, %3476 ]
  store i32 %3471, ptr %2636, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = load i32, ptr @test_count, align 4, !tbaa !5
  %3484 = load i32, ptr %2582, align 4, !tbaa !5
  %3485 = call ptr @s2n_strerror(i32 noundef %3484, ptr noundef nonnull @.str.4) #10
  %3486 = load i32, ptr %2582, align 4, !tbaa !5
  %3487 = call ptr @s2n_strerror_debug(i32 noundef %3486, ptr noundef nonnull @.str.4) #10
  %3488 = load i32, ptr %2636, align 4, !tbaa !5
  %3489 = call ptr @strerror(i32 noundef %3488) #10
  %3490 = load i32, ptr %2636, align 4, !tbaa !5
  %3491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3482, ptr noundef nonnull %.str.5.sink1842, i32 noundef %3483, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %3485, ptr noundef %3487, ptr noundef %3489, i32 noundef %3490) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3492:                                             ; preds = %3462
  %3493 = add nsw i32 %3463, 2
  store i32 %3493, ptr @test_count, align 4, !tbaa !5
  %3494 = getelementptr inbounds i8, ptr %3410, i64 16
  %3495 = load ptr, ptr %3494, align 8, !tbaa !15
  %3496 = icmp eq ptr %3495, null
  br i1 %3496, label %3519, label %3497

3497:                                             ; preds = %3492
  %3498 = load i32, ptr %2636, align 4, !tbaa !5
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = call i32 @s2n_print_stacktrace(ptr noundef %3499) #10
  %3501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3502 = trunc nuw i8 %3501 to i1
  br i1 %3502, label %3503, label %3507

3503:                                             ; preds = %3497
  %3504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3505 = call i32 @fileno(ptr noundef %3504) #10
  %3506 = call i32 @isatty(i32 noundef %3505) #10
  %.not468 = icmp eq i32 %3506, 0
  br i1 %.not468, label %3507, label %3508

3507:                                             ; preds = %3503, %3497
  br label %3508

3508:                                             ; preds = %3503, %3507
  %.str.5.sink1851 = phi ptr [ @.str.5, %3507 ], [ @.str.2, %3503 ]
  store i32 %3498, ptr %2636, align 4, !tbaa !5
  %3509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3510 = load i32, ptr @test_count, align 4, !tbaa !5
  %3511 = load i32, ptr %2582, align 4, !tbaa !5
  %3512 = call ptr @s2n_strerror(i32 noundef %3511, ptr noundef nonnull @.str.4) #10
  %3513 = load i32, ptr %2582, align 4, !tbaa !5
  %3514 = call ptr @s2n_strerror_debug(i32 noundef %3513, ptr noundef nonnull @.str.4) #10
  %3515 = load i32, ptr %2636, align 4, !tbaa !5
  %3516 = call ptr @strerror(i32 noundef %3515) #10
  %3517 = load i32, ptr %2636, align 4, !tbaa !5
  %3518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3509, ptr noundef nonnull %.str.5.sink1851, i32 noundef %3510, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %3512, ptr noundef %3514, ptr noundef %3516, i32 noundef %3517) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3519:                                             ; preds = %3492
  %3520 = load ptr, ptr %31, align 8, !tbaa !9
  %3521 = getelementptr inbounds i8, ptr %3520, i64 96
  store ptr null, ptr %3521, align 8, !tbaa !48
  %3522 = add nsw i32 %3463, 3
  store i32 %3522, ptr @test_count, align 4, !tbaa !5
  %3523 = call i32 @s2n_connection_get_cipher_preferences(ptr noundef nonnull %3410, ptr noundef nonnull %26) #10
  %3524 = icmp eq i32 %3523, -1
  br i1 %3524, label %3547, label %3525

3525:                                             ; preds = %3519
  %3526 = load i32, ptr %2636, align 4, !tbaa !5
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = call i32 @s2n_print_stacktrace(ptr noundef %3527) #10
  %3529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3530 = trunc nuw i8 %3529 to i1
  br i1 %3530, label %3531, label %3535

3531:                                             ; preds = %3525
  %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
  %.not469 = icmp eq i32 %3534, 0
  br i1 %.not469, label %3535, label %3536

3535:                                             ; preds = %3531, %3525
  br label %3536

3536:                                             ; preds = %3531, %3535
  %.str.5.sink1860 = phi ptr [ @.str.5, %3535 ], [ @.str.2, %3531 ]
  store i32 %3526, ptr %2636, align 4, !tbaa !5
  %3537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3538 = load i32, ptr @test_count, align 4, !tbaa !5
  %3539 = load i32, ptr %2582, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror(i32 noundef %3539, ptr noundef nonnull @.str.4) #10
  %3541 = load i32, ptr %2582, align 4, !tbaa !5
  %3542 = call ptr @s2n_strerror_debug(i32 noundef %3541, ptr noundef nonnull @.str.4) #10
  %3543 = load i32, ptr %2636, align 4, !tbaa !5
  %3544 = call ptr @strerror(i32 noundef %3543) #10
  %3545 = load i32, ptr %2636, align 4, !tbaa !5
  %3546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3537, ptr noundef nonnull %.str.5.sink1860, i32 noundef %3538, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %3540, ptr noundef %3542, ptr noundef %3544, i32 noundef %3545) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3547:                                             ; preds = %3519
  %3548 = load i32, ptr @test_count, align 4, !tbaa !5
  %3549 = add nsw i32 %3548, 1
  store i32 %3549, ptr @test_count, align 4, !tbaa !5
  %3550 = load i32, ptr %2582, align 4, !tbaa !5
  %3551 = icmp eq i32 %3550, 469762066
  br i1 %3551, label %3574, label %3552

3552:                                             ; preds = %3547
  %3553 = load i32, ptr %2636, align 4, !tbaa !5
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = call i32 @s2n_print_stacktrace(ptr noundef %3554) #10
  %3556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3557 = trunc nuw i8 %3556 to i1
  br i1 %3557, label %3558, label %3562

3558:                                             ; preds = %3552
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = call i32 @fileno(ptr noundef %3559) #10
  %3561 = call i32 @isatty(i32 noundef %3560) #10
  %.not470 = icmp eq i32 %3561, 0
  br i1 %.not470, label %3562, label %3563

3562:                                             ; preds = %3558, %3552
  br label %3563

3563:                                             ; preds = %3558, %3562
  %.str.5.sink1869 = phi ptr [ @.str.5, %3562 ], [ @.str.2, %3558 ]
  store i32 %3553, ptr %2636, align 4, !tbaa !5
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = load i32, ptr @test_count, align 4, !tbaa !5
  %3566 = load i32, ptr %2582, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror(i32 noundef %3566, ptr noundef nonnull @.str.4) #10
  %3568 = load i32, ptr %2582, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror_debug(i32 noundef %3568, ptr noundef nonnull @.str.4) #10
  %3570 = load i32, ptr %2636, align 4, !tbaa !5
  %3571 = call ptr @strerror(i32 noundef %3570) #10
  %3572 = load i32, ptr %2636, align 4, !tbaa !5
  %3573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3564, ptr noundef nonnull %.str.5.sink1869, i32 noundef %3565, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %3567, ptr noundef %3569, ptr noundef %3571, i32 noundef %3572) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3574:                                             ; preds = %3547
  %3575 = add nsw i32 %3548, 2
  store i32 %3575, ptr @test_count, align 4, !tbaa !5
  %3576 = call ptr @s2n_strerror_debug(i32 noundef 469762066, ptr noundef nonnull @.str.4) #10
  %3577 = icmp eq ptr %3576, null
  br i1 %3577, label %3578, label %3600

3578:                                             ; preds = %3574
  %3579 = load i32, ptr %2636, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @s2n_print_stacktrace(ptr noundef %3580) #10
  %3582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3583 = trunc nuw i8 %3582 to i1
  br i1 %3583, label %3584, label %3588

3584:                                             ; preds = %3578
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = call i32 @fileno(ptr noundef %3585) #10
  %3587 = call i32 @isatty(i32 noundef %3586) #10
  %.not525 = icmp eq i32 %3587, 0
  br i1 %.not525, label %3588, label %3589

3588:                                             ; preds = %3584, %3578
  br label %3589

3589:                                             ; preds = %3584, %3588
  %.str.5.sink1878 = phi ptr [ @.str.5, %3588 ], [ @.str.2, %3584 ]
  store i32 %3579, ptr %2636, align 4, !tbaa !5
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = load i32, ptr @test_count, align 4, !tbaa !5
  %3592 = load i32, ptr %2582, align 4, !tbaa !5
  %3593 = call ptr @s2n_strerror(i32 noundef %3592, ptr noundef nonnull @.str.4) #10
  %3594 = load i32, ptr %2582, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror_debug(i32 noundef %3594, ptr noundef nonnull @.str.4) #10
  %3596 = load i32, ptr %2636, align 4, !tbaa !5
  %3597 = call ptr @strerror(i32 noundef %3596) #10
  %3598 = load i32, ptr %2636, align 4, !tbaa !5
  %3599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3590, ptr noundef nonnull %.str.5.sink1878, i32 noundef %3591, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %3593, ptr noundef %3595, ptr noundef %3597, i32 noundef %3598) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3600:                                             ; preds = %3574
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = add nsw i32 %3601, 1
  store i32 %3602, ptr @test_count, align 4, !tbaa !5
  %3603 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %3410, ptr noundef nonnull %27) #10
  %3604 = icmp eq i32 %3603, -1
  br i1 %3604, label %3627, label %3605

3605:                                             ; preds = %3600
  %3606 = load i32, ptr %2636, align 4, !tbaa !5
  %3607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3608 = call i32 @s2n_print_stacktrace(ptr noundef %3607) #10
  %3609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3610 = trunc nuw i8 %3609 to i1
  br i1 %3610, label %3611, label %3615

3611:                                             ; preds = %3605
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @fileno(ptr noundef %3612) #10
  %3614 = call i32 @isatty(i32 noundef %3613) #10
  %.not471 = icmp eq i32 %3614, 0
  br i1 %.not471, label %3615, label %3616

3615:                                             ; preds = %3611, %3605
  br label %3616

3616:                                             ; preds = %3611, %3615
  %.str.5.sink1887 = phi ptr [ @.str.5, %3615 ], [ @.str.2, %3611 ]
  store i32 %3606, ptr %2636, align 4, !tbaa !5
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = load i32, ptr @test_count, align 4, !tbaa !5
  %3619 = load i32, ptr %2582, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror(i32 noundef %3619, ptr noundef nonnull @.str.4) #10
  %3621 = load i32, ptr %2582, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror_debug(i32 noundef %3621, ptr noundef nonnull @.str.4) #10
  %3623 = load i32, ptr %2636, align 4, !tbaa !5
  %3624 = call ptr @strerror(i32 noundef %3623) #10
  %3625 = load i32, ptr %2636, align 4, !tbaa !5
  %3626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3617, ptr noundef nonnull %.str.5.sink1887, i32 noundef %3618, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %3620, ptr noundef %3622, ptr noundef %3624, i32 noundef %3625) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3627:                                             ; preds = %3600
  %3628 = load i32, ptr @test_count, align 4, !tbaa !5
  %3629 = add nsw i32 %3628, 1
  store i32 %3629, ptr @test_count, align 4, !tbaa !5
  %3630 = load i32, ptr %2582, align 4, !tbaa !5
  %3631 = icmp eq i32 %3630, 469762101
  br i1 %3631, label %3654, label %3632

3632:                                             ; preds = %3627
  %3633 = load i32, ptr %2636, align 4, !tbaa !5
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = call i32 @s2n_print_stacktrace(ptr noundef %3634) #10
  %3636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3637 = trunc nuw i8 %3636 to i1
  br i1 %3637, label %3638, label %3642

3638:                                             ; preds = %3632
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = call i32 @fileno(ptr noundef %3639) #10
  %3641 = call i32 @isatty(i32 noundef %3640) #10
  %.not472 = icmp eq i32 %3641, 0
  br i1 %.not472, label %3642, label %3643

3642:                                             ; preds = %3638, %3632
  br label %3643

3643:                                             ; preds = %3638, %3642
  %.str.5.sink1896 = phi ptr [ @.str.5, %3642 ], [ @.str.2, %3638 ]
  store i32 %3633, ptr %2636, align 4, !tbaa !5
  %3644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3645 = load i32, ptr @test_count, align 4, !tbaa !5
  %3646 = load i32, ptr %2582, align 4, !tbaa !5
  %3647 = call ptr @s2n_strerror(i32 noundef %3646, ptr noundef nonnull @.str.4) #10
  %3648 = load i32, ptr %2582, align 4, !tbaa !5
  %3649 = call ptr @s2n_strerror_debug(i32 noundef %3648, ptr noundef nonnull @.str.4) #10
  %3650 = load i32, ptr %2636, align 4, !tbaa !5
  %3651 = call ptr @strerror(i32 noundef %3650) #10
  %3652 = load i32, ptr %2636, align 4, !tbaa !5
  %3653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3644, ptr noundef nonnull %.str.5.sink1896, i32 noundef %3645, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %3647, ptr noundef %3649, ptr noundef %3651, i32 noundef %3652) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3654:                                             ; preds = %3627
  %3655 = add nsw i32 %3628, 2
  store i32 %3655, ptr @test_count, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror_debug(i32 noundef 469762101, ptr noundef nonnull @.str.4) #10
  %3657 = icmp eq ptr %3656, null
  br i1 %3657, label %3658, label %3680

3658:                                             ; preds = %3654
  %3659 = load i32, ptr %2636, align 4, !tbaa !5
  %3660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3661 = call i32 @s2n_print_stacktrace(ptr noundef %3660) #10
  %3662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3663 = trunc nuw i8 %3662 to i1
  br i1 %3663, label %3664, label %3668

3664:                                             ; preds = %3658
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3666 = call i32 @fileno(ptr noundef %3665) #10
  %3667 = call i32 @isatty(i32 noundef %3666) #10
  %.not524 = icmp eq i32 %3667, 0
  br i1 %.not524, label %3668, label %3669

3668:                                             ; preds = %3664, %3658
  br label %3669

3669:                                             ; preds = %3664, %3668
  %.str.5.sink1905 = phi ptr [ @.str.5, %3668 ], [ @.str.2, %3664 ]
  store i32 %3659, ptr %2636, align 4, !tbaa !5
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = load i32, ptr @test_count, align 4, !tbaa !5
  %3672 = load i32, ptr %2582, align 4, !tbaa !5
  %3673 = call ptr @s2n_strerror(i32 noundef %3672, ptr noundef nonnull @.str.4) #10
  %3674 = load i32, ptr %2582, align 4, !tbaa !5
  %3675 = call ptr @s2n_strerror_debug(i32 noundef %3674, ptr noundef nonnull @.str.4) #10
  %3676 = load i32, ptr %2636, align 4, !tbaa !5
  %3677 = call ptr @strerror(i32 noundef %3676) #10
  %3678 = load i32, ptr %2636, align 4, !tbaa !5
  %3679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3670, ptr noundef nonnull %.str.5.sink1905, i32 noundef %3671, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %3673, ptr noundef %3675, ptr noundef %3677, i32 noundef %3678) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3680:                                             ; preds = %3654
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3681 = load i32, ptr @test_count, align 4, !tbaa !5
  %3682 = add nsw i32 %3681, 1
  store i32 %3682, ptr @test_count, align 4, !tbaa !5
  %3683 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %3410, ptr noundef nonnull %28) #10
  %3684 = icmp eq i32 %3683, -1
  br i1 %3684, label %3707, label %3685

3685:                                             ; preds = %3680
  %3686 = load i32, ptr %2636, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = call i32 @s2n_print_stacktrace(ptr noundef %3687) #10
  %3689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3690 = trunc nuw i8 %3689 to i1
  br i1 %3690, label %3691, label %3695

3691:                                             ; preds = %3685
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @fileno(ptr noundef %3692) #10
  %3694 = call i32 @isatty(i32 noundef %3693) #10
  %.not473 = icmp eq i32 %3694, 0
  br i1 %.not473, label %3695, label %3696

3695:                                             ; preds = %3691, %3685
  br label %3696

3696:                                             ; preds = %3691, %3695
  %.str.5.sink1914 = phi ptr [ @.str.5, %3695 ], [ @.str.2, %3691 ]
  store i32 %3686, ptr %2636, align 4, !tbaa !5
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = load i32, ptr @test_count, align 4, !tbaa !5
  %3699 = load i32, ptr %2582, align 4, !tbaa !5
  %3700 = call ptr @s2n_strerror(i32 noundef %3699, ptr noundef nonnull @.str.4) #10
  %3701 = load i32, ptr %2582, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror_debug(i32 noundef %3701, ptr noundef nonnull @.str.4) #10
  %3703 = load i32, ptr %2636, align 4, !tbaa !5
  %3704 = call ptr @strerror(i32 noundef %3703) #10
  %3705 = load i32, ptr %2636, align 4, !tbaa !5
  %3706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3697, ptr noundef nonnull %.str.5.sink1914, i32 noundef %3698, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %3700, ptr noundef %3702, ptr noundef %3704, i32 noundef %3705) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3707:                                             ; preds = %3680
  %3708 = load i32, ptr @test_count, align 4, !tbaa !5
  %3709 = add nsw i32 %3708, 1
  store i32 %3709, ptr @test_count, align 4, !tbaa !5
  %3710 = load i32, ptr %2582, align 4, !tbaa !5
  %3711 = icmp eq i32 %3710, 469762102
  br i1 %3711, label %3734, label %3712

3712:                                             ; preds = %3707
  %3713 = load i32, ptr %2636, align 4, !tbaa !5
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @s2n_print_stacktrace(ptr noundef %3714) #10
  %3716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3717 = trunc nuw i8 %3716 to i1
  br i1 %3717, label %3718, label %3722

3718:                                             ; preds = %3712
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @fileno(ptr noundef %3719) #10
  %3721 = call i32 @isatty(i32 noundef %3720) #10
  %.not474 = icmp eq i32 %3721, 0
  br i1 %.not474, label %3722, label %3723

3722:                                             ; preds = %3718, %3712
  br label %3723

3723:                                             ; preds = %3718, %3722
  %.str.5.sink1923 = phi ptr [ @.str.5, %3722 ], [ @.str.2, %3718 ]
  store i32 %3713, ptr %2636, align 4, !tbaa !5
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = load i32, ptr @test_count, align 4, !tbaa !5
  %3726 = load i32, ptr %2582, align 4, !tbaa !5
  %3727 = call ptr @s2n_strerror(i32 noundef %3726, ptr noundef nonnull @.str.4) #10
  %3728 = load i32, ptr %2582, align 4, !tbaa !5
  %3729 = call ptr @s2n_strerror_debug(i32 noundef %3728, ptr noundef nonnull @.str.4) #10
  %3730 = load i32, ptr %2636, align 4, !tbaa !5
  %3731 = call ptr @strerror(i32 noundef %3730) #10
  %3732 = load i32, ptr %2636, align 4, !tbaa !5
  %3733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3724, ptr noundef nonnull %.str.5.sink1923, i32 noundef %3725, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %3727, ptr noundef %3729, ptr noundef %3731, i32 noundef %3732) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3734:                                             ; preds = %3707
  %3735 = add nsw i32 %3708, 2
  store i32 %3735, ptr @test_count, align 4, !tbaa !5
  %3736 = call ptr @s2n_strerror_debug(i32 noundef 469762102, ptr noundef nonnull @.str.4) #10
  %3737 = icmp eq ptr %3736, null
  br i1 %3737, label %3738, label %3760

3738:                                             ; preds = %3734
  %3739 = load i32, ptr %2636, align 4, !tbaa !5
  %3740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3741 = call i32 @s2n_print_stacktrace(ptr noundef %3740) #10
  %3742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3743 = trunc nuw i8 %3742 to i1
  br i1 %3743, label %3744, label %3748

3744:                                             ; preds = %3738
  %3745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3746 = call i32 @fileno(ptr noundef %3745) #10
  %3747 = call i32 @isatty(i32 noundef %3746) #10
  %.not523 = icmp eq i32 %3747, 0
  br i1 %.not523, label %3748, label %3749

3748:                                             ; preds = %3744, %3738
  br label %3749

3749:                                             ; preds = %3744, %3748
  %.str.5.sink1932 = phi ptr [ @.str.5, %3748 ], [ @.str.2, %3744 ]
  store i32 %3739, ptr %2636, align 4, !tbaa !5
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = load i32, ptr @test_count, align 4, !tbaa !5
  %3752 = load i32, ptr %2582, align 4, !tbaa !5
  %3753 = call ptr @s2n_strerror(i32 noundef %3752, ptr noundef nonnull @.str.4) #10
  %3754 = load i32, ptr %2582, align 4, !tbaa !5
  %3755 = call ptr @s2n_strerror_debug(i32 noundef %3754, ptr noundef nonnull @.str.4) #10
  %3756 = load i32, ptr %2636, align 4, !tbaa !5
  %3757 = call ptr @strerror(i32 noundef %3756) #10
  %3758 = load i32, ptr %2636, align 4, !tbaa !5
  %3759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3750, ptr noundef nonnull %.str.5.sink1932, i32 noundef %3751, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %3753, ptr noundef %3755, ptr noundef %3757, i32 noundef %3758) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3760:                                             ; preds = %3734
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3761 = load i32, ptr @test_count, align 4, !tbaa !5
  %3762 = add nsw i32 %3761, 1
  store i32 %3762, ptr @test_count, align 4, !tbaa !5
  %3763 = call i32 @s2n_connection_get_signature_preferences(ptr noundef nonnull %3410, ptr noundef nonnull %29) #10
  %3764 = icmp eq i32 %3763, -1
  br i1 %3764, label %3787, label %3765

3765:                                             ; preds = %3760
  %3766 = load i32, ptr %2636, align 4, !tbaa !5
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3768 = call i32 @s2n_print_stacktrace(ptr noundef %3767) #10
  %3769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3770 = trunc nuw i8 %3769 to i1
  br i1 %3770, label %3771, label %3775

3771:                                             ; preds = %3765
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @fileno(ptr noundef %3772) #10
  %3774 = call i32 @isatty(i32 noundef %3773) #10
  %.not475 = icmp eq i32 %3774, 0
  br i1 %.not475, label %3775, label %3776

3775:                                             ; preds = %3771, %3765
  br label %3776

3776:                                             ; preds = %3771, %3775
  %.str.5.sink1941 = phi ptr [ @.str.5, %3775 ], [ @.str.2, %3771 ]
  store i32 %3766, ptr %2636, align 4, !tbaa !5
  %3777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3778 = load i32, ptr @test_count, align 4, !tbaa !5
  %3779 = load i32, ptr %2582, align 4, !tbaa !5
  %3780 = call ptr @s2n_strerror(i32 noundef %3779, ptr noundef nonnull @.str.4) #10
  %3781 = load i32, ptr %2582, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror_debug(i32 noundef %3781, ptr noundef nonnull @.str.4) #10
  %3783 = load i32, ptr %2636, align 4, !tbaa !5
  %3784 = call ptr @strerror(i32 noundef %3783) #10
  %3785 = load i32, ptr %2636, align 4, !tbaa !5
  %3786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3777, ptr noundef nonnull %.str.5.sink1941, i32 noundef %3778, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %3780, ptr noundef %3782, ptr noundef %3784, i32 noundef %3785) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3787:                                             ; preds = %3760
  %3788 = load i32, ptr @test_count, align 4, !tbaa !5
  %3789 = add nsw i32 %3788, 1
  store i32 %3789, ptr @test_count, align 4, !tbaa !5
  %3790 = load i32, ptr %2582, align 4, !tbaa !5
  %3791 = icmp eq i32 %3790, 469762097
  br i1 %3791, label %3814, label %3792

3792:                                             ; preds = %3787
  %3793 = load i32, ptr %2636, align 4, !tbaa !5
  %3794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3795 = call i32 @s2n_print_stacktrace(ptr noundef %3794) #10
  %3796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3797 = trunc nuw i8 %3796 to i1
  br i1 %3797, label %3798, label %3802

3798:                                             ; preds = %3792
  %3799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3800 = call i32 @fileno(ptr noundef %3799) #10
  %3801 = call i32 @isatty(i32 noundef %3800) #10
  %.not476 = icmp eq i32 %3801, 0
  br i1 %.not476, label %3802, label %3803

3802:                                             ; preds = %3798, %3792
  br label %3803

3803:                                             ; preds = %3798, %3802
  %.str.5.sink1950 = phi ptr [ @.str.5, %3802 ], [ @.str.2, %3798 ]
  store i32 %3793, ptr %2636, align 4, !tbaa !5
  %3804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3805 = load i32, ptr @test_count, align 4, !tbaa !5
  %3806 = load i32, ptr %2582, align 4, !tbaa !5
  %3807 = call ptr @s2n_strerror(i32 noundef %3806, ptr noundef nonnull @.str.4) #10
  %3808 = load i32, ptr %2582, align 4, !tbaa !5
  %3809 = call ptr @s2n_strerror_debug(i32 noundef %3808, ptr noundef nonnull @.str.4) #10
  %3810 = load i32, ptr %2636, align 4, !tbaa !5
  %3811 = call ptr @strerror(i32 noundef %3810) #10
  %3812 = load i32, ptr %2636, align 4, !tbaa !5
  %3813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3804, ptr noundef nonnull %.str.5.sink1950, i32 noundef %3805, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %3807, ptr noundef %3809, ptr noundef %3811, i32 noundef %3812) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3814:                                             ; preds = %3787
  %3815 = add nsw i32 %3788, 2
  store i32 %3815, ptr @test_count, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror_debug(i32 noundef 469762097, ptr noundef nonnull @.str.4) #10
  %3817 = icmp eq ptr %3816, null
  br i1 %3817, label %3818, label %3840

3818:                                             ; preds = %3814
  %3819 = load i32, ptr %2636, align 4, !tbaa !5
  %3820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3821 = call i32 @s2n_print_stacktrace(ptr noundef %3820) #10
  %3822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3823 = trunc nuw i8 %3822 to i1
  br i1 %3823, label %3824, label %3828

3824:                                             ; preds = %3818
  %3825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3826 = call i32 @fileno(ptr noundef %3825) #10
  %3827 = call i32 @isatty(i32 noundef %3826) #10
  %.not522 = icmp eq i32 %3827, 0
  br i1 %.not522, label %3828, label %3829

3828:                                             ; preds = %3824, %3818
  br label %3829

3829:                                             ; preds = %3824, %3828
  %.str.5.sink1959 = phi ptr [ @.str.5, %3828 ], [ @.str.2, %3824 ]
  store i32 %3819, ptr %2636, align 4, !tbaa !5
  %3830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3831 = load i32, ptr @test_count, align 4, !tbaa !5
  %3832 = load i32, ptr %2582, align 4, !tbaa !5
  %3833 = call ptr @s2n_strerror(i32 noundef %3832, ptr noundef nonnull @.str.4) #10
  %3834 = load i32, ptr %2582, align 4, !tbaa !5
  %3835 = call ptr @s2n_strerror_debug(i32 noundef %3834, ptr noundef nonnull @.str.4) #10
  %3836 = load i32, ptr %2636, align 4, !tbaa !5
  %3837 = call ptr @strerror(i32 noundef %3836) #10
  %3838 = load i32, ptr %2636, align 4, !tbaa !5
  %3839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3830, ptr noundef nonnull %.str.5.sink1959, i32 noundef %3831, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %3833, ptr noundef %3835, ptr noundef %3837, i32 noundef %3838) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3840:                                             ; preds = %3814
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = add nsw i32 %3841, 1
  store i32 %3842, ptr @test_count, align 4, !tbaa !5
  %3843 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %3410, ptr noundef nonnull %30) #10
  %3844 = icmp eq i32 %3843, -1
  br i1 %3844, label %3867, label %3845

3845:                                             ; preds = %3840
  %3846 = load i32, ptr %2636, align 4, !tbaa !5
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = call i32 @s2n_print_stacktrace(ptr noundef %3847) #10
  %3849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3850 = trunc nuw i8 %3849 to i1
  br i1 %3850, label %3851, label %3855

3851:                                             ; preds = %3845
  %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
  %.not477 = icmp eq i32 %3854, 0
  br i1 %.not477, label %3855, label %3856

3855:                                             ; preds = %3851, %3845
  br label %3856

3856:                                             ; preds = %3851, %3855
  %.str.5.sink1968 = phi ptr [ @.str.5, %3855 ], [ @.str.2, %3851 ]
  store i32 %3846, ptr %2636, align 4, !tbaa !5
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = load i32, ptr @test_count, align 4, !tbaa !5
  %3859 = load i32, ptr %2582, align 4, !tbaa !5
  %3860 = call ptr @s2n_strerror(i32 noundef %3859, ptr noundef nonnull @.str.4) #10
  %3861 = load i32, ptr %2582, align 4, !tbaa !5
  %3862 = call ptr @s2n_strerror_debug(i32 noundef %3861, ptr noundef nonnull @.str.4) #10
  %3863 = load i32, ptr %2636, align 4, !tbaa !5
  %3864 = call ptr @strerror(i32 noundef %3863) #10
  %3865 = load i32, ptr %2636, align 4, !tbaa !5
  %3866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3857, ptr noundef nonnull %.str.5.sink1968, i32 noundef %3858, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %3860, ptr noundef %3862, ptr noundef %3864, i32 noundef %3865) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3867:                                             ; preds = %3840
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = add nsw i32 %3868, 1
  store i32 %3869, ptr @test_count, align 4, !tbaa !5
  %3870 = load i32, ptr %2582, align 4, !tbaa !5
  %3871 = icmp eq i32 %3870, 469762099
  br i1 %3871, label %3894, label %3872

3872:                                             ; preds = %3867
  %3873 = load i32, ptr %2636, align 4, !tbaa !5
  %3874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3875 = call i32 @s2n_print_stacktrace(ptr noundef %3874) #10
  %3876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3877 = trunc nuw i8 %3876 to i1
  br i1 %3877, label %3878, label %3882

3878:                                             ; preds = %3872
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = call i32 @fileno(ptr noundef %3879) #10
  %3881 = call i32 @isatty(i32 noundef %3880) #10
  %.not478 = icmp eq i32 %3881, 0
  br i1 %.not478, label %3882, label %3883

3882:                                             ; preds = %3878, %3872
  br label %3883

3883:                                             ; preds = %3878, %3882
  %.str.5.sink1977 = phi ptr [ @.str.5, %3882 ], [ @.str.2, %3878 ]
  store i32 %3873, ptr %2636, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = load i32, ptr %2582, align 4, !tbaa !5
  %3887 = call ptr @s2n_strerror(i32 noundef %3886, ptr noundef nonnull @.str.4) #10
  %3888 = load i32, ptr %2582, align 4, !tbaa !5
  %3889 = call ptr @s2n_strerror_debug(i32 noundef %3888, ptr noundef nonnull @.str.4) #10
  %3890 = load i32, ptr %2636, align 4, !tbaa !5
  %3891 = call ptr @strerror(i32 noundef %3890) #10
  %3892 = load i32, ptr %2636, align 4, !tbaa !5
  %3893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3884, ptr noundef nonnull %.str.5.sink1977, i32 noundef %3885, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %3887, ptr noundef %3889, ptr noundef %3891, i32 noundef %3892) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3894:                                             ; preds = %3867
  %3895 = add nsw i32 %3868, 2
  store i32 %3895, ptr @test_count, align 4, !tbaa !5
  %3896 = call ptr @s2n_strerror_debug(i32 noundef 469762099, ptr noundef nonnull @.str.4) #10
  %3897 = icmp eq ptr %3896, null
  br i1 %3897, label %3898, label %3920

3898:                                             ; preds = %3894
  %3899 = load i32, ptr %2636, align 4, !tbaa !5
  %3900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3901 = call i32 @s2n_print_stacktrace(ptr noundef %3900) #10
  %3902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3903 = trunc nuw i8 %3902 to i1
  br i1 %3903, label %3904, label %3908

3904:                                             ; preds = %3898
  %3905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3906 = call i32 @fileno(ptr noundef %3905) #10
  %3907 = call i32 @isatty(i32 noundef %3906) #10
  %.not521 = icmp eq i32 %3907, 0
  br i1 %.not521, label %3908, label %3909

3908:                                             ; preds = %3904, %3898
  br label %3909

3909:                                             ; preds = %3904, %3908
  %.str.5.sink1986 = phi ptr [ @.str.5, %3908 ], [ @.str.2, %3904 ]
  store i32 %3899, ptr %2636, align 4, !tbaa !5
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = load i32, ptr @test_count, align 4, !tbaa !5
  %3912 = load i32, ptr %2582, align 4, !tbaa !5
  %3913 = call ptr @s2n_strerror(i32 noundef %3912, ptr noundef nonnull @.str.4) #10
  %3914 = load i32, ptr %2582, align 4, !tbaa !5
  %3915 = call ptr @s2n_strerror_debug(i32 noundef %3914, ptr noundef nonnull @.str.4) #10
  %3916 = load i32, ptr %2636, align 4, !tbaa !5
  %3917 = call ptr @strerror(i32 noundef %3916) #10
  %3918 = load i32, ptr %2636, align 4, !tbaa !5
  %3919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3910, ptr noundef nonnull %.str.5.sink1986, i32 noundef %3911, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %3913, ptr noundef %3915, ptr noundef %3917, i32 noundef %3918) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3920:                                             ; preds = %3894
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %3921 = load i32, ptr @test_count, align 4, !tbaa !5
  %3922 = add nsw i32 %3921, 1
  store i32 %3922, ptr @test_count, align 4, !tbaa !5
  %3923 = call i32 @s2n_connection_free(ptr noundef nonnull %3410) #10
  %3924 = icmp eq i32 %3923, -1
  br i1 %3924, label %3925, label %3947

3925:                                             ; preds = %3920
  %3926 = load i32, ptr %2636, align 4, !tbaa !5
  %3927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3928 = call i32 @s2n_print_stacktrace(ptr noundef %3927) #10
  %3929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3930 = trunc nuw i8 %3929 to i1
  br i1 %3930, label %3931, label %3935

3931:                                             ; preds = %3925
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = call i32 @fileno(ptr noundef %3932) #10
  %3934 = call i32 @isatty(i32 noundef %3933) #10
  %.not520 = icmp eq i32 %3934, 0
  br i1 %.not520, label %3935, label %3936

3935:                                             ; preds = %3931, %3925
  br label %3936

3936:                                             ; preds = %3931, %3935
  %.str.5.sink1995 = phi ptr [ @.str.5, %3935 ], [ @.str.2, %3931 ]
  store i32 %3926, ptr %2636, align 4, !tbaa !5
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = load i32, ptr @test_count, align 4, !tbaa !5
  %3939 = load i32, ptr %2582, align 4, !tbaa !5
  %3940 = call ptr @s2n_strerror(i32 noundef %3939, ptr noundef nonnull @.str.4) #10
  %3941 = load i32, ptr %2582, align 4, !tbaa !5
  %3942 = call ptr @s2n_strerror_debug(i32 noundef %3941, ptr noundef nonnull @.str.4) #10
  %3943 = load i32, ptr %2636, align 4, !tbaa !5
  %3944 = call ptr @strerror(i32 noundef %3943) #10
  %3945 = load i32, ptr %2636, align 4, !tbaa !5
  %3946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3937, ptr noundef nonnull %.str.5.sink1995, i32 noundef %3938, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %3940, ptr noundef %3942, ptr noundef %3944, i32 noundef %3945) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3947:                                             ; preds = %3920
  %3948 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #10
  %3949 = load i32, ptr @test_count, align 4, !tbaa !5
  %3950 = add nsw i32 %3949, 1
  store i32 %3950, ptr @test_count, align 4, !tbaa !5
  %3951 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %3952 = icmp eq ptr %3951, null
  br i1 %3952, label %3953, label %3975

3953:                                             ; preds = %3947
  %3954 = load i32, ptr %2636, align 4, !tbaa !5
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = call i32 @s2n_print_stacktrace(ptr noundef %3955) #10
  %3957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3958 = trunc nuw i8 %3957 to i1
  br i1 %3958, label %3959, label %3963

3959:                                             ; preds = %3953
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = call i32 @fileno(ptr noundef %3960) #10
  %3962 = call i32 @isatty(i32 noundef %3961) #10
  %.not519 = icmp eq i32 %3962, 0
  br i1 %.not519, label %3963, label %3964

3963:                                             ; preds = %3959, %3953
  br label %3964

3964:                                             ; preds = %3959, %3963
  %.str.5.sink2004 = phi ptr [ @.str.5, %3963 ], [ @.str.2, %3959 ]
  store i32 %3954, ptr %2636, align 4, !tbaa !5
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = load i32, ptr %2582, align 4, !tbaa !5
  %3968 = call ptr @s2n_strerror(i32 noundef %3967, ptr noundef nonnull @.str.4) #10
  %3969 = load i32, ptr %2582, align 4, !tbaa !5
  %3970 = call ptr @s2n_strerror_debug(i32 noundef %3969, ptr noundef nonnull @.str.4) #10
  %3971 = load i32, ptr %2636, align 4, !tbaa !5
  %3972 = call ptr @strerror(i32 noundef %3971) #10
  %3973 = load i32, ptr %2636, align 4, !tbaa !5
  %3974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3965, ptr noundef nonnull %.str.5.sink2004, i32 noundef %3966, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %3968, ptr noundef %3970, ptr noundef %3972, i32 noundef %3973) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3975:                                             ; preds = %3947
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #10
  store ptr null, ptr %32, align 8, !tbaa !9
  %3976 = load i32, ptr @test_count, align 4, !tbaa !5
  %3977 = add nsw i32 %3976, 1
  store i32 %3977, ptr @test_count, align 4, !tbaa !5
  %3978 = call ptr @s2n_connection_get_curve(ptr noundef nonnull %3951) #10
  store ptr %3978, ptr %32, align 8, !tbaa !9
  %3979 = icmp eq ptr %3978, null
  br i1 %3979, label %3980, label %4002

3980:                                             ; preds = %3975
  %3981 = load i32, ptr %2636, align 4, !tbaa !5
  %3982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3983 = call i32 @s2n_print_stacktrace(ptr noundef %3982) #10
  %3984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3985 = trunc nuw i8 %3984 to i1
  br i1 %3985, label %3986, label %3990

3986:                                             ; preds = %3980
  %3987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3988 = call i32 @fileno(ptr noundef %3987) #10
  %3989 = call i32 @isatty(i32 noundef %3988) #10
  %.not518 = icmp eq i32 %3989, 0
  br i1 %.not518, label %3990, label %3991

3990:                                             ; preds = %3986, %3980
  br label %3991

3991:                                             ; preds = %3986, %3990
  %.str.5.sink2013 = phi ptr [ @.str.5, %3990 ], [ @.str.2, %3986 ]
  store i32 %3981, ptr %2636, align 4, !tbaa !5
  %3992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3993 = load i32, ptr @test_count, align 4, !tbaa !5
  %3994 = load i32, ptr %2582, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror(i32 noundef %3994, ptr noundef nonnull @.str.4) #10
  %3996 = load i32, ptr %2582, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror_debug(i32 noundef %3996, ptr noundef nonnull @.str.4) #10
  %3998 = load i32, ptr %2636, align 4, !tbaa !5
  %3999 = call ptr @strerror(i32 noundef %3998) #10
  %4000 = load i32, ptr %2636, align 4, !tbaa !5
  %4001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3992, ptr noundef nonnull %.str.5.sink2013, i32 noundef %3993, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %3995, ptr noundef %3997, ptr noundef %3999, i32 noundef %4000) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4002:                                             ; preds = %3975
  %char0 = load i8, ptr @__const.main.no_curve, align 1
  %.not479 = icmp eq i8 %char0, 0
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not479, label %4029, label %4003

4003:                                             ; preds = %4002
  %4004 = add nsw i32 %.pre, 1
  store i32 %4004, ptr @test_count, align 4, !tbaa !5
  %4005 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) @__const.main.no_curve) #14
  %bcmp = call i32 @bcmp(ptr nonnull %3978, ptr nonnull @__const.main.no_curve, i64 %4005)
  %4006 = icmp eq i32 %bcmp, 0
  br i1 %4006, label %4029, label %4007

4007:                                             ; preds = %4003
  %4008 = load i32, ptr %2636, align 4, !tbaa !5
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = call i32 @s2n_print_stacktrace(ptr noundef %4009) #10
  %4011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4012 = trunc nuw i8 %4011 to i1
  br i1 %4012, label %4013, label %4017

4013:                                             ; preds = %4007
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = call i32 @fileno(ptr noundef %4014) #10
  %4016 = call i32 @isatty(i32 noundef %4015) #10
  %.not480 = icmp eq i32 %4016, 0
  br i1 %.not480, label %4017, label %4018

4017:                                             ; preds = %4013, %4007
  br label %4018

4018:                                             ; preds = %4013, %4017
  %.str.5.sink2022 = phi ptr [ @.str.5, %4017 ], [ @.str.2, %4013 ]
  store i32 %4008, ptr %2636, align 4, !tbaa !5
  %4019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4020 = load i32, ptr @test_count, align 4, !tbaa !5
  %4021 = load i32, ptr %2582, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror(i32 noundef %4021, ptr noundef nonnull @.str.4) #10
  %4023 = load i32, ptr %2582, align 4, !tbaa !5
  %4024 = call ptr @s2n_strerror_debug(i32 noundef %4023, ptr noundef nonnull @.str.4) #10
  %4025 = load i32, ptr %2636, align 4, !tbaa !5
  %4026 = call ptr @strerror(i32 noundef %4025) #10
  %4027 = load i32, ptr %2636, align 4, !tbaa !5
  %4028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4019, ptr noundef nonnull %.str.5.sink2022, i32 noundef %4020, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %4022, ptr noundef %4024, ptr noundef %4026, i32 noundef %4027) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4029:                                             ; preds = %4002, %4003
  %4030 = phi i32 [ %.pre, %4002 ], [ %4004, %4003 ]
  %4031 = add nsw i32 %4030, 1
  store i32 %4031, ptr @test_count, align 4, !tbaa !5
  %4032 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef nonnull %3951, ptr noundef nonnull %32) #10
  %4033 = icmp eq i32 %4032, -1
  br i1 %4033, label %4056, label %4034

4034:                                             ; preds = %4029
  %4035 = load i32, ptr %2636, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = call i32 @s2n_print_stacktrace(ptr noundef %4036) #10
  %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) #10
  %4043 = call i32 @isatty(i32 noundef %4042) #10
  %.not481 = icmp eq i32 %4043, 0
  br i1 %.not481, label %4044, label %4045

4044:                                             ; preds = %4040, %4034
  br label %4045

4045:                                             ; preds = %4040, %4044
  %.str.5.sink2031 = phi ptr [ @.str.5, %4044 ], [ @.str.2, %4040 ]
  store i32 %4035, ptr %2636, 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 %2582, align 4, !tbaa !5
  %4049 = call ptr @s2n_strerror(i32 noundef %4048, ptr noundef nonnull @.str.4) #10
  %4050 = load i32, ptr %2582, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror_debug(i32 noundef %4050, ptr noundef nonnull @.str.4) #10
  %4052 = load i32, ptr %2636, align 4, !tbaa !5
  %4053 = call ptr @strerror(i32 noundef %4052) #10
  %4054 = load i32, ptr %2636, align 4, !tbaa !5
  %4055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4046, ptr noundef nonnull %.str.5.sink2031, i32 noundef %4047, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %4049, ptr noundef %4051, ptr noundef %4053, i32 noundef %4054) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4056:                                             ; preds = %4029
  %4057 = load i32, ptr @test_count, align 4, !tbaa !5
  %4058 = add nsw i32 %4057, 1
  store i32 %4058, ptr @test_count, align 4, !tbaa !5
  %4059 = load i32, ptr %2582, align 4, !tbaa !5
  %4060 = icmp eq i32 %4059, 469762112
  br i1 %4060, label %4083, label %4061

4061:                                             ; preds = %4056
  %4062 = load i32, ptr %2636, align 4, !tbaa !5
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = call i32 @s2n_print_stacktrace(ptr noundef %4063) #10
  %4065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4066 = trunc nuw i8 %4065 to i1
  br i1 %4066, label %4067, label %4071

4067:                                             ; preds = %4061
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = call i32 @fileno(ptr noundef %4068) #10
  %4070 = call i32 @isatty(i32 noundef %4069) #10
  %.not482 = icmp eq i32 %4070, 0
  br i1 %.not482, label %4071, label %4072

4071:                                             ; preds = %4067, %4061
  br label %4072

4072:                                             ; preds = %4067, %4071
  %.str.5.sink2040 = phi ptr [ @.str.5, %4071 ], [ @.str.2, %4067 ]
  store i32 %4062, ptr %2636, align 4, !tbaa !5
  %4073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4074 = load i32, ptr @test_count, align 4, !tbaa !5
  %4075 = load i32, ptr %2582, align 4, !tbaa !5
  %4076 = call ptr @s2n_strerror(i32 noundef %4075, ptr noundef nonnull @.str.4) #10
  %4077 = load i32, ptr %2582, align 4, !tbaa !5
  %4078 = call ptr @s2n_strerror_debug(i32 noundef %4077, ptr noundef nonnull @.str.4) #10
  %4079 = load i32, ptr %2636, align 4, !tbaa !5
  %4080 = call ptr @strerror(i32 noundef %4079) #10
  %4081 = load i32, ptr %2636, align 4, !tbaa !5
  %4082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4073, ptr noundef nonnull %.str.5.sink2040, i32 noundef %4074, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %4076, ptr noundef %4078, ptr noundef %4080, i32 noundef %4081) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4083:                                             ; preds = %4056
  %4084 = add nsw i32 %4057, 2
  store i32 %4084, ptr @test_count, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #10
  %4086 = icmp eq ptr %4085, null
  br i1 %4086, label %4087, label %4109

4087:                                             ; preds = %4083
  %4088 = load i32, ptr %2636, align 4, !tbaa !5
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = call i32 @s2n_print_stacktrace(ptr noundef %4089) #10
  %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) #10
  %4096 = call i32 @isatty(i32 noundef %4095) #10
  %.not517 = icmp eq i32 %4096, 0
  br i1 %.not517, label %4097, label %4098

4097:                                             ; preds = %4093, %4087
  br label %4098

4098:                                             ; preds = %4093, %4097
  %.str.5.sink2049 = phi ptr [ @.str.5, %4097 ], [ @.str.2, %4093 ]
  store i32 %4088, ptr %2636, 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 %2582, align 4, !tbaa !5
  %4102 = call ptr @s2n_strerror(i32 noundef %4101, ptr noundef nonnull @.str.4) #10
  %4103 = load i32, ptr %2582, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror_debug(i32 noundef %4103, ptr noundef nonnull @.str.4) #10
  %4105 = load i32, ptr %2636, align 4, !tbaa !5
  %4106 = call ptr @strerror(i32 noundef %4105) #10
  %4107 = load i32, ptr %2636, align 4, !tbaa !5
  %4108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4099, ptr noundef nonnull %.str.5.sink2049, i32 noundef %4100, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %4102, ptr noundef %4104, ptr noundef %4106, i32 noundef %4107) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4109:                                             ; preds = %4083
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %4110 = getelementptr inbounds i8, ptr %3951, i64 220
  store i8 34, ptr %4110, align 4, !tbaa !52
  %4111 = getelementptr inbounds i8, ptr %3951, i64 656
  store ptr @s2n_ecc_curve_secp256r1, ptr %4111, align 8, !tbaa !53
  %4112 = load i32, ptr @test_count, align 4, !tbaa !5
  %4113 = add nsw i32 %4112, 1
  store i32 %4113, ptr @test_count, align 4, !tbaa !5
  %4114 = call ptr @s2n_connection_get_curve(ptr noundef nonnull %3951) #10
  store ptr %4114, ptr %32, align 8, !tbaa !9
  %4115 = icmp eq ptr %4114, null
  br i1 %4115, label %4116, label %4138

4116:                                             ; preds = %4109
  %4117 = load i32, ptr %2636, align 4, !tbaa !5
  %4118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4119 = call i32 @s2n_print_stacktrace(ptr noundef %4118) #10
  %4120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4121 = trunc nuw i8 %4120 to i1
  br i1 %4121, label %4122, label %4126

4122:                                             ; preds = %4116
  %4123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4124 = call i32 @fileno(ptr noundef %4123) #10
  %4125 = call i32 @isatty(i32 noundef %4124) #10
  %.not516 = icmp eq i32 %4125, 0
  br i1 %.not516, label %4126, label %4127

4126:                                             ; preds = %4122, %4116
  br label %4127

4127:                                             ; preds = %4122, %4126
  %.str.5.sink2058 = phi ptr [ @.str.5, %4126 ], [ @.str.2, %4122 ]
  store i32 %4117, ptr %2636, align 4, !tbaa !5
  %4128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4129 = load i32, ptr @test_count, align 4, !tbaa !5
  %4130 = load i32, ptr %2582, align 4, !tbaa !5
  %4131 = call ptr @s2n_strerror(i32 noundef %4130, ptr noundef nonnull @.str.4) #10
  %4132 = load i32, ptr %2582, align 4, !tbaa !5
  %4133 = call ptr @s2n_strerror_debug(i32 noundef %4132, ptr noundef nonnull @.str.4) #10
  %4134 = load i32, ptr %2636, align 4, !tbaa !5
  %4135 = call ptr @strerror(i32 noundef %4134) #10
  %4136 = load i32, ptr %2636, align 4, !tbaa !5
  %4137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4128, ptr noundef nonnull %.str.5.sink2058, i32 noundef %4129, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %4131, ptr noundef %4133, ptr noundef %4135, i32 noundef %4136) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4138:                                             ; preds = %4109
  %4139 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_ecc_curve_secp256r1, i64 8), align 8, !tbaa !54
  %char0483 = load i8, ptr %4139, align 1
  %.not484 = icmp eq i8 %char0483, 0
  br i1 %.not484, label %4167, label %4140

4140:                                             ; preds = %4138
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = add nsw i32 %4141, 1
  store i32 %4142, ptr @test_count, align 4, !tbaa !5
  %4143 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4139) #14
  %bcmp485 = call i32 @bcmp(ptr nonnull %4114, ptr nonnull %4139, i64 %4143)
  %4144 = icmp eq i32 %bcmp485, 0
  br i1 %4144, label %4167, label %4145

4145:                                             ; preds = %4140
  %4146 = load i32, ptr %2636, align 4, !tbaa !5
  %4147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4148 = call i32 @s2n_print_stacktrace(ptr noundef %4147) #10
  %4149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4150 = trunc nuw i8 %4149 to i1
  br i1 %4150, label %4151, label %4155

4151:                                             ; preds = %4145
  %4152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4153 = call i32 @fileno(ptr noundef %4152) #10
  %4154 = call i32 @isatty(i32 noundef %4153) #10
  %.not486 = icmp eq i32 %4154, 0
  br i1 %.not486, label %4155, label %4156

4155:                                             ; preds = %4151, %4145
  br label %4156

4156:                                             ; preds = %4151, %4155
  %.str.5.sink2067 = phi ptr [ @.str.5, %4155 ], [ @.str.2, %4151 ]
  store i32 %4146, ptr %2636, align 4, !tbaa !5
  %4157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4158 = load i32, ptr @test_count, align 4, !tbaa !5
  %4159 = load i32, ptr %2582, align 4, !tbaa !5
  %4160 = call ptr @s2n_strerror(i32 noundef %4159, ptr noundef nonnull @.str.4) #10
  %4161 = load i32, ptr %2582, align 4, !tbaa !5
  %4162 = call ptr @s2n_strerror_debug(i32 noundef %4161, ptr noundef nonnull @.str.4) #10
  %4163 = load i32, ptr %2636, align 4, !tbaa !5
  %4164 = call ptr @strerror(i32 noundef %4163) #10
  %4165 = load i32, ptr %2636, align 4, !tbaa !5
  %4166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4157, ptr noundef nonnull %.str.5.sink2067, i32 noundef %4158, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %4160, ptr noundef %4162, ptr noundef %4164, i32 noundef %4165) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4167:                                             ; preds = %4140, %4138
  store ptr null, ptr %32, align 8, !tbaa !9
  %4168 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef nonnull %3951, ptr noundef nonnull %32) #10
  %4169 = load i32, ptr @test_count, align 4, !tbaa !5
  %4170 = add nsw i32 %4169, 1
  store i32 %4170, ptr @test_count, align 4, !tbaa !5
  %4171 = load ptr, ptr %32, align 8, !tbaa !9
  %4172 = icmp eq ptr %4171, null
  br i1 %4172, label %4173, label %4195

4173:                                             ; preds = %4167
  %4174 = load i32, ptr %2636, align 4, !tbaa !5
  %4175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4176 = call i32 @s2n_print_stacktrace(ptr noundef %4175) #10
  %4177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4178 = trunc nuw i8 %4177 to i1
  br i1 %4178, label %4179, label %4183

4179:                                             ; preds = %4173
  %4180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4181 = call i32 @fileno(ptr noundef %4180) #10
  %4182 = call i32 @isatty(i32 noundef %4181) #10
  %.not515 = icmp eq i32 %4182, 0
  br i1 %.not515, label %4183, label %4184

4183:                                             ; preds = %4179, %4173
  br label %4184

4184:                                             ; preds = %4179, %4183
  %.str.5.sink2076 = phi ptr [ @.str.5, %4183 ], [ @.str.2, %4179 ]
  store i32 %4174, ptr %2636, align 4, !tbaa !5
  %4185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4186 = load i32, ptr @test_count, align 4, !tbaa !5
  %4187 = load i32, ptr %2582, align 4, !tbaa !5
  %4188 = call ptr @s2n_strerror(i32 noundef %4187, ptr noundef nonnull @.str.4) #10
  %4189 = load i32, ptr %2582, align 4, !tbaa !5
  %4190 = call ptr @s2n_strerror_debug(i32 noundef %4189, ptr noundef nonnull @.str.4) #10
  %4191 = load i32, ptr %2636, align 4, !tbaa !5
  %4192 = call ptr @strerror(i32 noundef %4191) #10
  %4193 = load i32, ptr %2636, align 4, !tbaa !5
  %4194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4185, ptr noundef nonnull %.str.5.sink2076, i32 noundef %4186, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %4188, ptr noundef %4190, ptr noundef %4192, i32 noundef %4193) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4195:                                             ; preds = %4167
  %char0487 = load i8, ptr %4139, align 1
  %.not488 = icmp eq i8 %char0487, 0
  br i1 %.not488, label %4222, label %4196

4196:                                             ; preds = %4195
  %4197 = add nsw i32 %4169, 2
  store i32 %4197, ptr @test_count, align 4, !tbaa !5
  %4198 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4139) #14
  %bcmp489 = call i32 @bcmp(ptr nonnull %4171, ptr nonnull %4139, i64 %4198)
  %4199 = icmp eq i32 %bcmp489, 0
  br i1 %4199, label %4222, label %4200

4200:                                             ; preds = %4196
  %4201 = load i32, ptr %2636, align 4, !tbaa !5
  %4202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4203 = call i32 @s2n_print_stacktrace(ptr noundef %4202) #10
  %4204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4205 = trunc nuw i8 %4204 to i1
  br i1 %4205, label %4206, label %4210

4206:                                             ; preds = %4200
  %4207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4208 = call i32 @fileno(ptr noundef %4207) #10
  %4209 = call i32 @isatty(i32 noundef %4208) #10
  %.not490 = icmp eq i32 %4209, 0
  br i1 %.not490, label %4210, label %4211

4210:                                             ; preds = %4206, %4200
  br label %4211

4211:                                             ; preds = %4206, %4210
  %.str.5.sink2085 = phi ptr [ @.str.5, %4210 ], [ @.str.2, %4206 ]
  store i32 %4201, ptr %2636, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = load i32, ptr @test_count, align 4, !tbaa !5
  %4214 = load i32, ptr %2582, align 4, !tbaa !5
  %4215 = call ptr @s2n_strerror(i32 noundef %4214, ptr noundef nonnull @.str.4) #10
  %4216 = load i32, ptr %2582, align 4, !tbaa !5
  %4217 = call ptr @s2n_strerror_debug(i32 noundef %4216, ptr noundef nonnull @.str.4) #10
  %4218 = load i32, ptr %2636, align 4, !tbaa !5
  %4219 = call ptr @strerror(i32 noundef %4218) #10
  %4220 = load i32, ptr %2636, align 4, !tbaa !5
  %4221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4212, ptr noundef nonnull %.str.5.sink2085, i32 noundef %4213, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %4215, ptr noundef %4217, ptr noundef %4219, i32 noundef %4220) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4222:                                             ; preds = %4196, %4195
  %4223 = phi i32 [ %4197, %4196 ], [ %4170, %4195 ]
  store i8 33, ptr %4110, align 4, !tbaa !52
  %4224 = getelementptr inbounds i8, ptr %3951, i64 232
  %4225 = load ptr, ptr %4224, align 8, !tbaa !56
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha256, ptr %4225, align 8, !tbaa !57
  store ptr @s2n_ecc_curve_secp256r1, ptr %4111, align 8, !tbaa !53
  %4226 = add nsw i32 %4223, 1
  store i32 %4226, ptr @test_count, align 4, !tbaa !5
  %4227 = call ptr @s2n_connection_get_curve(ptr noundef nonnull %3951) #10
  store ptr %4227, ptr %32, align 8, !tbaa !9
  %4228 = icmp eq ptr %4227, null
  br i1 %4228, label %4229, label %4251

4229:                                             ; preds = %4222
  %4230 = load i32, ptr %2636, align 4, !tbaa !5
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @s2n_print_stacktrace(ptr noundef %4231) #10
  %4233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4234 = trunc nuw i8 %4233 to i1
  br i1 %4234, label %4235, label %4239

4235:                                             ; preds = %4229
  %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
  %.not514 = icmp eq i32 %4238, 0
  br i1 %.not514, label %4239, label %4240

4239:                                             ; preds = %4235, %4229
  br label %4240

4240:                                             ; preds = %4235, %4239
  %.str.5.sink2094 = phi ptr [ @.str.5, %4239 ], [ @.str.2, %4235 ]
  store i32 %4230, ptr %2636, align 4, !tbaa !5
  %4241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4242 = load i32, ptr @test_count, align 4, !tbaa !5
  %4243 = load i32, ptr %2582, align 4, !tbaa !5
  %4244 = call ptr @s2n_strerror(i32 noundef %4243, ptr noundef nonnull @.str.4) #10
  %4245 = load i32, ptr %2582, align 4, !tbaa !5
  %4246 = call ptr @s2n_strerror_debug(i32 noundef %4245, ptr noundef nonnull @.str.4) #10
  %4247 = load i32, ptr %2636, align 4, !tbaa !5
  %4248 = call ptr @strerror(i32 noundef %4247) #10
  %4249 = load i32, ptr %2636, align 4, !tbaa !5
  %4250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4241, ptr noundef nonnull %.str.5.sink2094, i32 noundef %4242, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %4244, ptr noundef %4246, ptr noundef %4248, i32 noundef %4249) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4251:                                             ; preds = %4222
  %char0491 = load i8, ptr %4139, align 1
  %.not492 = icmp eq i8 %char0491, 0
  br i1 %.not492, label %4279, label %4252

4252:                                             ; preds = %4251
  %4253 = load i32, ptr @test_count, align 4, !tbaa !5
  %4254 = add nsw i32 %4253, 1
  store i32 %4254, ptr @test_count, align 4, !tbaa !5
  %4255 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4139) #14
  %bcmp493 = call i32 @bcmp(ptr nonnull %4227, ptr nonnull %4139, i64 %4255)
  %4256 = icmp eq i32 %bcmp493, 0
  br i1 %4256, label %4279, label %4257

4257:                                             ; preds = %4252
  %4258 = load i32, ptr %2636, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = call i32 @s2n_print_stacktrace(ptr noundef %4259) #10
  %4261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4262 = trunc nuw i8 %4261 to i1
  br i1 %4262, label %4263, label %4267

4263:                                             ; preds = %4257
  %4264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4265 = call i32 @fileno(ptr noundef %4264) #10
  %4266 = call i32 @isatty(i32 noundef %4265) #10
  %.not494 = icmp eq i32 %4266, 0
  br i1 %.not494, label %4267, label %4268

4267:                                             ; preds = %4263, %4257
  br label %4268

4268:                                             ; preds = %4263, %4267
  %.str.5.sink2103 = phi ptr [ @.str.5, %4267 ], [ @.str.2, %4263 ]
  store i32 %4258, ptr %2636, align 4, !tbaa !5
  %4269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4270 = load i32, ptr @test_count, align 4, !tbaa !5
  %4271 = load i32, ptr %2582, align 4, !tbaa !5
  %4272 = call ptr @s2n_strerror(i32 noundef %4271, ptr noundef nonnull @.str.4) #10
  %4273 = load i32, ptr %2582, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror_debug(i32 noundef %4273, ptr noundef nonnull @.str.4) #10
  %4275 = load i32, ptr %2636, align 4, !tbaa !5
  %4276 = call ptr @strerror(i32 noundef %4275) #10
  %4277 = load i32, ptr %2636, align 4, !tbaa !5
  %4278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4269, ptr noundef nonnull %.str.5.sink2103, i32 noundef %4270, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %4272, ptr noundef %4274, ptr noundef %4276, i32 noundef %4277) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4279:                                             ; preds = %4252, %4251
  store ptr null, ptr %32, align 8, !tbaa !9
  %4280 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef nonnull %3951, ptr noundef nonnull %32) #10
  %4281 = load i32, ptr @test_count, align 4, !tbaa !5
  %4282 = add nsw i32 %4281, 1
  store i32 %4282, ptr @test_count, align 4, !tbaa !5
  %4283 = load ptr, ptr %32, align 8, !tbaa !9
  %4284 = icmp eq ptr %4283, null
  br i1 %4284, label %4285, label %4307

4285:                                             ; preds = %4279
  %4286 = load i32, ptr %2636, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = call i32 @s2n_print_stacktrace(ptr noundef %4287) #10
  %4289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4290 = trunc nuw i8 %4289 to i1
  br i1 %4290, label %4291, label %4295

4291:                                             ; preds = %4285
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = call i32 @fileno(ptr noundef %4292) #10
  %4294 = call i32 @isatty(i32 noundef %4293) #10
  %.not513 = icmp eq i32 %4294, 0
  br i1 %.not513, label %4295, label %4296

4295:                                             ; preds = %4291, %4285
  br label %4296

4296:                                             ; preds = %4291, %4295
  %.str.5.sink2112 = phi ptr [ @.str.5, %4295 ], [ @.str.2, %4291 ]
  store i32 %4286, ptr %2636, align 4, !tbaa !5
  %4297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4298 = load i32, ptr @test_count, align 4, !tbaa !5
  %4299 = load i32, ptr %2582, align 4, !tbaa !5
  %4300 = call ptr @s2n_strerror(i32 noundef %4299, ptr noundef nonnull @.str.4) #10
  %4301 = load i32, ptr %2582, align 4, !tbaa !5
  %4302 = call ptr @s2n_strerror_debug(i32 noundef %4301, ptr noundef nonnull @.str.4) #10
  %4303 = load i32, ptr %2636, align 4, !tbaa !5
  %4304 = call ptr @strerror(i32 noundef %4303) #10
  %4305 = load i32, ptr %2636, align 4, !tbaa !5
  %4306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4297, ptr noundef nonnull %.str.5.sink2112, i32 noundef %4298, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %4300, ptr noundef %4302, ptr noundef %4304, i32 noundef %4305) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4307:                                             ; preds = %4279
  %char0495 = load i8, ptr %4139, align 1
  %.not496 = icmp eq i8 %char0495, 0
  br i1 %.not496, label %4334, label %4308

4308:                                             ; preds = %4307
  %4309 = add nsw i32 %4281, 2
  store i32 %4309, ptr @test_count, align 4, !tbaa !5
  %4310 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4139) #14
  %bcmp497 = call i32 @bcmp(ptr nonnull %4283, ptr nonnull %4139, i64 %4310)
  %4311 = icmp eq i32 %bcmp497, 0
  br i1 %4311, label %4334, label %4312

4312:                                             ; preds = %4308
  %4313 = load i32, ptr %2636, align 4, !tbaa !5
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = call i32 @s2n_print_stacktrace(ptr noundef %4314) #10
  %4316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4317 = trunc nuw i8 %4316 to i1
  br i1 %4317, label %4318, label %4322

4318:                                             ; preds = %4312
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = call i32 @fileno(ptr noundef %4319) #10
  %4321 = call i32 @isatty(i32 noundef %4320) #10
  %.not498 = icmp eq i32 %4321, 0
  br i1 %.not498, label %4322, label %4323

4322:                                             ; preds = %4318, %4312
  br label %4323

4323:                                             ; preds = %4318, %4322
  %.str.5.sink2121 = phi ptr [ @.str.5, %4322 ], [ @.str.2, %4318 ]
  store i32 %4313, ptr %2636, align 4, !tbaa !5
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = load i32, ptr %2582, align 4, !tbaa !5
  %4327 = call ptr @s2n_strerror(i32 noundef %4326, ptr noundef nonnull @.str.4) #10
  %4328 = load i32, ptr %2582, align 4, !tbaa !5
  %4329 = call ptr @s2n_strerror_debug(i32 noundef %4328, ptr noundef nonnull @.str.4) #10
  %4330 = load i32, ptr %2636, align 4, !tbaa !5
  %4331 = call ptr @strerror(i32 noundef %4330) #10
  %4332 = load i32, ptr %2636, align 4, !tbaa !5
  %4333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4324, ptr noundef nonnull %.str.5.sink2121, i32 noundef %4325, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %4327, ptr noundef %4329, ptr noundef %4331, i32 noundef %4332) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4334:                                             ; preds = %4308, %4307
  %4335 = phi i32 [ %4309, %4308 ], [ %4282, %4307 ]
  store i8 33, ptr %4110, align 4, !tbaa !52
  %4336 = load ptr, ptr %4224, align 8, !tbaa !56
  store ptr @s2n_rsa_with_aes_256_gcm_sha384, ptr %4336, align 8, !tbaa !57
  store ptr @s2n_ecc_curve_secp256r1, ptr %4111, align 8, !tbaa !53
  %4337 = add nsw i32 %4335, 1
  store i32 %4337, ptr @test_count, align 4, !tbaa !5
  %4338 = call ptr @s2n_connection_get_curve(ptr noundef nonnull %3951) #10
  store ptr %4338, ptr %32, align 8, !tbaa !9
  %4339 = icmp eq ptr %4338, null
  br i1 %4339, label %4340, label %4362

4340:                                             ; preds = %4334
  %4341 = load i32, ptr %2636, align 4, !tbaa !5
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @s2n_print_stacktrace(ptr noundef %4342) #10
  %4344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4345 = trunc nuw i8 %4344 to i1
  br i1 %4345, label %4346, label %4350

4346:                                             ; preds = %4340
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = call i32 @fileno(ptr noundef %4347) #10
  %4349 = call i32 @isatty(i32 noundef %4348) #10
  %.not512 = icmp eq i32 %4349, 0
  br i1 %.not512, label %4350, label %4351

4350:                                             ; preds = %4346, %4340
  br label %4351

4351:                                             ; preds = %4346, %4350
  %.str.5.sink2130 = phi ptr [ @.str.5, %4350 ], [ @.str.2, %4346 ]
  store i32 %4341, ptr %2636, align 4, !tbaa !5
  %4352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = load i32, ptr %2582, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror(i32 noundef %4354, ptr noundef nonnull @.str.4) #10
  %4356 = load i32, ptr %2582, align 4, !tbaa !5
  %4357 = call ptr @s2n_strerror_debug(i32 noundef %4356, ptr noundef nonnull @.str.4) #10
  %4358 = load i32, ptr %2636, align 4, !tbaa !5
  %4359 = call ptr @strerror(i32 noundef %4358) #10
  %4360 = load i32, ptr %2636, align 4, !tbaa !5
  %4361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4352, ptr noundef nonnull %.str.5.sink2130, i32 noundef %4353, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %4355, ptr noundef %4357, ptr noundef %4359, i32 noundef %4360) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4362:                                             ; preds = %4334
  %.pre588 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not479, label %4389, label %4363

4363:                                             ; preds = %4362
  %4364 = add nsw i32 %.pre588, 1
  store i32 %4364, ptr @test_count, align 4, !tbaa !5
  %4365 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) @__const.main.no_curve) #14
  %bcmp501 = call i32 @bcmp(ptr nonnull %4338, ptr nonnull @__const.main.no_curve, i64 %4365)
  %4366 = icmp eq i32 %bcmp501, 0
  br i1 %4366, label %4389, label %4367

4367:                                             ; preds = %4363
  %4368 = load i32, ptr %2636, align 4, !tbaa !5
  %4369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4370 = call i32 @s2n_print_stacktrace(ptr noundef %4369) #10
  %4371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4372 = trunc nuw i8 %4371 to i1
  br i1 %4372, label %4373, label %4377

4373:                                             ; preds = %4367
  %4374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4375 = call i32 @fileno(ptr noundef %4374) #10
  %4376 = call i32 @isatty(i32 noundef %4375) #10
  %.not502 = icmp eq i32 %4376, 0
  br i1 %.not502, label %4377, label %4378

4377:                                             ; preds = %4373, %4367
  br label %4378

4378:                                             ; preds = %4373, %4377
  %.str.5.sink2139 = phi ptr [ @.str.5, %4377 ], [ @.str.2, %4373 ]
  store i32 %4368, ptr %2636, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4380 = load i32, ptr @test_count, align 4, !tbaa !5
  %4381 = load i32, ptr %2582, align 4, !tbaa !5
  %4382 = call ptr @s2n_strerror(i32 noundef %4381, ptr noundef nonnull @.str.4) #10
  %4383 = load i32, ptr %2582, align 4, !tbaa !5
  %4384 = call ptr @s2n_strerror_debug(i32 noundef %4383, ptr noundef nonnull @.str.4) #10
  %4385 = load i32, ptr %2636, align 4, !tbaa !5
  %4386 = call ptr @strerror(i32 noundef %4385) #10
  %4387 = load i32, ptr %2636, align 4, !tbaa !5
  %4388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4379, ptr noundef nonnull %.str.5.sink2139, i32 noundef %4380, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %4382, ptr noundef %4384, ptr noundef %4386, i32 noundef %4387) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4389:                                             ; preds = %4362, %4363
  %4390 = phi i32 [ %.pre588, %4362 ], [ %4364, %4363 ]
  %4391 = add nsw i32 %4390, 1
  store i32 %4391, ptr @test_count, align 4, !tbaa !5
  %4392 = call i32 @s2n_connection_get_key_exchange_group(ptr noundef nonnull %3951, ptr noundef nonnull %32) #10
  %4393 = icmp eq i32 %4392, -1
  br i1 %4393, label %4416, label %4394

4394:                                             ; preds = %4389
  %4395 = load i32, ptr %2636, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = call i32 @s2n_print_stacktrace(ptr noundef %4396) #10
  %4398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4399 = trunc nuw i8 %4398 to i1
  br i1 %4399, label %4400, label %4404

4400:                                             ; preds = %4394
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = call i32 @fileno(ptr noundef %4401) #10
  %4403 = call i32 @isatty(i32 noundef %4402) #10
  %.not503 = icmp eq i32 %4403, 0
  br i1 %.not503, label %4404, label %4405

4404:                                             ; preds = %4400, %4394
  br label %4405

4405:                                             ; preds = %4400, %4404
  %.str.5.sink2148 = phi ptr [ @.str.5, %4404 ], [ @.str.2, %4400 ]
  store i32 %4395, ptr %2636, align 4, !tbaa !5
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = load i32, ptr @test_count, align 4, !tbaa !5
  %4408 = load i32, ptr %2582, align 4, !tbaa !5
  %4409 = call ptr @s2n_strerror(i32 noundef %4408, ptr noundef nonnull @.str.4) #10
  %4410 = load i32, ptr %2582, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror_debug(i32 noundef %4410, ptr noundef nonnull @.str.4) #10
  %4412 = load i32, ptr %2636, align 4, !tbaa !5
  %4413 = call ptr @strerror(i32 noundef %4412) #10
  %4414 = load i32, ptr %2636, align 4, !tbaa !5
  %4415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4406, ptr noundef nonnull %.str.5.sink2148, i32 noundef %4407, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %4409, ptr noundef %4411, ptr noundef %4413, i32 noundef %4414) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4416:                                             ; preds = %4389
  %4417 = load i32, ptr @test_count, align 4, !tbaa !5
  %4418 = add nsw i32 %4417, 1
  store i32 %4418, ptr @test_count, align 4, !tbaa !5
  %4419 = load i32, ptr %2582, align 4, !tbaa !5
  %4420 = icmp eq i32 %4419, 469762112
  br i1 %4420, label %4443, label %4421

4421:                                             ; preds = %4416
  %4422 = load i32, ptr %2636, align 4, !tbaa !5
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = call i32 @s2n_print_stacktrace(ptr noundef %4423) #10
  %4425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4426 = trunc nuw i8 %4425 to i1
  br i1 %4426, label %4427, label %4431

4427:                                             ; preds = %4421
  %4428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4429 = call i32 @fileno(ptr noundef %4428) #10
  %4430 = call i32 @isatty(i32 noundef %4429) #10
  %.not504 = icmp eq i32 %4430, 0
  br i1 %.not504, label %4431, label %4432

4431:                                             ; preds = %4427, %4421
  br label %4432

4432:                                             ; preds = %4427, %4431
  %.str.5.sink2157 = phi ptr [ @.str.5, %4431 ], [ @.str.2, %4427 ]
  store i32 %4422, ptr %2636, align 4, !tbaa !5
  %4433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4434 = load i32, ptr @test_count, align 4, !tbaa !5
  %4435 = load i32, ptr %2582, align 4, !tbaa !5
  %4436 = call ptr @s2n_strerror(i32 noundef %4435, ptr noundef nonnull @.str.4) #10
  %4437 = load i32, ptr %2582, align 4, !tbaa !5
  %4438 = call ptr @s2n_strerror_debug(i32 noundef %4437, ptr noundef nonnull @.str.4) #10
  %4439 = load i32, ptr %2636, align 4, !tbaa !5
  %4440 = call ptr @strerror(i32 noundef %4439) #10
  %4441 = load i32, ptr %2636, align 4, !tbaa !5
  %4442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4433, ptr noundef nonnull %.str.5.sink2157, i32 noundef %4434, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %4436, ptr noundef %4438, ptr noundef %4440, i32 noundef %4441) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4443:                                             ; preds = %4416
  %4444 = add nsw i32 %4417, 2
  store i32 %4444, ptr @test_count, align 4, !tbaa !5
  %4445 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #10
  %4446 = icmp eq ptr %4445, null
  br i1 %4446, label %4447, label %4469

4447:                                             ; preds = %4443
  %4448 = load i32, ptr %2636, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = call i32 @s2n_print_stacktrace(ptr noundef %4449) #10
  %4451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4452 = trunc nuw i8 %4451 to i1
  br i1 %4452, label %4453, label %4457

4453:                                             ; preds = %4447
  %4454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4455 = call i32 @fileno(ptr noundef %4454) #10
  %4456 = call i32 @isatty(i32 noundef %4455) #10
  %.not511 = icmp eq i32 %4456, 0
  br i1 %.not511, label %4457, label %4458

4457:                                             ; preds = %4453, %4447
  br label %4458

4458:                                             ; preds = %4453, %4457
  %.str.5.sink2166 = phi ptr [ @.str.5, %4457 ], [ @.str.2, %4453 ]
  store i32 %4448, ptr %2636, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = load i32, ptr %2582, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror(i32 noundef %4461, ptr noundef nonnull @.str.4) #10
  %4463 = load i32, ptr %2582, align 4, !tbaa !5
  %4464 = call ptr @s2n_strerror_debug(i32 noundef %4463, ptr noundef nonnull @.str.4) #10
  %4465 = load i32, ptr %2636, align 4, !tbaa !5
  %4466 = call ptr @strerror(i32 noundef %4465) #10
  %4467 = load i32, ptr %2636, align 4, !tbaa !5
  %4468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4459, ptr noundef nonnull %.str.5.sink2166, i32 noundef %4460, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %4462, ptr noundef %4464, ptr noundef %4466, i32 noundef %4467) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4469:                                             ; preds = %4443
  store i32 0, ptr %2582, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %2636, align 4, !tbaa !5
  %4470 = load i32, ptr @test_count, align 4, !tbaa !5
  %4471 = add nsw i32 %4470, 1
  store i32 %4471, ptr @test_count, align 4, !tbaa !5
  %4472 = call i32 @s2n_connection_free(ptr noundef nonnull %3951) #10
  %4473 = icmp eq i32 %4472, -1
  br i1 %4473, label %4474, label %4496

4474:                                             ; preds = %4469
  %4475 = load i32, ptr %2636, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = call i32 @s2n_print_stacktrace(ptr noundef %4476) #10
  %4478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4479 = trunc nuw i8 %4478 to i1
  br i1 %4479, label %4480, label %4484

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

4484:                                             ; preds = %4480, %4474
  br label %4485

4485:                                             ; preds = %4480, %4484
  %.str.5.sink2175 = phi ptr [ @.str.5, %4484 ], [ @.str.2, %4480 ]
  store i32 %4475, ptr %2636, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = load i32, ptr %2582, align 4, !tbaa !5
  %4489 = call ptr @s2n_strerror(i32 noundef %4488, ptr noundef nonnull @.str.4) #10
  %4490 = load i32, ptr %2582, align 4, !tbaa !5
  %4491 = call ptr @s2n_strerror_debug(i32 noundef %4490, ptr noundef nonnull @.str.4) #10
  %4492 = load i32, ptr %2636, align 4, !tbaa !5
  %4493 = call ptr @strerror(i32 noundef %4492) #10
  %4494 = load i32, ptr %2636, align 4, !tbaa !5
  %4495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4486, ptr noundef nonnull %.str.5.sink2175, i32 noundef %4487, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %4489, ptr noundef %4491, ptr noundef %4493, i32 noundef %4494) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4496:                                             ; preds = %4469
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #10
  %4497 = call i32 @s2n_cleanup() #10
  %4498 = icmp eq i32 %4497, -1
  br i1 %4498, label %4499, label %4521

4499:                                             ; preds = %4496
  %4500 = load i32, ptr %2636, align 4, !tbaa !5
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = call i32 @s2n_print_stacktrace(ptr noundef %4501) #10
  %4503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4504 = trunc nuw i8 %4503 to i1
  br i1 %4504, label %4505, label %4509

4505:                                             ; preds = %4499
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = call i32 @fileno(ptr noundef %4506) #10
  %4508 = call i32 @isatty(i32 noundef %4507) #10
  %.not509 = icmp eq i32 %4508, 0
  br i1 %.not509, label %4509, label %4510

4509:                                             ; preds = %4505, %4499
  br label %4510

4510:                                             ; preds = %4505, %4509
  %.str.5.sink2184 = phi ptr [ @.str.5, %4509 ], [ @.str.2, %4505 ]
  store i32 %4500, ptr %2636, align 4, !tbaa !5
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4512 = load i32, ptr @test_count, align 4, !tbaa !5
  %4513 = load i32, ptr %2582, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror(i32 noundef %4513, ptr noundef nonnull @.str.4) #10
  %4515 = load i32, ptr %2582, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror_debug(i32 noundef %4515, ptr noundef nonnull @.str.4) #10
  %4517 = load i32, ptr %2636, align 4, !tbaa !5
  %4518 = call ptr @strerror(i32 noundef %4517) #10
  %4519 = load i32, ptr %2636, align 4, !tbaa !5
  %4520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4511, ptr noundef nonnull %.str.5.sink2184, i32 noundef %4512, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %4514, ptr noundef %4516, ptr noundef %4518, i32 noundef %4519) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4521:                                             ; preds = %4496
  %4522 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %4523 = icmp eq i32 %4522, -1
  br i1 %4523, label %4524, label %4546

4524:                                             ; preds = %4521
  %4525 = load i32, ptr %2636, align 4, !tbaa !5
  %4526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4527 = call i32 @s2n_print_stacktrace(ptr noundef %4526) #10
  %4528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4529 = trunc nuw i8 %4528 to i1
  br i1 %4529, label %4530, label %4534

4530:                                             ; preds = %4524
  %4531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4532 = call i32 @fileno(ptr noundef %4531) #10
  %4533 = call i32 @isatty(i32 noundef %4532) #10
  %.not508 = icmp eq i32 %4533, 0
  br i1 %.not508, label %4534, label %4535

4534:                                             ; preds = %4530, %4524
  br label %4535

4535:                                             ; preds = %4530, %4534
  %.str.5.sink2193 = phi ptr [ @.str.5, %4534 ], [ @.str.2, %4530 ]
  store i32 %4525, ptr %2636, align 4, !tbaa !5
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = load i32, ptr @test_count, align 4, !tbaa !5
  %4538 = load i32, ptr %2582, align 4, !tbaa !5
  %4539 = call ptr @s2n_strerror(i32 noundef %4538, ptr noundef nonnull @.str.4) #10
  %4540 = load i32, ptr %2582, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror_debug(i32 noundef %4540, ptr noundef nonnull @.str.4) #10
  %4542 = load i32, ptr %2636, align 4, !tbaa !5
  %4543 = call ptr @strerror(i32 noundef %4542) #10
  %4544 = load i32, ptr %2636, align 4, !tbaa !5
  %4545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4536, ptr noundef nonnull %.str.5.sink2193, i32 noundef %4537, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %4539, ptr noundef %4541, ptr noundef %4543, i32 noundef %4544) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4546:                                             ; preds = %4521
  %4547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4548 = trunc nuw i8 %4547 to i1
  br i1 %4548, label %4549, label %4560

4549:                                             ; preds = %4546
  %4550 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4551 = call i32 @fileno(ptr noundef %4550) #10
  %4552 = call i32 @isatty(i32 noundef %4551) #10
  %.not505 = icmp eq i32 %4552, 0
  br i1 %.not505, label %4560, label %4553

4553:                                             ; preds = %4549
  %4554 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not507 = icmp eq i32 %4554, 0
  %4555 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not507, label %4558, label %4556

4556:                                             ; preds = %4553
  %4557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4555, ptr noundef nonnull @.str.92, i32 noundef %4554) #10
  br label %4567

4558:                                             ; preds = %4553
  %4559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4555, ptr noundef nonnull @.str.93) #10
  br label %4567

4560:                                             ; preds = %4549, %4546
  %4561 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not506 = icmp eq i32 %4561, 0
  %4562 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not506, label %4565, label %4563

4563:                                             ; preds = %4560
  %4564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4562, ptr noundef nonnull @.str.94, i32 noundef %4561) #10
  br label %4567

4565:                                             ; preds = %4560
  %4566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4562, ptr noundef nonnull @.str.95) #10
  br label %4567

4567:                                             ; preds = %4563, %4565, %4556, %4558
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  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_find_security_policy_from_version(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_in_fips_mode() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_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_get_kem_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_signature_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_get_curve(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #8

declare i32 @s2n_connection_get_key_exchange_group(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #9

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nofree nounwind willreturn memory(argmem: read) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 16}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 8}
!43 = !{!"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}
!44 = !{!43, !10, i64 16}
!45 = !{!43, !10, i64 24}
!46 = !{!43, !10, i64 40}
!47 = !{!16, !10, i64 8}
!48 = !{!49, !10, i64 96}
!49 = !{!"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, !50, i64 24, !25, 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, !51, i64 304, !31, 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, !25, i64 448}
!50 = !{!"certs_by_type", !7, i64 0}
!51 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!52 = !{!16, !7, i64 220}
!53 = !{!16, !10, i64 656}
!54 = !{!55, !10, i64 8}
!55 = !{!"s2n_ecc_named_curve", !31, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!56 = !{!16, !10, i64 232}
!57 = !{!58, !10, i64 0}
!58 = !{!"s2n_crypto_parameters", !10, i64 0, !59, i64 8, !59, i64 16, !60, i64 24, !60, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!59 = !{!"s2n_session_key", !10, i64 0}
!60 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !61, i64 16, !61, i64 72, !61, i64 128, !61, i64 184, !7, i64 240, !7, i64 368}
!61 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass