; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls13_hybrid_shared_secret_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_debug_info = type { ptr, ptr }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.hybrid_test_vector = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_tls13_keys = type { i32, i32, i8, %struct.s2n_blob, %struct.s2n_blob, [48 x i8], [48 x i8], %struct.s2n_hmac_state }
%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 }
%union.anon = 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 }
%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.0, i32 }
%union.anon.0 = 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_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_handshake_hashes = type { %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [48 x i8], %struct.s2n_hash_state }

@s2n_use_color_in_output = external dso_local global i8, align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local global i32, align 4
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [94 x i8], align 1
@stderr = external global ptr, align 8
@.str.31 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp256r1_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.43 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.48 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_x25519_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@.str.52 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [197 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp256r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.65 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp384r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.69 = external hidden unnamed_addr constant [360 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [360 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp521r1_kyber_1024_r3 = external constant %struct.s2n_kem_group, align 8
@.str.75 = external hidden unnamed_addr constant [437 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [437 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_x25519_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.82 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp256r1_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.89 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_x25519_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.93 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [61 x i8], align 1
@__const.main.modes = external hidden unnamed_addr constant [2 x i32], align 4
@.str.121 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [106 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.127 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #0

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strrchr(ptr noundef, i32 noundef) #1

declare i32 @s2n_calculate_stacktrace() #2

declare i32 @s2n_tls13_keys_init(ptr noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef, ptr noundef) #4

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_tls13_compute_shared_secret(ptr noundef, ptr noundef) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #6

declare i32 @s2n_tls13_keys_free(ptr noundef) #2

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #4 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca %struct.s2n_result, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_result, align 4
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca %struct.s2n_result, align 4
  %19 = alloca %struct.s2n_blob, align 8
  %20 = alloca %struct.s2n_result, align 4
  %21 = alloca %struct.hybrid_test_vector, align 8
  %22 = alloca %struct.s2n_blob, align 8
  %23 = alloca %struct.s2n_result, align 4
  %24 = alloca %struct.s2n_blob, align 8
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca %struct.hybrid_test_vector, align 8
  %27 = alloca %struct.s2n_blob, align 8
  %28 = alloca %struct.s2n_result, align 4
  %29 = alloca %struct.s2n_blob, align 8
  %30 = alloca %struct.s2n_result, align 4
  %31 = alloca %struct.s2n_blob, align 8
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca %struct.s2n_blob, align 8
  %34 = alloca %struct.s2n_result, align 4
  %35 = alloca %struct.hybrid_test_vector, align 8
  %36 = alloca %struct.s2n_blob, align 8
  %37 = alloca %struct.s2n_result, align 4
  %38 = alloca %struct.s2n_blob, align 8
  %39 = alloca %struct.s2n_result, align 4
  %40 = alloca %struct.hybrid_test_vector, align 8
  %41 = alloca %struct.s2n_blob, align 8
  %42 = alloca %struct.s2n_result, align 4
  %43 = alloca %struct.s2n_blob, align 8
  %44 = alloca %struct.s2n_result, align 4
  %45 = alloca %struct.s2n_blob, align 8
  %46 = alloca %struct.s2n_result, align 4
  %47 = alloca %struct.s2n_blob, align 8
  %48 = alloca %struct.s2n_result, align 4
  %49 = alloca %struct.s2n_blob, align 8
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca %struct.s2n_blob, align 8
  %52 = alloca %struct.s2n_result, align 4
  %53 = alloca %struct.s2n_blob, align 8
  %54 = alloca %struct.s2n_result, align 4
  %55 = alloca %struct.s2n_blob, align 8
  %56 = alloca %struct.s2n_result, align 4
  %57 = alloca %struct.s2n_blob, align 8
  %58 = alloca %struct.s2n_result, align 4
  %59 = alloca %struct.hybrid_test_vector, align 8
  %60 = alloca %struct.s2n_blob, align 8
  %61 = alloca %struct.s2n_result, align 4
  %62 = alloca %struct.s2n_blob, align 8
  %63 = alloca %struct.s2n_result, align 4
  %64 = alloca %struct.hybrid_test_vector, align 8
  %65 = alloca %struct.s2n_blob, align 8
  %66 = alloca %struct.s2n_result, align 4
  %67 = alloca %struct.s2n_blob, align 8
  %68 = alloca %struct.s2n_result, align 4
  %69 = alloca %struct.hybrid_test_vector, align 8
  %70 = alloca %struct.s2n_blob, align 8
  %71 = alloca %struct.s2n_result, align 4
  %72 = alloca %struct.s2n_blob, align 8
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca %struct.hybrid_test_vector, align 8
  %75 = alloca %struct.s2n_blob, align 8
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca %struct.s2n_blob, align 8
  %78 = alloca %struct.s2n_result, align 4
  %79 = alloca %struct.hybrid_test_vector, align 8
  %80 = alloca %struct.s2n_blob, align 8
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca %struct.s2n_blob, align 8
  %83 = alloca %struct.s2n_result, align 4
  %84 = alloca %struct.hybrid_test_vector, align 8
  %85 = alloca %struct.s2n_blob, align 8
  %86 = alloca %struct.s2n_result, align 4
  %87 = alloca %struct.s2n_blob, align 8
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca %struct.s2n_blob, align 8
  %90 = alloca %struct.s2n_result, align 4
  %91 = alloca %struct.hybrid_test_vector, align 8
  %92 = alloca %struct.s2n_blob, align 8
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca %struct.s2n_blob, align 8
  %95 = alloca %struct.s2n_result, align 4
  %96 = alloca %struct.hybrid_test_vector, align 8
  %97 = alloca %struct.s2n_blob, align 8
  %98 = alloca %struct.s2n_result, align 4
  %99 = alloca %struct.s2n_blob, align 8
  %100 = alloca %struct.s2n_result, align 4
  %101 = alloca %struct.s2n_blob, align 8
  %102 = alloca %struct.s2n_result, align 4
  %103 = alloca %struct.s2n_blob, align 8
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca %struct.s2n_blob, align 8
  %106 = alloca %struct.s2n_result, align 4
  %107 = alloca %struct.hybrid_test_vector, align 8
  %108 = alloca %struct.s2n_blob, align 8
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca %struct.s2n_blob, align 8
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca %struct.hybrid_test_vector, align 8
  %113 = alloca %struct.s2n_blob, align 8
  %114 = alloca %struct.s2n_result, align 4
  %115 = alloca %struct.s2n_blob, align 8
  %116 = alloca %struct.s2n_result, align 4
  %117 = alloca %struct.hybrid_test_vector, align 8
  %118 = alloca %struct.s2n_blob, align 8
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca %struct.s2n_blob, align 8
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca %struct.hybrid_test_vector, align 8
  %123 = alloca [16 x ptr], align 16
  %124 = alloca i32, align 4
  %125 = alloca ptr, align 8
  %126 = alloca ptr, align 8
  %127 = alloca ptr, align 8
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca %struct.s2n_blob, align 8
  %133 = alloca %struct.s2n_blob, align 8
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca %struct.s2n_tls13_keys, align 8
  %144 = alloca i32, align 4
  %145 = alloca %struct.s2n_hash_state, align 8
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i64, align 8
  %151 = alloca [48 x i8], align 16
  %152 = alloca %struct.s2n_blob, align 8
  %153 = alloca i64, align 8
  %154 = alloca [48 x i8], align 16
  %155 = alloca %struct.s2n_blob, align 8
  %156 = alloca %struct.s2n_result, align 4
  %157 = alloca i32, align 4
  %158 = alloca %struct.s2n_result, 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 ptr, align 8
  %167 = alloca [2 x i32], align 4
  %168 = alloca i64, align 8
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca ptr, align 8
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca %struct.s2n_blob, align 8
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = 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 %217

217:                                              ; preds = %2
  br label %218

218:                                              ; preds = %217
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %219 = load ptr, ptr @stdout, align 8, !tbaa !9
  %220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %219, ptr noundef @.str.29, ptr noundef @.str.30) #11
  %221 = load ptr, ptr @stdout, align 8, !tbaa !9
  %222 = call i32 @fflush(ptr noundef %221)
  br label %223

223:                                              ; preds = %218
  %224 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %225 = icmp eq i32 %224, -1
  br i1 %225, label %226, label %277

226:                                              ; preds = %223
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %229 = call ptr @__errno_location() #12
  %230 = load i32, ptr %229, align 4, !tbaa !5
  store i32 %230, ptr %6, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @s2n_print_stacktrace(ptr noundef %231)
  %233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %234 = trunc i8 %233 to i1
  br i1 %234, label %235, label %257

235:                                              ; preds = %228
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = call i32 @fileno(ptr noundef %236) #11
  %238 = call i32 @isatty(i32 noundef %237) #11
  %239 = icmp ne i32 %238, 0
  br i1 %239, label %240, label %257

240:                                              ; preds = %235
  %241 = load i32, ptr %6, align 4, !tbaa !5
  %242 = call ptr @__errno_location() #12
  store i32 %241, ptr %242, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror(i32 noundef %246, ptr noundef @.str.33)
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef @.str.33)
  %251 = call ptr @__errno_location() #12
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call ptr @strerror(i32 noundef %252) #11
  %254 = call ptr @__errno_location() #12
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef @.str.31, i32 noundef %244, ptr noundef @.str.32, ptr noundef @.str.30, i32 noundef 198, ptr noundef %247, ptr noundef %250, ptr noundef %253, i32 noundef %255) #11
  br label %274

257:                                              ; preds = %235, %228
  %258 = load i32, ptr %6, align 4, !tbaa !5
  %259 = call ptr @__errno_location() #12
  store i32 %258, ptr %259, align 4, !tbaa !5
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = load i32, ptr @test_count, align 4, !tbaa !5
  %262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror(i32 noundef %263, ptr noundef @.str.33)
  %265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror_debug(i32 noundef %266, ptr noundef @.str.33)
  %268 = call ptr @__errno_location() #12
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @strerror(i32 noundef %269) #11
  %271 = call ptr @__errno_location() #12
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %260, ptr noundef @.str.34, i32 noundef %261, ptr noundef @.str.32, ptr noundef @.str.30, i32 noundef 198, ptr noundef %264, ptr noundef %267, ptr noundef %270, i32 noundef %272) #11
  br label %274

274:                                              ; preds = %257, %240
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %275

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

276:                                              ; No predecessors!
  br label %277

277:                                              ; preds = %276, %223
  br label %278

278:                                              ; preds = %277
  br label %279

279:                                              ; preds = %278
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr @test_count, align 4, !tbaa !5
  %282 = call i32 @s2n_enable_atexit()
  %283 = icmp eq i32 %282, -1
  br i1 %283, label %284, label %335

284:                                              ; preds = %279
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %287 = call ptr @__errno_location() #12
  %288 = load i32, ptr %287, align 4, !tbaa !5
  store i32 %288, ptr %7, align 4, !tbaa !5
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = call i32 @s2n_print_stacktrace(ptr noundef %289)
  %291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %292 = trunc i8 %291 to i1
  br i1 %292, label %293, label %315

293:                                              ; preds = %286
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = call i32 @fileno(ptr noundef %294) #11
  %296 = call i32 @isatty(i32 noundef %295) #11
  %297 = icmp ne i32 %296, 0
  br i1 %297, label %298, label %315

298:                                              ; preds = %293
  %299 = load i32, ptr %7, align 4, !tbaa !5
  %300 = call ptr @__errno_location() #12
  store i32 %299, ptr %300, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef @.str.33)
  %306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror_debug(i32 noundef %307, ptr noundef @.str.33)
  %309 = call ptr @__errno_location() #12
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @strerror(i32 noundef %310) #11
  %312 = call ptr @__errno_location() #12
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef @.str.31, i32 noundef %302, ptr noundef @.str.35, ptr noundef @.str.30, i32 noundef 198, ptr noundef %305, ptr noundef %308, ptr noundef %311, i32 noundef %313) #11
  br label %332

315:                                              ; preds = %293, %286
  %316 = load i32, ptr %7, align 4, !tbaa !5
  %317 = call ptr @__errno_location() #12
  store i32 %316, ptr %317, align 4, !tbaa !5
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = load i32, ptr @test_count, align 4, !tbaa !5
  %320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror(i32 noundef %321, ptr noundef @.str.33)
  %323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = call ptr @s2n_strerror_debug(i32 noundef %324, ptr noundef @.str.33)
  %326 = call ptr @__errno_location() #12
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call ptr @strerror(i32 noundef %327) #11
  %329 = call ptr @__errno_location() #12
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %318, ptr noundef @.str.34, i32 noundef %319, ptr noundef @.str.35, ptr noundef @.str.30, i32 noundef 198, ptr noundef %322, ptr noundef %325, ptr noundef %328, i32 noundef %330) #11
  br label %332

332:                                              ; preds = %315, %298
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %333

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

334:                                              ; No predecessors!
  br label %335

335:                                              ; preds = %334, %279
  br label %336

336:                                              ; preds = %335
  br label %337

337:                                              ; preds = %336
  br label %338

338:                                              ; preds = %337
  %339 = call i32 @s2n_init()
  %340 = icmp eq i32 %339, -1
  br i1 %340, label %341, label %392

341:                                              ; preds = %338
  br label %342

342:                                              ; preds = %341
  br label %343

343:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %344 = call ptr @__errno_location() #12
  %345 = load i32, ptr %344, align 4, !tbaa !5
  store i32 %345, ptr %8, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @s2n_print_stacktrace(ptr noundef %346)
  %348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %349 = trunc i8 %348 to i1
  br i1 %349, label %350, label %372

350:                                              ; preds = %343
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = call i32 @fileno(ptr noundef %351) #11
  %353 = call i32 @isatty(i32 noundef %352) #11
  %354 = icmp ne i32 %353, 0
  br i1 %354, label %355, label %372

355:                                              ; preds = %350
  %356 = load i32, ptr %8, align 4, !tbaa !5
  %357 = call ptr @__errno_location() #12
  store i32 %356, ptr %357, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror(i32 noundef %361, ptr noundef @.str.33)
  %363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror_debug(i32 noundef %364, ptr noundef @.str.33)
  %366 = call ptr @__errno_location() #12
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @strerror(i32 noundef %367) #11
  %369 = call ptr @__errno_location() #12
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef @.str.31, i32 noundef %359, ptr noundef @.str.36, ptr noundef @.str.30, i32 noundef 198, ptr noundef %362, ptr noundef %365, ptr noundef %368, i32 noundef %370) #11
  br label %389

372:                                              ; preds = %350, %343
  %373 = load i32, ptr %8, align 4, !tbaa !5
  %374 = call ptr @__errno_location() #12
  store i32 %373, ptr %374, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror(i32 noundef %378, ptr noundef @.str.33)
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror_debug(i32 noundef %381, ptr noundef @.str.33)
  %383 = call ptr @__errno_location() #12
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @strerror(i32 noundef %384) #11
  %386 = call ptr @__errno_location() #12
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef @.str.34, i32 noundef %376, ptr noundef @.str.36, ptr noundef @.str.30, i32 noundef 198, ptr noundef %379, ptr noundef %382, ptr noundef %385, i32 noundef %387) #11
  br label %389

389:                                              ; preds = %372, %355
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %390

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

391:                                              ; No predecessors!
  br label %392

392:                                              ; preds = %391, %338
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr @test_count, align 4, !tbaa !5
  %398 = call i32 (...) @s2n_disable_tls13_in_test()
  %399 = icmp eq i32 %398, -1
  br i1 %399, label %400, label %451

400:                                              ; preds = %395
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %403 = call ptr @__errno_location() #12
  %404 = load i32, ptr %403, align 4, !tbaa !5
  store i32 %404, ptr %9, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @s2n_print_stacktrace(ptr noundef %405)
  %407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %408 = trunc i8 %407 to i1
  br i1 %408, label %409, label %431

409:                                              ; preds = %402
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = call i32 @fileno(ptr noundef %410) #11
  %412 = call i32 @isatty(i32 noundef %411) #11
  %413 = icmp ne i32 %412, 0
  br i1 %413, label %414, label %431

414:                                              ; preds = %409
  %415 = load i32, ptr %9, align 4, !tbaa !5
  %416 = call ptr @__errno_location() #12
  store i32 %415, ptr %416, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror(i32 noundef %420, ptr noundef @.str.33)
  %422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror_debug(i32 noundef %423, ptr noundef @.str.33)
  %425 = call ptr @__errno_location() #12
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @strerror(i32 noundef %426) #11
  %428 = call ptr @__errno_location() #12
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef @.str.31, i32 noundef %418, ptr noundef @.str.37, ptr noundef @.str.30, i32 noundef 199, ptr noundef %421, ptr noundef %424, ptr noundef %427, i32 noundef %429) #11
  br label %448

431:                                              ; preds = %409, %402
  %432 = load i32, ptr %9, align 4, !tbaa !5
  %433 = call ptr @__errno_location() #12
  store i32 %432, ptr %433, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = load i32, ptr @test_count, align 4, !tbaa !5
  %436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror(i32 noundef %437, ptr noundef @.str.33)
  %439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror_debug(i32 noundef %440, ptr noundef @.str.33)
  %442 = call ptr @__errno_location() #12
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @strerror(i32 noundef %443) #11
  %445 = call ptr @__errno_location() #12
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %434, ptr noundef @.str.34, i32 noundef %435, ptr noundef @.str.37, ptr noundef @.str.30, i32 noundef 199, ptr noundef %438, ptr noundef %441, ptr noundef %444, i32 noundef %446) #11
  br label %448

448:                                              ; preds = %431, %414
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %449

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

450:                                              ; No predecessors!
  br label %451

451:                                              ; preds = %450, %395
  br label %452

452:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #11
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 24, i1 false)
  br label %453

453:                                              ; preds = %452
  %454 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %10, ptr noundef @.str.38)
  %455 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  store i32 %454, ptr %455, align 4
  %456 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  %457 = load i32, ptr %456, align 4
  %458 = call zeroext i1 @s2n_result_is_ok(i32 %457)
  br i1 %458, label %460, label %459

459:                                              ; preds = %453
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6138

460:                                              ; preds = %453
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #11
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 24, i1 false)
  br label %463

463:                                              ; preds = %462
  %464 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %13, ptr noundef @.str.39)
  %465 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  store i32 %464, ptr %465, align 4
  %466 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  %467 = load i32, ptr %466, align 4
  %468 = call zeroext i1 @s2n_result_is_ok(i32 %467)
  br i1 %468, label %470, label %469

469:                                              ; preds = %463
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6136

470:                                              ; preds = %463
  br label %471

471:                                              ; preds = %470
  br label %472

472:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #11
  call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 24, i1 false)
  br label %473

473:                                              ; preds = %472
  %474 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %15, ptr noundef @.str.40)
  %475 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %474, ptr %475, align 4
  %476 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %477 = load i32, ptr %476, align 4
  %478 = call zeroext i1 @s2n_result_is_ok(i32 %477)
  br i1 %478, label %480, label %479

479:                                              ; preds = %473
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6134

480:                                              ; preds = %473
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #11
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 24, i1 false)
  br label %483

483:                                              ; preds = %482
  %484 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %17, ptr noundef @.str.41)
  %485 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  store i32 %484, ptr %485, align 4
  %486 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  %487 = load i32, ptr %486, align 4
  %488 = call zeroext i1 @s2n_result_is_ok(i32 %487)
  br i1 %488, label %490, label %489

489:                                              ; preds = %483
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6132

490:                                              ; preds = %483
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #11
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 24, i1 false)
  br label %493

493:                                              ; preds = %492
  %494 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %19, ptr noundef @.str.42)
  %495 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  store i32 %494, ptr %495, align 4
  %496 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  %497 = load i32, ptr %496, align 4
  %498 = call zeroext i1 @s2n_result_is_ok(i32 %497)
  br i1 %498, label %500, label %499

499:                                              ; preds = %493
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6130

500:                                              ; preds = %493
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 72, ptr %21) #11
  %503 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 0
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %503, align 8, !tbaa !15
  %504 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %504, align 8, !tbaa !17
  %505 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 2
  store ptr @.str.43, ptr %505, align 8, !tbaa !18
  %506 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 3
  store ptr @.str.44, ptr %506, align 8, !tbaa !19
  %507 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 4
  store ptr @.str.45, ptr %507, align 8, !tbaa !20
  %508 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 5
  store ptr %13, ptr %508, align 8, !tbaa !21
  %509 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 6
  store ptr %15, ptr %509, align 8, !tbaa !22
  %510 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 7
  store ptr %17, ptr %510, align 8, !tbaa !23
  %511 = getelementptr inbounds %struct.hybrid_test_vector, ptr %21, i32 0, i32 8
  store ptr %19, ptr %511, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #11
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 24, i1 false)
  br label %512

512:                                              ; preds = %502
  %513 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %22, ptr noundef @.str.46)
  %514 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  store i32 %513, ptr %514, align 4
  %515 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  %516 = load i32, ptr %515, align 4
  %517 = call zeroext i1 @s2n_result_is_ok(i32 %516)
  br i1 %517, label %519, label %518

518:                                              ; preds = %512
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6128

519:                                              ; preds = %512
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #11
  call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 24, i1 false)
  br label %522

522:                                              ; preds = %521
  %523 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %24, ptr noundef @.str.47)
  %524 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %523, ptr %524, align 4
  %525 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %526 = load i32, ptr %525, align 4
  %527 = call zeroext i1 @s2n_result_is_ok(i32 %526)
  br i1 %527, label %529, label %528

528:                                              ; preds = %522
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6126

529:                                              ; preds = %522
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 72, ptr %26) #11
  %532 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 0
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %532, align 8, !tbaa !15
  %533 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %533, align 8, !tbaa !17
  %534 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 2
  store ptr @.str.43, ptr %534, align 8, !tbaa !18
  %535 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 3
  store ptr @.str.44, ptr %535, align 8, !tbaa !19
  %536 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 4
  store ptr @.str.45, ptr %536, align 8, !tbaa !20
  %537 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 5
  store ptr %13, ptr %537, align 8, !tbaa !21
  %538 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 6
  store ptr %15, ptr %538, align 8, !tbaa !22
  %539 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 7
  store ptr %22, ptr %539, align 8, !tbaa !23
  %540 = getelementptr inbounds %struct.hybrid_test_vector, ptr %26, i32 0, i32 8
  store ptr %24, ptr %540, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %27) #11
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 24, i1 false)
  br label %541

541:                                              ; preds = %531
  %542 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %27, ptr noundef @.str.48)
  %543 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  store i32 %542, ptr %543, align 4
  %544 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  %545 = load i32, ptr %544, align 4
  %546 = call zeroext i1 @s2n_result_is_ok(i32 %545)
  br i1 %546, label %548, label %547

547:                                              ; preds = %541
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6124

548:                                              ; preds = %541
  br label %549

549:                                              ; preds = %548
  br label %550

550:                                              ; preds = %549
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #11
  call void @llvm.memset.p0.i64(ptr align 8 %29, i8 0, i64 24, i1 false)
  br label %551

551:                                              ; preds = %550
  %552 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %29, ptr noundef @.str.49)
  %553 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %552, ptr %553, align 4
  %554 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  %555 = load i32, ptr %554, align 4
  %556 = call zeroext i1 @s2n_result_is_ok(i32 %555)
  br i1 %556, label %558, label %557

557:                                              ; preds = %551
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6122

558:                                              ; preds = %551
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #11
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 24, i1 false)
  br label %561

561:                                              ; preds = %560
  %562 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %31, ptr noundef @.str.50)
  %563 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %562, ptr %563, align 4
  %564 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %565 = load i32, ptr %564, align 4
  %566 = call zeroext i1 @s2n_result_is_ok(i32 %565)
  br i1 %566, label %568, label %567

567:                                              ; preds = %561
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6120

568:                                              ; preds = %561
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #11
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 24, i1 false)
  br label %571

571:                                              ; preds = %570
  %572 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %33, ptr noundef @.str.51)
  %573 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  store i32 %572, ptr %573, align 4
  %574 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  %575 = load i32, ptr %574, align 4
  %576 = call zeroext i1 @s2n_result_is_ok(i32 %575)
  br i1 %576, label %578, label %577

577:                                              ; preds = %571
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6118

578:                                              ; preds = %571
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 72, ptr %35) #11
  %581 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 0
  store ptr @s2n_x25519_kyber_512_r3, ptr %581, align 8, !tbaa !15
  %582 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %582, align 8, !tbaa !17
  %583 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 2
  store ptr @.str.43, ptr %583, align 8, !tbaa !18
  %584 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 3
  store ptr @.str.52, ptr %584, align 8, !tbaa !19
  %585 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 4
  store ptr @.str.53, ptr %585, align 8, !tbaa !20
  %586 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 5
  store ptr %13, ptr %586, align 8, !tbaa !21
  %587 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 6
  store ptr %29, ptr %587, align 8, !tbaa !22
  %588 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 7
  store ptr %31, ptr %588, align 8, !tbaa !23
  %589 = getelementptr inbounds %struct.hybrid_test_vector, ptr %35, i32 0, i32 8
  store ptr %33, ptr %589, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #11
  call void @llvm.memset.p0.i64(ptr align 8 %36, i8 0, i64 24, i1 false)
  br label %590

590:                                              ; preds = %580
  %591 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %36, ptr noundef @.str.54)
  %592 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %591, ptr %592, align 4
  %593 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %594 = load i32, ptr %593, align 4
  %595 = call zeroext i1 @s2n_result_is_ok(i32 %594)
  br i1 %595, label %597, label %596

596:                                              ; preds = %590
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6116

597:                                              ; preds = %590
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #11
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 24, i1 false)
  br label %600

600:                                              ; preds = %599
  %601 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %38, ptr noundef @.str.55)
  %602 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %601, ptr %602, align 4
  %603 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %604 = load i32, ptr %603, align 4
  %605 = call zeroext i1 @s2n_result_is_ok(i32 %604)
  br i1 %605, label %607, label %606

606:                                              ; preds = %600
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6114

607:                                              ; preds = %600
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608
  call void @llvm.lifetime.start.p0(i64 72, ptr %40) #11
  %610 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 0
  store ptr @s2n_x25519_kyber_512_r3, ptr %610, align 8, !tbaa !15
  %611 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %611, align 8, !tbaa !17
  %612 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 2
  store ptr @.str.43, ptr %612, align 8, !tbaa !18
  %613 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 3
  store ptr @.str.52, ptr %613, align 8, !tbaa !19
  %614 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 4
  store ptr @.str.53, ptr %614, align 8, !tbaa !20
  %615 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 5
  store ptr %13, ptr %615, align 8, !tbaa !21
  %616 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 6
  store ptr %29, ptr %616, align 8, !tbaa !22
  %617 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 7
  store ptr %36, ptr %617, align 8, !tbaa !23
  %618 = getelementptr inbounds %struct.hybrid_test_vector, ptr %40, i32 0, i32 8
  store ptr %38, ptr %618, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %41) #11
  call void @llvm.memset.p0.i64(ptr align 8 %41, i8 0, i64 24, i1 false)
  br label %619

619:                                              ; preds = %609
  %620 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %41, ptr noundef @.str.56)
  %621 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  store i32 %620, ptr %621, align 4
  %622 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  %623 = load i32, ptr %622, align 4
  %624 = call zeroext i1 @s2n_result_is_ok(i32 %623)
  br i1 %624, label %626, label %625

625:                                              ; preds = %619
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6112

626:                                              ; preds = %619
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #11
  call void @llvm.memset.p0.i64(ptr align 8 %43, i8 0, i64 24, i1 false)
  br label %629

629:                                              ; preds = %628
  %630 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %43, ptr noundef @.str.57)
  %631 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  store i32 %630, ptr %631, align 4
  %632 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  %633 = load i32, ptr %632, align 4
  %634 = call zeroext i1 @s2n_result_is_ok(i32 %633)
  br i1 %634, label %636, label %635

635:                                              ; preds = %629
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6110

636:                                              ; preds = %629
  br label %637

637:                                              ; preds = %636
  br label %638

638:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #11
  call void @llvm.memset.p0.i64(ptr align 8 %45, i8 0, i64 24, i1 false)
  br label %639

639:                                              ; preds = %638
  %640 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %45, ptr noundef @.str.58)
  %641 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  store i32 %640, ptr %641, align 4
  %642 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  %643 = load i32, ptr %642, align 4
  %644 = call zeroext i1 @s2n_result_is_ok(i32 %643)
  br i1 %644, label %646, label %645

645:                                              ; preds = %639
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6108

646:                                              ; preds = %639
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #11
  call void @llvm.memset.p0.i64(ptr align 8 %47, i8 0, i64 24, i1 false)
  br label %649

649:                                              ; preds = %648
  %650 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %47, ptr noundef @.str.59)
  %651 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %650, ptr %651, align 4
  %652 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %653 = load i32, ptr %652, align 4
  %654 = call zeroext i1 @s2n_result_is_ok(i32 %653)
  br i1 %654, label %656, label %655

655:                                              ; preds = %649
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6106

656:                                              ; preds = %649
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #11
  call void @llvm.memset.p0.i64(ptr align 8 %49, i8 0, i64 24, i1 false)
  br label %659

659:                                              ; preds = %658
  %660 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %49, ptr noundef @.str.60)
  %661 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %660, ptr %661, align 4
  %662 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  %663 = load i32, ptr %662, align 4
  %664 = call zeroext i1 @s2n_result_is_ok(i32 %663)
  br i1 %664, label %666, label %665

665:                                              ; preds = %659
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6104

666:                                              ; preds = %659
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #11
  call void @llvm.memset.p0.i64(ptr align 8 %51, i8 0, i64 24, i1 false)
  br label %669

669:                                              ; preds = %668
  %670 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %51, ptr noundef @.str.61)
  %671 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %670, ptr %671, align 4
  %672 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  %673 = load i32, ptr %672, align 4
  %674 = call zeroext i1 @s2n_result_is_ok(i32 %673)
  br i1 %674, label %676, label %675

675:                                              ; preds = %669
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6102

676:                                              ; preds = %669
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #11
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 24, i1 false)
  br label %679

679:                                              ; preds = %678
  %680 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %53, ptr noundef @.str.62)
  %681 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  store i32 %680, ptr %681, align 4
  %682 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  %683 = load i32, ptr %682, align 4
  %684 = call zeroext i1 @s2n_result_is_ok(i32 %683)
  br i1 %684, label %686, label %685

685:                                              ; preds = %679
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6100

686:                                              ; preds = %679
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  call void @llvm.lifetime.start.p0(i64 24, ptr %55) #11
  call void @llvm.memset.p0.i64(ptr align 8 %55, i8 0, i64 24, i1 false)
  br label %689

689:                                              ; preds = %688
  %690 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %55, ptr noundef @.str.63)
  %691 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %690, ptr %691, align 4
  %692 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  %693 = load i32, ptr %692, align 4
  %694 = call zeroext i1 @s2n_result_is_ok(i32 %693)
  br i1 %694, label %696, label %695

695:                                              ; preds = %689
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6098

696:                                              ; preds = %689
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 24, ptr %57) #11
  call void @llvm.memset.p0.i64(ptr align 8 %57, i8 0, i64 24, i1 false)
  br label %699

699:                                              ; preds = %698
  %700 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %57, ptr noundef @.str.64)
  %701 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  store i32 %700, ptr %701, align 4
  %702 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  %703 = load i32, ptr %702, align 4
  %704 = call zeroext i1 @s2n_result_is_ok(i32 %703)
  br i1 %704, label %706, label %705

705:                                              ; preds = %699
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6096

706:                                              ; preds = %699
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707
  call void @llvm.lifetime.start.p0(i64 72, ptr %59) #11
  %709 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 0
  store ptr @s2n_secp256r1_kyber_768_r3, ptr %709, align 8, !tbaa !15
  %710 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %710, align 8, !tbaa !17
  %711 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 2
  store ptr @.str.43, ptr %711, align 8, !tbaa !18
  %712 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 3
  store ptr @.str.44, ptr %712, align 8, !tbaa !19
  %713 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 4
  store ptr @.str.45, ptr %713, align 8, !tbaa !20
  %714 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 5
  store ptr %45, ptr %714, align 8, !tbaa !21
  %715 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 6
  store ptr %41, ptr %715, align 8, !tbaa !22
  %716 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 7
  store ptr %55, ptr %716, align 8, !tbaa !23
  %717 = getelementptr inbounds %struct.hybrid_test_vector, ptr %59, i32 0, i32 8
  store ptr %57, ptr %717, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #11
  call void @llvm.memset.p0.i64(ptr align 8 %60, i8 0, i64 24, i1 false)
  br label %718

718:                                              ; preds = %708
  %719 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %60, ptr noundef @.str.65)
  %720 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  store i32 %719, ptr %720, align 4
  %721 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  %722 = load i32, ptr %721, align 4
  %723 = call zeroext i1 @s2n_result_is_ok(i32 %722)
  br i1 %723, label %725, label %724

724:                                              ; preds = %718
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6094

725:                                              ; preds = %718
  br label %726

726:                                              ; preds = %725
  br label %727

727:                                              ; preds = %726
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #11
  call void @llvm.memset.p0.i64(ptr align 8 %62, i8 0, i64 24, i1 false)
  br label %728

728:                                              ; preds = %727
  %729 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %62, ptr noundef @.str.66)
  %730 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %729, ptr %730, align 4
  %731 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %732 = load i32, ptr %731, align 4
  %733 = call zeroext i1 @s2n_result_is_ok(i32 %732)
  br i1 %733, label %735, label %734

734:                                              ; preds = %728
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6092

735:                                              ; preds = %728
  br label %736

736:                                              ; preds = %735
  br label %737

737:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 72, ptr %64) #11
  %738 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 0
  store ptr @s2n_secp256r1_kyber_768_r3, ptr %738, align 8, !tbaa !15
  %739 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %739, align 8, !tbaa !17
  %740 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 2
  store ptr @.str.43, ptr %740, align 8, !tbaa !18
  %741 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 3
  store ptr @.str.44, ptr %741, align 8, !tbaa !19
  %742 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 4
  store ptr @.str.45, ptr %742, align 8, !tbaa !20
  %743 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 5
  store ptr %45, ptr %743, align 8, !tbaa !21
  %744 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 6
  store ptr %41, ptr %744, align 8, !tbaa !22
  %745 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 7
  store ptr %60, ptr %745, align 8, !tbaa !23
  %746 = getelementptr inbounds %struct.hybrid_test_vector, ptr %64, i32 0, i32 8
  store ptr %62, ptr %746, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %65) #11
  call void @llvm.memset.p0.i64(ptr align 8 %65, i8 0, i64 24, i1 false)
  br label %747

747:                                              ; preds = %737
  %748 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %65, ptr noundef @.str.67)
  %749 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %748, ptr %749, align 4
  %750 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %751 = load i32, ptr %750, align 4
  %752 = call zeroext i1 @s2n_result_is_ok(i32 %751)
  br i1 %752, label %754, label %753

753:                                              ; preds = %747
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6090

754:                                              ; preds = %747
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #11
  call void @llvm.memset.p0.i64(ptr align 8 %67, i8 0, i64 24, i1 false)
  br label %757

757:                                              ; preds = %756
  %758 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %67, ptr noundef @.str.68)
  %759 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  store i32 %758, ptr %759, align 4
  %760 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  %761 = load i32, ptr %760, align 4
  %762 = call zeroext i1 @s2n_result_is_ok(i32 %761)
  br i1 %762, label %764, label %763

763:                                              ; preds = %757
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6088

764:                                              ; preds = %757
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 72, ptr %69) #11
  %767 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 0
  store ptr @s2n_secp384r1_kyber_768_r3, ptr %767, align 8, !tbaa !15
  %768 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %768, align 8, !tbaa !17
  %769 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 2
  store ptr @.str.43, ptr %769, align 8, !tbaa !18
  %770 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 3
  store ptr @.str.69, ptr %770, align 8, !tbaa !19
  %771 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 4
  store ptr @.str.70, ptr %771, align 8, !tbaa !20
  %772 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 5
  store ptr %45, ptr %772, align 8, !tbaa !21
  %773 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 6
  store ptr %47, ptr %773, align 8, !tbaa !22
  %774 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 7
  store ptr %65, ptr %774, align 8, !tbaa !23
  %775 = getelementptr inbounds %struct.hybrid_test_vector, ptr %69, i32 0, i32 8
  store ptr %67, ptr %775, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %70) #11
  call void @llvm.memset.p0.i64(ptr align 8 %70, i8 0, i64 24, i1 false)
  br label %776

776:                                              ; preds = %766
  %777 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %70, ptr noundef @.str.71)
  %778 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  store i32 %777, ptr %778, align 4
  %779 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  %780 = load i32, ptr %779, align 4
  %781 = call zeroext i1 @s2n_result_is_ok(i32 %780)
  br i1 %781, label %783, label %782

782:                                              ; preds = %776
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6086

783:                                              ; preds = %776
  br label %784

784:                                              ; preds = %783
  br label %785

785:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 24, ptr %72) #11
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 24, i1 false)
  br label %786

786:                                              ; preds = %785
  %787 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %72, ptr noundef @.str.72)
  %788 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %787, ptr %788, align 4
  %789 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %790 = load i32, ptr %789, align 4
  %791 = call zeroext i1 @s2n_result_is_ok(i32 %790)
  br i1 %791, label %793, label %792

792:                                              ; preds = %786
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6084

793:                                              ; preds = %786
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 72, ptr %74) #11
  %796 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 0
  store ptr @s2n_secp384r1_kyber_768_r3, ptr %796, align 8, !tbaa !15
  %797 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %797, align 8, !tbaa !17
  %798 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 2
  store ptr @.str.43, ptr %798, align 8, !tbaa !18
  %799 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 3
  store ptr @.str.69, ptr %799, align 8, !tbaa !19
  %800 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 4
  store ptr @.str.70, ptr %800, align 8, !tbaa !20
  %801 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 5
  store ptr %45, ptr %801, align 8, !tbaa !21
  %802 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 6
  store ptr %47, ptr %802, align 8, !tbaa !22
  %803 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 7
  store ptr %70, ptr %803, align 8, !tbaa !23
  %804 = getelementptr inbounds %struct.hybrid_test_vector, ptr %74, i32 0, i32 8
  store ptr %72, ptr %804, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %75) #11
  call void @llvm.memset.p0.i64(ptr align 8 %75, i8 0, i64 24, i1 false)
  br label %805

805:                                              ; preds = %795
  %806 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %75, ptr noundef @.str.73)
  %807 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %806, ptr %807, align 4
  %808 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  %809 = load i32, ptr %808, align 4
  %810 = call zeroext i1 @s2n_result_is_ok(i32 %809)
  br i1 %810, label %812, label %811

811:                                              ; preds = %805
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6082

812:                                              ; preds = %805
  br label %813

813:                                              ; preds = %812
  br label %814

814:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #11
  call void @llvm.memset.p0.i64(ptr align 8 %77, i8 0, i64 24, i1 false)
  br label %815

815:                                              ; preds = %814
  %816 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %77, ptr noundef @.str.74)
  %817 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %816, ptr %817, align 4
  %818 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %819 = load i32, ptr %818, align 4
  %820 = call zeroext i1 @s2n_result_is_ok(i32 %819)
  br i1 %820, label %822, label %821

821:                                              ; preds = %815
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6080

822:                                              ; preds = %815
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 72, ptr %79) #11
  %825 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 0
  store ptr @s2n_secp521r1_kyber_1024_r3, ptr %825, align 8, !tbaa !15
  %826 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %826, align 8, !tbaa !17
  %827 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 2
  store ptr @.str.43, ptr %827, align 8, !tbaa !18
  %828 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 3
  store ptr @.str.75, ptr %828, align 8, !tbaa !19
  %829 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 4
  store ptr @.str.76, ptr %829, align 8, !tbaa !20
  %830 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 5
  store ptr %51, ptr %830, align 8, !tbaa !21
  %831 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 6
  store ptr %53, ptr %831, align 8, !tbaa !22
  %832 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 7
  store ptr %75, ptr %832, align 8, !tbaa !23
  %833 = getelementptr inbounds %struct.hybrid_test_vector, ptr %79, i32 0, i32 8
  store ptr %77, ptr %833, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %80) #11
  call void @llvm.memset.p0.i64(ptr align 8 %80, i8 0, i64 24, i1 false)
  br label %834

834:                                              ; preds = %824
  %835 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %80, ptr noundef @.str.77)
  %836 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %835, ptr %836, align 4
  %837 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %838 = load i32, ptr %837, align 4
  %839 = call zeroext i1 @s2n_result_is_ok(i32 %838)
  br i1 %839, label %841, label %840

840:                                              ; preds = %834
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6078

841:                                              ; preds = %834
  br label %842

842:                                              ; preds = %841
  br label %843

843:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #11
  call void @llvm.memset.p0.i64(ptr align 8 %82, i8 0, i64 24, i1 false)
  br label %844

844:                                              ; preds = %843
  %845 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %82, ptr noundef @.str.78)
  %846 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %845, ptr %846, align 4
  %847 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  %848 = load i32, ptr %847, align 4
  %849 = call zeroext i1 @s2n_result_is_ok(i32 %848)
  br i1 %849, label %851, label %850

850:                                              ; preds = %844
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6076

851:                                              ; preds = %844
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  call void @llvm.lifetime.start.p0(i64 72, ptr %84) #11
  %854 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 0
  store ptr @s2n_secp521r1_kyber_1024_r3, ptr %854, align 8, !tbaa !15
  %855 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %855, align 8, !tbaa !17
  %856 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 2
  store ptr @.str.43, ptr %856, align 8, !tbaa !18
  %857 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 3
  store ptr @.str.75, ptr %857, align 8, !tbaa !19
  %858 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 4
  store ptr @.str.76, ptr %858, align 8, !tbaa !20
  %859 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 5
  store ptr %51, ptr %859, align 8, !tbaa !21
  %860 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 6
  store ptr %53, ptr %860, align 8, !tbaa !22
  %861 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 7
  store ptr %80, ptr %861, align 8, !tbaa !23
  %862 = getelementptr inbounds %struct.hybrid_test_vector, ptr %84, i32 0, i32 8
  store ptr %82, ptr %862, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %85) #11
  call void @llvm.memset.p0.i64(ptr align 8 %85, i8 0, i64 24, i1 false)
  br label %863

863:                                              ; preds = %853
  %864 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %85, ptr noundef @.str.79)
  %865 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %864, ptr %865, align 4
  %866 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  %867 = load i32, ptr %866, align 4
  %868 = call zeroext i1 @s2n_result_is_ok(i32 %867)
  br i1 %868, label %870, label %869

869:                                              ; preds = %863
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6074

870:                                              ; preds = %863
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 24, ptr %87) #11
  call void @llvm.memset.p0.i64(ptr align 8 %87, i8 0, i64 24, i1 false)
  br label %873

873:                                              ; preds = %872
  %874 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %87, ptr noundef @.str.80)
  %875 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %874, ptr %875, align 4
  %876 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  %877 = load i32, ptr %876, align 4
  %878 = call zeroext i1 @s2n_result_is_ok(i32 %877)
  br i1 %878, label %880, label %879

879:                                              ; preds = %873
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6072

880:                                              ; preds = %873
  br label %881

881:                                              ; preds = %880
  br label %882

882:                                              ; preds = %881
  call void @llvm.lifetime.start.p0(i64 24, ptr %89) #11
  call void @llvm.memset.p0.i64(ptr align 8 %89, i8 0, i64 24, i1 false)
  br label %883

883:                                              ; preds = %882
  %884 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %89, ptr noundef @.str.81)
  %885 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  store i32 %884, ptr %885, align 4
  %886 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  %887 = load i32, ptr %886, align 4
  %888 = call zeroext i1 @s2n_result_is_ok(i32 %887)
  br i1 %888, label %890, label %889

889:                                              ; preds = %883
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6070

890:                                              ; preds = %883
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  call void @llvm.lifetime.start.p0(i64 72, ptr %91) #11
  %893 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 0
  store ptr @s2n_x25519_kyber_768_r3, ptr %893, align 8, !tbaa !15
  %894 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %894, align 8, !tbaa !17
  %895 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 2
  store ptr @.str.43, ptr %895, align 8, !tbaa !18
  %896 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 3
  store ptr @.str.52, ptr %896, align 8, !tbaa !19
  %897 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 4
  store ptr @.str.53, ptr %897, align 8, !tbaa !20
  %898 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 5
  store ptr %45, ptr %898, align 8, !tbaa !21
  %899 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 6
  store ptr %85, ptr %899, align 8, !tbaa !22
  %900 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 7
  store ptr %87, ptr %900, align 8, !tbaa !23
  %901 = getelementptr inbounds %struct.hybrid_test_vector, ptr %91, i32 0, i32 8
  store ptr %89, ptr %901, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %92) #11
  call void @llvm.memset.p0.i64(ptr align 8 %92, i8 0, i64 24, i1 false)
  br label %902

902:                                              ; preds = %892
  %903 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %92, ptr noundef @.str.82)
  %904 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %903, ptr %904, align 4
  %905 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %906 = load i32, ptr %905, align 4
  %907 = call zeroext i1 @s2n_result_is_ok(i32 %906)
  br i1 %907, label %909, label %908

908:                                              ; preds = %902
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6068

909:                                              ; preds = %902
  br label %910

910:                                              ; preds = %909
  br label %911

911:                                              ; preds = %910
  call void @llvm.lifetime.start.p0(i64 24, ptr %94) #11
  call void @llvm.memset.p0.i64(ptr align 8 %94, i8 0, i64 24, i1 false)
  br label %912

912:                                              ; preds = %911
  %913 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %94, ptr noundef @.str.83)
  %914 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %913, ptr %914, align 4
  %915 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  %916 = load i32, ptr %915, align 4
  %917 = call zeroext i1 @s2n_result_is_ok(i32 %916)
  br i1 %917, label %919, label %918

918:                                              ; preds = %912
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6066

919:                                              ; preds = %912
  br label %920

920:                                              ; preds = %919
  br label %921

921:                                              ; preds = %920
  call void @llvm.lifetime.start.p0(i64 72, ptr %96) #11
  %922 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 0
  store ptr @s2n_x25519_kyber_768_r3, ptr %922, align 8, !tbaa !15
  %923 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %923, align 8, !tbaa !17
  %924 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 2
  store ptr @.str.43, ptr %924, align 8, !tbaa !18
  %925 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 3
  store ptr @.str.52, ptr %925, align 8, !tbaa !19
  %926 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 4
  store ptr @.str.53, ptr %926, align 8, !tbaa !20
  %927 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 5
  store ptr %45, ptr %927, align 8, !tbaa !21
  %928 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 6
  store ptr %85, ptr %928, align 8, !tbaa !22
  %929 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 7
  store ptr %92, ptr %929, align 8, !tbaa !23
  %930 = getelementptr inbounds %struct.hybrid_test_vector, ptr %96, i32 0, i32 8
  store ptr %94, ptr %930, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %97) #11
  call void @llvm.memset.p0.i64(ptr align 8 %97, i8 0, i64 24, i1 false)
  br label %931

931:                                              ; preds = %921
  %932 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %97, ptr noundef @.str.84)
  %933 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  store i32 %932, ptr %933, align 4
  %934 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  %935 = load i32, ptr %934, align 4
  %936 = call zeroext i1 @s2n_result_is_ok(i32 %935)
  br i1 %936, label %938, label %937

937:                                              ; preds = %931
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6064

938:                                              ; preds = %931
  br label %939

939:                                              ; preds = %938
  br label %940

940:                                              ; preds = %939
  call void @llvm.lifetime.start.p0(i64 24, ptr %99) #11
  call void @llvm.memset.p0.i64(ptr align 8 %99, i8 0, i64 24, i1 false)
  br label %941

941:                                              ; preds = %940
  %942 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %99, ptr noundef @.str.85)
  %943 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %942, ptr %943, align 4
  %944 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  %945 = load i32, ptr %944, align 4
  %946 = call zeroext i1 @s2n_result_is_ok(i32 %945)
  br i1 %946, label %948, label %947

947:                                              ; preds = %941
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6062

948:                                              ; preds = %941
  br label %949

949:                                              ; preds = %948
  br label %950

950:                                              ; preds = %949
  call void @llvm.lifetime.start.p0(i64 24, ptr %101) #11
  call void @llvm.memset.p0.i64(ptr align 8 %101, i8 0, i64 24, i1 false)
  br label %951

951:                                              ; preds = %950
  %952 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %101, ptr noundef @.str.86)
  %953 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  store i32 %952, ptr %953, align 4
  %954 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  %955 = load i32, ptr %954, align 4
  %956 = call zeroext i1 @s2n_result_is_ok(i32 %955)
  br i1 %956, label %958, label %957

957:                                              ; preds = %951
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6060

958:                                              ; preds = %951
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  call void @llvm.lifetime.start.p0(i64 24, ptr %103) #11
  call void @llvm.memset.p0.i64(ptr align 8 %103, i8 0, i64 24, i1 false)
  br label %961

961:                                              ; preds = %960
  %962 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %103, ptr noundef @.str.87)
  %963 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %962, ptr %963, align 4
  %964 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %965 = load i32, ptr %964, align 4
  %966 = call zeroext i1 @s2n_result_is_ok(i32 %965)
  br i1 %966, label %968, label %967

967:                                              ; preds = %961
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6058

968:                                              ; preds = %961
  br label %969

969:                                              ; preds = %968
  br label %970

970:                                              ; preds = %969
  call void @llvm.lifetime.start.p0(i64 24, ptr %105) #11
  call void @llvm.memset.p0.i64(ptr align 8 %105, i8 0, i64 24, i1 false)
  br label %971

971:                                              ; preds = %970
  %972 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %105, ptr noundef @.str.88)
  %973 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %972, ptr %973, align 4
  %974 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  %975 = load i32, ptr %974, align 4
  %976 = call zeroext i1 @s2n_result_is_ok(i32 %975)
  br i1 %976, label %978, label %977

977:                                              ; preds = %971
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6056

978:                                              ; preds = %971
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  call void @llvm.lifetime.start.p0(i64 72, ptr %107) #11
  %981 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 0
  store ptr @s2n_secp256r1_mlkem_768, ptr %981, align 8, !tbaa !15
  %982 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %982, align 8, !tbaa !17
  %983 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 2
  store ptr @.str.43, ptr %983, align 8, !tbaa !18
  %984 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 3
  store ptr @.str.44, ptr %984, align 8, !tbaa !19
  %985 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 4
  store ptr @.str.45, ptr %985, align 8, !tbaa !20
  %986 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 5
  store ptr %97, ptr %986, align 8, !tbaa !21
  %987 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 6
  store ptr %99, ptr %987, align 8, !tbaa !22
  %988 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 7
  store ptr %103, ptr %988, align 8, !tbaa !23
  %989 = getelementptr inbounds %struct.hybrid_test_vector, ptr %107, i32 0, i32 8
  store ptr %105, ptr %989, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %108) #11
  call void @llvm.memset.p0.i64(ptr align 8 %108, i8 0, i64 24, i1 false)
  br label %990

990:                                              ; preds = %980
  %991 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %108, ptr noundef @.str.89)
  %992 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %991, ptr %992, align 4
  %993 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  %994 = load i32, ptr %993, align 4
  %995 = call zeroext i1 @s2n_result_is_ok(i32 %994)
  br i1 %995, label %997, label %996

996:                                              ; preds = %990
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6054

997:                                              ; preds = %990
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  call void @llvm.lifetime.start.p0(i64 24, ptr %110) #11
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 24, i1 false)
  br label %1000

1000:                                             ; preds = %999
  %1001 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %110, ptr noundef @.str.90)
  %1002 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %1001, ptr %1002, align 4
  %1003 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  %1004 = load i32, ptr %1003, align 4
  %1005 = call zeroext i1 @s2n_result_is_ok(i32 %1004)
  br i1 %1005, label %1007, label %1006

1006:                                             ; preds = %1000
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6052

1007:                                             ; preds = %1000
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 72, ptr %112) #11
  %1010 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 0
  store ptr @s2n_secp256r1_mlkem_768, ptr %1010, align 8, !tbaa !15
  %1011 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1011, align 8, !tbaa !17
  %1012 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 2
  store ptr @.str.43, ptr %1012, align 8, !tbaa !18
  %1013 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 3
  store ptr @.str.44, ptr %1013, align 8, !tbaa !19
  %1014 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 4
  store ptr @.str.45, ptr %1014, align 8, !tbaa !20
  %1015 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 5
  store ptr %97, ptr %1015, align 8, !tbaa !21
  %1016 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 6
  store ptr %99, ptr %1016, align 8, !tbaa !22
  %1017 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 7
  store ptr %108, ptr %1017, align 8, !tbaa !23
  %1018 = getelementptr inbounds %struct.hybrid_test_vector, ptr %112, i32 0, i32 8
  store ptr %110, ptr %1018, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %113) #11
  call void @llvm.memset.p0.i64(ptr align 8 %113, i8 0, i64 24, i1 false)
  br label %1019

1019:                                             ; preds = %1009
  %1020 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %113, ptr noundef @.str.91)
  %1021 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  store i32 %1020, ptr %1021, align 4
  %1022 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  %1023 = load i32, ptr %1022, align 4
  %1024 = call zeroext i1 @s2n_result_is_ok(i32 %1023)
  br i1 %1024, label %1026, label %1025

1025:                                             ; preds = %1019
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6050

1026:                                             ; preds = %1019
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  call void @llvm.lifetime.start.p0(i64 24, ptr %115) #11
  call void @llvm.memset.p0.i64(ptr align 8 %115, i8 0, i64 24, i1 false)
  br label %1029

1029:                                             ; preds = %1028
  %1030 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %115, ptr noundef @.str.92)
  %1031 = getelementptr inbounds %struct.s2n_result, ptr %116, i32 0, i32 0
  store i32 %1030, ptr %1031, align 4
  %1032 = getelementptr inbounds %struct.s2n_result, ptr %116, i32 0, i32 0
  %1033 = load i32, ptr %1032, align 4
  %1034 = call zeroext i1 @s2n_result_is_ok(i32 %1033)
  br i1 %1034, label %1036, label %1035

1035:                                             ; preds = %1029
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6048

1036:                                             ; preds = %1029
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037
  call void @llvm.lifetime.start.p0(i64 72, ptr %117) #11
  %1039 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 0
  store ptr @s2n_x25519_mlkem_768, ptr %1039, align 8, !tbaa !15
  %1040 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 1
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %1040, align 8, !tbaa !17
  %1041 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 2
  store ptr @.str.43, ptr %1041, align 8, !tbaa !18
  %1042 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 3
  store ptr @.str.52, ptr %1042, align 8, !tbaa !19
  %1043 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 4
  store ptr @.str.53, ptr %1043, align 8, !tbaa !20
  %1044 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 5
  store ptr %97, ptr %1044, align 8, !tbaa !21
  %1045 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 6
  store ptr %101, ptr %1045, align 8, !tbaa !22
  %1046 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 7
  store ptr %113, ptr %1046, align 8, !tbaa !23
  %1047 = getelementptr inbounds %struct.hybrid_test_vector, ptr %117, i32 0, i32 8
  store ptr %115, ptr %1047, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr %118) #11
  call void @llvm.memset.p0.i64(ptr align 8 %118, i8 0, i64 24, i1 false)
  br label %1048

1048:                                             ; preds = %1038
  %1049 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %118, ptr noundef @.str.93)
  %1050 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %1049, ptr %1050, align 4
  %1051 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  %1052 = load i32, ptr %1051, align 4
  %1053 = call zeroext i1 @s2n_result_is_ok(i32 %1052)
  br i1 %1053, label %1055, label %1054

1054:                                             ; preds = %1048
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6046

1055:                                             ; preds = %1048
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

1057:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 24, ptr %120) #11
  call void @llvm.memset.p0.i64(ptr align 8 %120, i8 0, i64 24, i1 false)
  br label %1058

1058:                                             ; preds = %1057
  %1059 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %120, ptr noundef @.str.94)
  %1060 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %1059, ptr %1060, align 4
  %1061 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %1062 = load i32, ptr %1061, align 4
  %1063 = call zeroext i1 @s2n_result_is_ok(i32 %1062)
  br i1 %1063, label %1065, label %1064

1064:                                             ; preds = %1058
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6044

1065:                                             ; preds = %1058
  br label %1066

1066:                                             ; preds = %1065
  br label %1067

1067:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 72, ptr %122) #11
  %1068 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 0
  store ptr @s2n_x25519_mlkem_768, ptr %1068, align 8, !tbaa !15
  %1069 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 1
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1069, align 8, !tbaa !17
  %1070 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 2
  store ptr @.str.43, ptr %1070, align 8, !tbaa !18
  %1071 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 3
  store ptr @.str.52, ptr %1071, align 8, !tbaa !19
  %1072 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 4
  store ptr @.str.53, ptr %1072, align 8, !tbaa !20
  %1073 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 5
  store ptr %97, ptr %1073, align 8, !tbaa !21
  %1074 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 6
  store ptr %101, ptr %1074, align 8, !tbaa !22
  %1075 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 7
  store ptr %118, ptr %1075, align 8, !tbaa !23
  %1076 = getelementptr inbounds %struct.hybrid_test_vector, ptr %122, i32 0, i32 8
  store ptr %120, ptr %1076, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 128, ptr %123) #11
  store ptr %21, ptr %123, align 8, !tbaa !9
  %1077 = getelementptr inbounds ptr, ptr %123, i64 1
  store ptr %26, ptr %1077, align 8, !tbaa !9
  %1078 = getelementptr inbounds ptr, ptr %123, i64 2
  store ptr %35, ptr %1078, align 8, !tbaa !9
  %1079 = getelementptr inbounds ptr, ptr %123, i64 3
  store ptr %40, ptr %1079, align 8, !tbaa !9
  %1080 = getelementptr inbounds ptr, ptr %123, i64 4
  store ptr %59, ptr %1080, align 8, !tbaa !9
  %1081 = getelementptr inbounds ptr, ptr %123, i64 5
  store ptr %64, ptr %1081, align 8, !tbaa !9
  %1082 = getelementptr inbounds ptr, ptr %123, i64 6
  store ptr %69, ptr %1082, align 8, !tbaa !9
  %1083 = getelementptr inbounds ptr, ptr %123, i64 7
  store ptr %74, ptr %1083, align 8, !tbaa !9
  %1084 = getelementptr inbounds ptr, ptr %123, i64 8
  store ptr %79, ptr %1084, align 8, !tbaa !9
  %1085 = getelementptr inbounds ptr, ptr %123, i64 9
  store ptr %84, ptr %1085, align 8, !tbaa !9
  %1086 = getelementptr inbounds ptr, ptr %123, i64 10
  store ptr %91, ptr %1086, align 8, !tbaa !9
  %1087 = getelementptr inbounds ptr, ptr %123, i64 11
  store ptr %96, ptr %1087, align 8, !tbaa !9
  %1088 = getelementptr inbounds ptr, ptr %123, i64 12
  store ptr %107, ptr %1088, align 8, !tbaa !9
  %1089 = getelementptr inbounds ptr, ptr %123, i64 13
  store ptr %112, ptr %1089, align 8, !tbaa !9
  %1090 = getelementptr inbounds ptr, ptr %123, i64 14
  store ptr %117, ptr %1090, align 8, !tbaa !9
  %1091 = getelementptr inbounds ptr, ptr %123, i64 15
  store ptr %122, ptr %1091, align 8, !tbaa !9
  br label %1092

1092:                                             ; preds = %1067
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = add nsw i32 %1093, 1
  store i32 %1094, ptr @test_count, align 4, !tbaa !5
  br label %1095

1095:                                             ; preds = %1092
  br label %1096

1096:                                             ; preds = %1095
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  store i32 0, ptr %124, align 4, !tbaa !5
  br label %1097

1097:                                             ; preds = %2937, %1096
  %1098 = load i32, ptr %124, align 4, !tbaa !5
  %1099 = sext i32 %1098 to i64
  %1100 = icmp ult i64 %1099, 16
  br i1 %1100, label %1102, label %1101

1101:                                             ; preds = %1097
  store i32 128, ptr %12, align 4
  br label %2940

1102:                                             ; preds = %1097
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #11
  %1103 = load i32, ptr %124, align 4, !tbaa !5
  %1104 = sext i32 %1103 to i64
  %1105 = getelementptr inbounds [16 x ptr], ptr %123, i64 0, i64 %1104
  %1106 = load ptr, ptr %1105, align 8, !tbaa !9
  store ptr %1106, ptr %125, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #11
  %1107 = load ptr, ptr %125, align 8, !tbaa !9
  %1108 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1107, i32 0, i32 0
  %1109 = load ptr, ptr %1108, align 8, !tbaa !15
  store ptr %1109, ptr %126, align 8, !tbaa !9
  %1110 = load ptr, ptr %126, align 8, !tbaa !9
  %1111 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %1110)
  br i1 %1111, label %1120, label %1112

1112:                                             ; preds = %1102
  %1113 = load ptr, ptr %126, align 8, !tbaa !9
  %1114 = getelementptr inbounds %struct.s2n_kem_group, ptr %1113, i32 0, i32 2
  %1115 = load ptr, ptr %1114, align 8, !tbaa !25
  %1116 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %1115, i32 0, i32 2
  %1117 = load ptr, ptr %1116, align 8, !tbaa !28
  %1118 = icmp eq ptr %1117, null
  br i1 %1118, label %1119, label %1120

1119:                                             ; preds = %1112
  store i32 130, ptr %12, align 4
  br label %2934

1120:                                             ; preds = %1112, %1102
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #11
  store ptr null, ptr %127, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #11
  store ptr null, ptr %128, align 8, !tbaa !9
  br label %1121

1121:                                             ; preds = %1120
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = add nsw i32 %1122, 1
  store i32 %1123, ptr @test_count, align 4, !tbaa !5
  %1124 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1124, ptr %127, align 8, !tbaa !9
  %1125 = icmp eq ptr %1124, null
  br i1 %1125, label %1126, label %1179

1126:                                             ; preds = %1121
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %1129 = call ptr @__errno_location() #12
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  store i32 %1130, ptr %129, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = call i32 @s2n_print_stacktrace(ptr noundef %1131)
  %1133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1134 = trunc i8 %1133 to i1
  br i1 %1134, label %1135, label %1157

1135:                                             ; preds = %1128
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = call i32 @fileno(ptr noundef %1136) #11
  %1138 = call i32 @isatty(i32 noundef %1137) #11
  %1139 = icmp ne i32 %1138, 0
  br i1 %1139, label %1140, label %1157

1140:                                             ; preds = %1135
  %1141 = load i32, ptr %129, align 4, !tbaa !5
  %1142 = call ptr @__errno_location() #12
  store i32 %1141, ptr %1142, align 4, !tbaa !5
  %1143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror(i32 noundef %1146, ptr noundef @.str.33)
  %1148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call ptr @s2n_strerror_debug(i32 noundef %1149, ptr noundef @.str.33)
  %1151 = call ptr @__errno_location() #12
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @strerror(i32 noundef %1152) #11
  %1154 = call ptr @__errno_location() #12
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1143, ptr noundef @.str.31, i32 noundef %1144, ptr noundef @.str.95, ptr noundef @.str.30, i32 noundef 498, ptr noundef %1147, ptr noundef %1150, ptr noundef %1153, i32 noundef %1155) #11
  br label %1174

1157:                                             ; preds = %1135, %1128
  %1158 = load i32, ptr %129, align 4, !tbaa !5
  %1159 = call ptr @__errno_location() #12
  store i32 %1158, ptr %1159, align 4, !tbaa !5
  %1160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1161 = load i32, ptr @test_count, align 4, !tbaa !5
  %1162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @s2n_strerror(i32 noundef %1163, ptr noundef @.str.33)
  %1165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror_debug(i32 noundef %1166, ptr noundef @.str.33)
  %1168 = call ptr @__errno_location() #12
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #11
  %1171 = call ptr @__errno_location() #12
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1160, ptr noundef @.str.34, i32 noundef %1161, ptr noundef @.str.95, ptr noundef @.str.30, i32 noundef 498, ptr noundef %1164, ptr noundef %1167, ptr noundef %1170, i32 noundef %1172) #11
  br label %1174

1174:                                             ; preds = %1157, %1140
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

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

1177:                                             ; No predecessors!
  br label %1178

1178:                                             ; preds = %1177
  br label %1179

1179:                                             ; preds = %1178, %1121
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180
  br label %1182

1182:                                             ; preds = %1181
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = add nsw i32 %1183, 1
  store i32 %1184, ptr @test_count, align 4, !tbaa !5
  %1185 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1185, ptr %128, align 8, !tbaa !9
  %1186 = icmp eq ptr %1185, null
  br i1 %1186, label %1187, label %1240

1187:                                             ; preds = %1182
  br label %1188

1188:                                             ; preds = %1187
  br label %1189

1189:                                             ; preds = %1188
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %1190 = call ptr @__errno_location() #12
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  store i32 %1191, ptr %130, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = call i32 @s2n_print_stacktrace(ptr noundef %1192)
  %1194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1195 = trunc i8 %1194 to i1
  br i1 %1195, label %1196, label %1218

1196:                                             ; preds = %1189
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @fileno(ptr noundef %1197) #11
  %1199 = call i32 @isatty(i32 noundef %1198) #11
  %1200 = icmp ne i32 %1199, 0
  br i1 %1200, label %1201, label %1218

1201:                                             ; preds = %1196
  %1202 = load i32, ptr %130, align 4, !tbaa !5
  %1203 = call ptr @__errno_location() #12
  store i32 %1202, ptr %1203, align 4, !tbaa !5
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = load i32, ptr @test_count, align 4, !tbaa !5
  %1206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = call ptr @s2n_strerror(i32 noundef %1207, ptr noundef @.str.33)
  %1209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror_debug(i32 noundef %1210, ptr noundef @.str.33)
  %1212 = call ptr @__errno_location() #12
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call ptr @strerror(i32 noundef %1213) #11
  %1215 = call ptr @__errno_location() #12
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1204, ptr noundef @.str.31, i32 noundef %1205, ptr noundef @.str.96, ptr noundef @.str.30, i32 noundef 499, ptr noundef %1208, ptr noundef %1211, ptr noundef %1214, i32 noundef %1216) #11
  br label %1235

1218:                                             ; preds = %1196, %1189
  %1219 = load i32, ptr %130, align 4, !tbaa !5
  %1220 = call ptr @__errno_location() #12
  store i32 %1219, ptr %1220, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = load i32, ptr @test_count, align 4, !tbaa !5
  %1223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror(i32 noundef %1224, ptr noundef @.str.33)
  %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_debug(i32 noundef %1227, ptr noundef @.str.33)
  %1229 = call ptr @__errno_location() #12
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @strerror(i32 noundef %1230) #11
  %1232 = call ptr @__errno_location() #12
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1221, ptr noundef @.str.34, i32 noundef %1222, ptr noundef @.str.96, ptr noundef @.str.30, i32 noundef 499, ptr noundef %1225, ptr noundef %1228, ptr noundef %1231, i32 noundef %1233) #11
  br label %1235

1235:                                             ; preds = %1218, %1201
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %1236

1236:                                             ; preds = %1235
  br label %1237

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

1238:                                             ; No predecessors!
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1239, %1182
  br label %1241

1241:                                             ; preds = %1240
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = add nsw i32 %1244, 1
  store i32 %1245, ptr @test_count, align 4, !tbaa !5
  %1246 = load ptr, ptr %127, align 8, !tbaa !9
  %1247 = load ptr, ptr %128, align 8, !tbaa !9
  %1248 = load ptr, ptr %125, align 8, !tbaa !9
  %1249 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1248, i32 0, i32 3
  %1250 = load ptr, ptr %1249, align 8, !tbaa !19
  %1251 = load ptr, ptr %125, align 8, !tbaa !9
  %1252 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1251, i32 0, i32 4
  %1253 = load ptr, ptr %1252, align 8, !tbaa !20
  %1254 = load ptr, ptr %126, align 8, !tbaa !9
  %1255 = load ptr, ptr %125, align 8, !tbaa !9
  %1256 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1255, i32 0, i32 5
  %1257 = load ptr, ptr %1256, align 8, !tbaa !21
  %1258 = call i32 @set_up_conns(ptr noundef %1246, ptr noundef %1247, ptr noundef %1250, ptr noundef %1253, ptr noundef %1254, ptr noundef %1257)
  %1259 = icmp eq i32 %1258, -1
  br i1 %1259, label %1260, label %1313

1260:                                             ; preds = %1243
  br label %1261

1261:                                             ; preds = %1260
  br label %1262

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

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

1274:                                             ; preds = %1269
  %1275 = load i32, ptr %131, align 4, !tbaa !5
  %1276 = call ptr @__errno_location() #12
  store i32 %1275, ptr %1276, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef @.str.33)
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef @.str.33)
  %1285 = call ptr @__errno_location() #12
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call ptr @strerror(i32 noundef %1286) #11
  %1288 = call ptr @__errno_location() #12
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1277, ptr noundef @.str.31, i32 noundef %1278, ptr noundef @.str.97, ptr noundef @.str.30, i32 noundef 505, ptr noundef %1281, ptr noundef %1284, ptr noundef %1287, i32 noundef %1289) #11
  br label %1308

1291:                                             ; preds = %1269, %1262
  %1292 = load i32, ptr %131, align 4, !tbaa !5
  %1293 = call ptr @__errno_location() #12
  store i32 %1292, ptr %1293, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef @.str.33)
  %1299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror_debug(i32 noundef %1300, ptr noundef @.str.33)
  %1302 = call ptr @__errno_location() #12
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @strerror(i32 noundef %1303) #11
  %1305 = call ptr @__errno_location() #12
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1294, ptr noundef @.str.34, i32 noundef %1295, ptr noundef @.str.97, ptr noundef @.str.30, i32 noundef 505, ptr noundef %1298, ptr noundef %1301, ptr noundef %1304, i32 noundef %1306) #11
  br label %1308

1308:                                             ; preds = %1291, %1274
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

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

1311:                                             ; No predecessors!
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312, %1243
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 24, ptr %132) #11
  call void @llvm.memset.p0.i64(ptr align 8 %132, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %133) #11
  call void @llvm.memset.p0.i64(ptr align 8 %133, i8 0, i64 24, i1 false)
  br label %1316

1316:                                             ; preds = %1315
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = add nsw i32 %1317, 1
  store i32 %1318, ptr @test_count, align 4, !tbaa !5
  %1319 = load ptr, ptr %127, align 8, !tbaa !9
  %1320 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %1319, ptr noundef %132)
  %1321 = icmp eq i32 %1320, -1
  br i1 %1321, label %1322, label %1375

1322:                                             ; preds = %1316
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

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

1336:                                             ; preds = %1331
  %1337 = load i32, ptr %134, align 4, !tbaa !5
  %1338 = call ptr @__errno_location() #12
  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.33)
  %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.33)
  %1347 = call ptr @__errno_location() #12
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #11
  %1350 = call ptr @__errno_location() #12
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.31, i32 noundef %1340, ptr noundef @.str.98, ptr noundef @.str.30, i32 noundef 510, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #11
  br label %1370

1353:                                             ; preds = %1331, %1324
  %1354 = load i32, ptr %134, align 4, !tbaa !5
  %1355 = call ptr @__errno_location() #12
  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.33)
  %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.33)
  %1364 = call ptr @__errno_location() #12
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @strerror(i32 noundef %1365) #11
  %1367 = call ptr @__errno_location() #12
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef @.str.34, i32 noundef %1357, ptr noundef @.str.98, ptr noundef @.str.30, i32 noundef 510, ptr noundef %1360, ptr noundef %1363, ptr noundef %1366, i32 noundef %1368) #11
  br label %1370

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

1371:                                             ; preds = %1370
  br label %1372

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

1373:                                             ; No predecessors!
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374, %1316
  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 %128, align 8, !tbaa !9
  %1382 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %1381, ptr noundef %133)
  %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 %135) #11
  %1387 = call ptr @__errno_location() #12
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  store i32 %1388, ptr %135, 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) #11
  %1396 = call i32 @isatty(i32 noundef %1395) #11
  %1397 = icmp ne i32 %1396, 0
  br i1 %1397, label %1398, label %1415

1398:                                             ; preds = %1393
  %1399 = load i32, ptr %135, align 4, !tbaa !5
  %1400 = call ptr @__errno_location() #12
  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.33)
  %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.33)
  %1409 = call ptr @__errno_location() #12
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #11
  %1412 = call ptr @__errno_location() #12
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef @.str.31, i32 noundef %1402, ptr noundef @.str.99, ptr noundef @.str.30, i32 noundef 511, ptr noundef %1405, ptr noundef %1408, ptr noundef %1411, i32 noundef %1413) #11
  br label %1432

1415:                                             ; preds = %1393, %1386
  %1416 = load i32, ptr %135, align 4, !tbaa !5
  %1417 = call ptr @__errno_location() #12
  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.33)
  %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.33)
  %1426 = call ptr @__errno_location() #12
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #11
  %1429 = call ptr @__errno_location() #12
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef @.str.34, i32 noundef %1419, ptr noundef @.str.99, ptr noundef @.str.30, i32 noundef 511, ptr noundef %1422, ptr noundef %1425, ptr noundef %1428, i32 noundef %1430) #11
  br label %1432

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

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433
  call void @exit(i32 noundef 1) #13
  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
  br label %1441

1441:                                             ; preds = %1440
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = add nsw i32 %1442, 1
  store i32 %1443, ptr @test_count, align 4, !tbaa !5
  %1444 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 1
  %1445 = load i32, ptr %1444, align 8, !tbaa !30
  %1446 = getelementptr inbounds %struct.s2n_blob, ptr %133, i32 0, i32 1
  %1447 = load i32, ptr %1446, align 8, !tbaa !30
  %1448 = icmp eq i32 %1445, %1447
  br i1 %1448, label %1502, label %1449

1449:                                             ; preds = %1441
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

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

1458:                                             ; preds = %1451
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = call i32 @fileno(ptr noundef %1459) #11
  %1461 = call i32 @isatty(i32 noundef %1460) #11
  %1462 = icmp ne i32 %1461, 0
  br i1 %1462, label %1463, label %1480

1463:                                             ; preds = %1458
  %1464 = load i32, ptr %136, align 4, !tbaa !5
  %1465 = call ptr @__errno_location() #12
  store i32 %1464, ptr %1465, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror(i32 noundef %1469, ptr noundef @.str.33)
  %1471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call ptr @s2n_strerror_debug(i32 noundef %1472, ptr noundef @.str.33)
  %1474 = call ptr @__errno_location() #12
  %1475 = load i32, ptr %1474, align 4, !tbaa !5
  %1476 = call ptr @strerror(i32 noundef %1475) #11
  %1477 = call ptr @__errno_location() #12
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  %1479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1466, ptr noundef @.str.31, i32 noundef %1467, ptr noundef @.str.100, ptr noundef @.str.30, i32 noundef 514, ptr noundef %1470, ptr noundef %1473, ptr noundef %1476, i32 noundef %1478) #11
  br label %1497

1480:                                             ; preds = %1458, %1451
  %1481 = load i32, ptr %136, align 4, !tbaa !5
  %1482 = call ptr @__errno_location() #12
  store i32 %1481, ptr %1482, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror(i32 noundef %1486, ptr noundef @.str.33)
  %1488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror_debug(i32 noundef %1489, ptr noundef @.str.33)
  %1491 = call ptr @__errno_location() #12
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #11
  %1494 = call ptr @__errno_location() #12
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef @.str.34, i32 noundef %1484, ptr noundef @.str.100, ptr noundef @.str.30, i32 noundef 514, ptr noundef %1487, ptr noundef %1490, ptr noundef %1493, i32 noundef %1495) #11
  br label %1497

1497:                                             ; preds = %1480, %1463
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

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

1500:                                             ; No predecessors!
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501, %1441
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  %1506 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 1
  %1507 = load i32, ptr %1506, align 8, !tbaa !30
  %1508 = icmp ne i32 %1507, 0
  br i1 %1508, label %1509, label %1578

1509:                                             ; preds = %1505
  br label %1510

1510:                                             ; preds = %1509
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = add nsw i32 %1511, 1
  store i32 %1512, ptr @test_count, align 4, !tbaa !5
  %1513 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 0
  %1514 = load ptr, ptr %1513, align 8, !tbaa !32
  %1515 = getelementptr inbounds %struct.s2n_blob, ptr %133, i32 0, i32 0
  %1516 = load ptr, ptr %1515, align 8, !tbaa !32
  %1517 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 1
  %1518 = load i32, ptr %1517, align 8, !tbaa !30
  %1519 = zext i32 %1518 to i64
  %1520 = call i32 @memcmp(ptr noundef %1514, ptr noundef %1516, i64 noundef %1519) #14
  %1521 = icmp eq i32 %1520, 0
  br i1 %1521, label %1575, label %1522

1522:                                             ; preds = %1510
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

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

1531:                                             ; preds = %1524
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = call i32 @fileno(ptr noundef %1532) #11
  %1534 = call i32 @isatty(i32 noundef %1533) #11
  %1535 = icmp ne i32 %1534, 0
  br i1 %1535, label %1536, label %1553

1536:                                             ; preds = %1531
  %1537 = load i32, ptr %137, align 4, !tbaa !5
  %1538 = call ptr @__errno_location() #12
  store i32 %1537, ptr %1538, align 4, !tbaa !5
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = load i32, ptr @test_count, align 4, !tbaa !5
  %1541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror(i32 noundef %1542, ptr noundef @.str.33)
  %1544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror_debug(i32 noundef %1545, ptr noundef @.str.33)
  %1547 = call ptr @__errno_location() #12
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @strerror(i32 noundef %1548) #11
  %1550 = call ptr @__errno_location() #12
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1539, ptr noundef @.str.31, i32 noundef %1540, ptr noundef @.str.101, ptr noundef @.str.30, i32 noundef 514, ptr noundef %1543, ptr noundef %1546, ptr noundef %1549, i32 noundef %1551) #11
  br label %1570

1553:                                             ; preds = %1531, %1524
  %1554 = load i32, ptr %137, align 4, !tbaa !5
  %1555 = call ptr @__errno_location() #12
  store i32 %1554, ptr %1555, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror(i32 noundef %1559, ptr noundef @.str.33)
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror_debug(i32 noundef %1562, ptr noundef @.str.33)
  %1564 = call ptr @__errno_location() #12
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @strerror(i32 noundef %1565) #11
  %1567 = call ptr @__errno_location() #12
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1556, ptr noundef @.str.34, i32 noundef %1557, ptr noundef @.str.101, ptr noundef @.str.30, i32 noundef 514, ptr noundef %1560, ptr noundef %1563, ptr noundef %1566, i32 noundef %1568) #11
  br label %1570

1570:                                             ; preds = %1553, %1536
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %1571

1571:                                             ; preds = %1570
  br label %1572

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

1573:                                             ; No predecessors!
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

1575:                                             ; preds = %1574, %1510
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

1578:                                             ; preds = %1577, %1505
  br label %1579

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = add nsw i32 %1584, 1
  store i32 %1585, ptr @test_count, align 4, !tbaa !5
  %1586 = load ptr, ptr %125, align 8, !tbaa !9
  %1587 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1586, i32 0, i32 6
  %1588 = load ptr, ptr %1587, align 8, !tbaa !22
  %1589 = getelementptr inbounds %struct.s2n_blob, ptr %1588, i32 0, i32 1
  %1590 = load i32, ptr %1589, align 8, !tbaa !30
  %1591 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 1
  %1592 = load i32, ptr %1591, align 8, !tbaa !30
  %1593 = icmp eq i32 %1590, %1592
  br i1 %1593, label %1647, label %1594

1594:                                             ; preds = %1583
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

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

1603:                                             ; preds = %1596
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @fileno(ptr noundef %1604) #11
  %1606 = call i32 @isatty(i32 noundef %1605) #11
  %1607 = icmp ne i32 %1606, 0
  br i1 %1607, label %1608, label %1625

1608:                                             ; preds = %1603
  %1609 = load i32, ptr %138, align 4, !tbaa !5
  %1610 = call ptr @__errno_location() #12
  store i32 %1609, ptr %1610, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %1613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror(i32 noundef %1614, ptr noundef @.str.33)
  %1616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror_debug(i32 noundef %1617, ptr noundef @.str.33)
  %1619 = call ptr @__errno_location() #12
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @strerror(i32 noundef %1620) #11
  %1622 = call ptr @__errno_location() #12
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1611, ptr noundef @.str.31, i32 noundef %1612, ptr noundef @.str.102, ptr noundef @.str.30, i32 noundef 515, ptr noundef %1615, ptr noundef %1618, ptr noundef %1621, i32 noundef %1623) #11
  br label %1642

1625:                                             ; preds = %1603, %1596
  %1626 = load i32, ptr %138, align 4, !tbaa !5
  %1627 = call ptr @__errno_location() #12
  store i32 %1626, ptr %1627, align 4, !tbaa !5
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror(i32 noundef %1631, ptr noundef @.str.33)
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef @.str.33)
  %1636 = call ptr @__errno_location() #12
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @strerror(i32 noundef %1637) #11
  %1639 = call ptr @__errno_location() #12
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1628, ptr noundef @.str.34, i32 noundef %1629, ptr noundef @.str.102, ptr noundef @.str.30, i32 noundef 515, ptr noundef %1632, ptr noundef %1635, ptr noundef %1638, i32 noundef %1640) #11
  br label %1642

1642:                                             ; preds = %1625, %1608
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

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

1645:                                             ; No predecessors!
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

1647:                                             ; preds = %1646, %1583
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  br label %1650

1650:                                             ; preds = %1649
  %1651 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 1
  %1652 = load i32, ptr %1651, align 8, !tbaa !30
  %1653 = icmp ne i32 %1652, 0
  br i1 %1653, label %1654, label %1726

1654:                                             ; preds = %1650
  br label %1655

1655:                                             ; preds = %1654
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = load ptr, ptr %125, align 8, !tbaa !9
  %1659 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1658, i32 0, i32 6
  %1660 = load ptr, ptr %1659, align 8, !tbaa !22
  %1661 = getelementptr inbounds %struct.s2n_blob, ptr %1660, i32 0, i32 0
  %1662 = load ptr, ptr %1661, align 8, !tbaa !32
  %1663 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 0
  %1664 = load ptr, ptr %1663, align 8, !tbaa !32
  %1665 = getelementptr inbounds %struct.s2n_blob, ptr %132, i32 0, i32 1
  %1666 = load i32, ptr %1665, align 8, !tbaa !30
  %1667 = zext i32 %1666 to i64
  %1668 = call i32 @memcmp(ptr noundef %1662, ptr noundef %1664, i64 noundef %1667) #14
  %1669 = icmp eq i32 %1668, 0
  br i1 %1669, label %1723, label %1670

1670:                                             ; preds = %1655
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

1672:                                             ; preds = %1671
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %1673 = call ptr @__errno_location() #12
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  store i32 %1674, ptr %139, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @s2n_print_stacktrace(ptr noundef %1675)
  %1677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1678 = trunc i8 %1677 to i1
  br i1 %1678, label %1679, label %1701

1679:                                             ; preds = %1672
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @fileno(ptr noundef %1680) #11
  %1682 = call i32 @isatty(i32 noundef %1681) #11
  %1683 = icmp ne i32 %1682, 0
  br i1 %1683, label %1684, label %1701

1684:                                             ; preds = %1679
  %1685 = load i32, ptr %139, align 4, !tbaa !5
  %1686 = call ptr @__errno_location() #12
  store i32 %1685, ptr %1686, align 4, !tbaa !5
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = load i32, ptr @test_count, align 4, !tbaa !5
  %1689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call ptr @s2n_strerror(i32 noundef %1690, ptr noundef @.str.33)
  %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_debug(i32 noundef %1693, ptr noundef @.str.33)
  %1695 = call ptr @__errno_location() #12
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call ptr @strerror(i32 noundef %1696) #11
  %1698 = call ptr @__errno_location() #12
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1687, ptr noundef @.str.31, i32 noundef %1688, ptr noundef @.str.103, ptr noundef @.str.30, i32 noundef 517, ptr noundef %1691, ptr noundef %1694, ptr noundef %1697, i32 noundef %1699) #11
  br label %1718

1701:                                             ; preds = %1679, %1672
  %1702 = load i32, ptr %139, align 4, !tbaa !5
  %1703 = call ptr @__errno_location() #12
  store i32 %1702, ptr %1703, align 4, !tbaa !5
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = load i32, ptr @test_count, align 4, !tbaa !5
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror(i32 noundef %1707, ptr noundef @.str.33)
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef @.str.33)
  %1712 = call ptr @__errno_location() #12
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #11
  %1715 = call ptr @__errno_location() #12
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1704, ptr noundef @.str.34, i32 noundef %1705, ptr noundef @.str.103, ptr noundef @.str.30, i32 noundef 517, ptr noundef %1708, ptr noundef %1711, ptr noundef %1714, i32 noundef %1716) #11
  br label %1718

1718:                                             ; preds = %1701, %1684
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

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

1721:                                             ; No predecessors!
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722, %1655
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  br label %1726

1726:                                             ; preds = %1725, %1650
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  %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 = load ptr, ptr %127, align 8, !tbaa !9
  %1733 = call i32 @assert_kem_group_params_freed(ptr noundef %1732)
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1735, label %1788

1735:                                             ; preds = %1729
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %1738 = call ptr @__errno_location() #12
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  store i32 %1739, ptr %140, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @s2n_print_stacktrace(ptr noundef %1740)
  %1742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1743 = trunc i8 %1742 to i1
  br i1 %1743, label %1744, label %1766

1744:                                             ; preds = %1737
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @fileno(ptr noundef %1745) #11
  %1747 = call i32 @isatty(i32 noundef %1746) #11
  %1748 = icmp ne i32 %1747, 0
  br i1 %1748, label %1749, label %1766

1749:                                             ; preds = %1744
  %1750 = load i32, ptr %140, align 4, !tbaa !5
  %1751 = call ptr @__errno_location() #12
  store i32 %1750, ptr %1751, align 4, !tbaa !5
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %1754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror(i32 noundef %1755, ptr noundef @.str.33)
  %1757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror_debug(i32 noundef %1758, ptr noundef @.str.33)
  %1760 = call ptr @__errno_location() #12
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #11
  %1763 = call ptr @__errno_location() #12
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1752, ptr noundef @.str.31, i32 noundef %1753, ptr noundef @.str.104, ptr noundef @.str.30, i32 noundef 519, ptr noundef %1756, ptr noundef %1759, ptr noundef %1762, i32 noundef %1764) #11
  br label %1783

1766:                                             ; preds = %1744, %1737
  %1767 = load i32, ptr %140, align 4, !tbaa !5
  %1768 = call ptr @__errno_location() #12
  store i32 %1767, ptr %1768, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %1771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror(i32 noundef %1772, ptr noundef @.str.33)
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror_debug(i32 noundef %1775, ptr noundef @.str.33)
  %1777 = call ptr @__errno_location() #12
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #11
  %1780 = call ptr @__errno_location() #12
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1769, ptr noundef @.str.34, i32 noundef %1770, ptr noundef @.str.104, ptr noundef @.str.30, i32 noundef 519, ptr noundef %1773, ptr noundef %1776, ptr noundef %1779, i32 noundef %1781) #11
  br label %1783

1783:                                             ; preds = %1766, %1749
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

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

1786:                                             ; No predecessors!
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787, %1729
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = load ptr, ptr %128, align 8, !tbaa !9
  %1795 = call i32 @assert_kem_group_params_freed(ptr noundef %1794)
  %1796 = icmp eq i32 %1795, -1
  br i1 %1796, label %1797, label %1850

1797:                                             ; preds = %1791
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

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

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

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

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

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

1846:                                             ; preds = %1845
  br label %1847

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

1848:                                             ; No predecessors!
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

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

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = load ptr, ptr %127, align 8, !tbaa !9
  %1857 = load ptr, ptr %128, align 8, !tbaa !9
  %1858 = load ptr, ptr %125, align 8, !tbaa !9
  %1859 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1858, i32 0, i32 3
  %1860 = load ptr, ptr %1859, align 8, !tbaa !19
  %1861 = load ptr, ptr %125, align 8, !tbaa !9
  %1862 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1861, i32 0, i32 4
  %1863 = load ptr, ptr %1862, align 8, !tbaa !20
  %1864 = load ptr, ptr %126, align 8, !tbaa !9
  %1865 = load ptr, ptr %125, align 8, !tbaa !9
  %1866 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1865, i32 0, i32 5
  %1867 = load ptr, ptr %1866, align 8, !tbaa !21
  %1868 = call i32 @set_up_conns(ptr noundef %1856, ptr noundef %1857, ptr noundef %1860, ptr noundef %1863, ptr noundef %1864, ptr noundef %1867)
  %1869 = icmp eq i32 %1868, -1
  br i1 %1869, label %1870, label %1923

1870:                                             ; preds = %1853
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %1873 = call ptr @__errno_location() #12
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  store i32 %1874, ptr %142, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = call i32 @s2n_print_stacktrace(ptr noundef %1875)
  %1877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1878 = trunc i8 %1877 to i1
  br i1 %1878, label %1879, label %1901

1879:                                             ; preds = %1872
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @fileno(ptr noundef %1880) #11
  %1882 = call i32 @isatty(i32 noundef %1881) #11
  %1883 = icmp ne i32 %1882, 0
  br i1 %1883, label %1884, label %1901

1884:                                             ; preds = %1879
  %1885 = load i32, ptr %142, align 4, !tbaa !5
  %1886 = call ptr @__errno_location() #12
  store i32 %1885, ptr %1886, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror(i32 noundef %1890, ptr noundef @.str.33)
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror_debug(i32 noundef %1893, ptr noundef @.str.33)
  %1895 = call ptr @__errno_location() #12
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @strerror(i32 noundef %1896) #11
  %1898 = call ptr @__errno_location() #12
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef @.str.31, i32 noundef %1888, ptr noundef @.str.97, ptr noundef @.str.30, i32 noundef 524, ptr noundef %1891, ptr noundef %1894, ptr noundef %1897, i32 noundef %1899) #11
  br label %1918

1901:                                             ; preds = %1879, %1872
  %1902 = load i32, ptr %142, align 4, !tbaa !5
  %1903 = call ptr @__errno_location() #12
  store i32 %1902, ptr %1903, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror(i32 noundef %1907, ptr noundef @.str.33)
  %1909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef @.str.33)
  %1912 = call ptr @__errno_location() #12
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @strerror(i32 noundef %1913) #11
  %1915 = call ptr @__errno_location() #12
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef @.str.34, i32 noundef %1905, ptr noundef @.str.97, ptr noundef @.str.30, i32 noundef 524, ptr noundef %1908, ptr noundef %1911, ptr noundef %1914, i32 noundef %1916) #11
  br label %1918

1918:                                             ; preds = %1901, %1884
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

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

1921:                                             ; No predecessors!
  br label %1922

1922:                                             ; preds = %1921
  br label %1923

1923:                                             ; preds = %1922, %1853
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924
  call void @llvm.lifetime.start.p0(i64 592, ptr %143) #11
  call void @llvm.memset.p0.i64(ptr align 8 %143, i8 0, i64 592, i1 false)
  br label %1926

1926:                                             ; preds = %1925
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = add nsw i32 %1927, 1
  store i32 %1928, ptr @test_count, align 4, !tbaa !5
  %1929 = load ptr, ptr %125, align 8, !tbaa !9
  %1930 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1929, i32 0, i32 1
  %1931 = load ptr, ptr %1930, align 8, !tbaa !17
  %1932 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1931, i32 0, i32 11
  %1933 = load i32, ptr %1932, align 8, !tbaa !33
  %1934 = call i32 @s2n_tls13_keys_init(ptr noundef %143, i32 noundef %1933)
  %1935 = icmp eq i32 %1934, -1
  br i1 %1935, label %1936, label %1989

1936:                                             ; preds = %1926
  br label %1937

1937:                                             ; preds = %1936
  br label %1938

1938:                                             ; preds = %1937
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %1939 = call ptr @__errno_location() #12
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  store i32 %1940, ptr %144, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = call i32 @s2n_print_stacktrace(ptr noundef %1941)
  %1943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1944 = trunc i8 %1943 to i1
  br i1 %1944, label %1945, label %1967

1945:                                             ; preds = %1938
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = call i32 @fileno(ptr noundef %1946) #11
  %1948 = call i32 @isatty(i32 noundef %1947) #11
  %1949 = icmp ne i32 %1948, 0
  br i1 %1949, label %1950, label %1967

1950:                                             ; preds = %1945
  %1951 = load i32, ptr %144, align 4, !tbaa !5
  %1952 = call ptr @__errno_location() #12
  store i32 %1951, ptr %1952, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror(i32 noundef %1956, ptr noundef @.str.33)
  %1958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror_debug(i32 noundef %1959, ptr noundef @.str.33)
  %1961 = call ptr @__errno_location() #12
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @strerror(i32 noundef %1962) #11
  %1964 = call ptr @__errno_location() #12
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1953, ptr noundef @.str.31, i32 noundef %1954, ptr noundef @.str.106, ptr noundef @.str.30, i32 noundef 529, ptr noundef %1957, ptr noundef %1960, ptr noundef %1963, i32 noundef %1965) #11
  br label %1984

1967:                                             ; preds = %1945, %1938
  %1968 = load i32, ptr %144, align 4, !tbaa !5
  %1969 = call ptr @__errno_location() #12
  store i32 %1968, ptr %1969, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1973 = load i32, ptr %1972, align 4, !tbaa !5
  %1974 = call ptr @s2n_strerror(i32 noundef %1973, ptr noundef @.str.33)
  %1975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror_debug(i32 noundef %1976, ptr noundef @.str.33)
  %1978 = call ptr @__errno_location() #12
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @strerror(i32 noundef %1979) #11
  %1981 = call ptr @__errno_location() #12
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1970, ptr noundef @.str.34, i32 noundef %1971, ptr noundef @.str.106, ptr noundef @.str.30, i32 noundef 529, ptr noundef %1974, ptr noundef %1977, ptr noundef %1980, i32 noundef %1982) #11
  br label %1984

1984:                                             ; preds = %1967, %1950
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

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

1987:                                             ; No predecessors!
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

1989:                                             ; preds = %1988, %1926
  br label %1990

1990:                                             ; preds = %1989
  br label %1991

1991:                                             ; preds = %1990
  %1992 = load ptr, ptr %125, align 8, !tbaa !9
  %1993 = getelementptr inbounds %struct.hybrid_test_vector, ptr %1992, i32 0, i32 1
  %1994 = load ptr, ptr %1993, align 8, !tbaa !17
  %1995 = load ptr, ptr %127, align 8, !tbaa !9
  %1996 = getelementptr inbounds %struct.s2n_connection, ptr %1995, i32 0, i32 27
  %1997 = load ptr, ptr %1996, align 8, !tbaa !35
  %1998 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1997, i32 0, i32 0
  store ptr %1994, ptr %1998, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 56, ptr %145) #11
  br label %1999

1999:                                             ; preds = %1991
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = add nsw i32 %2000, 1
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = call i32 @s2n_hash_new(ptr noundef %145)
  %2003 = icmp eq i32 %2002, -1
  br i1 %2003, label %2004, label %2057

2004:                                             ; preds = %1999
  br label %2005

2005:                                             ; preds = %2004
  br label %2006

2006:                                             ; preds = %2005
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %2007 = call ptr @__errno_location() #12
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  store i32 %2008, ptr %146, 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) #11
  %2016 = call i32 @isatty(i32 noundef %2015) #11
  %2017 = icmp ne i32 %2016, 0
  br i1 %2017, label %2018, label %2035

2018:                                             ; preds = %2013
  %2019 = load i32, ptr %146, align 4, !tbaa !5
  %2020 = call ptr @__errno_location() #12
  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.33)
  %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.33)
  %2029 = call ptr @__errno_location() #12
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @strerror(i32 noundef %2030) #11
  %2032 = call ptr @__errno_location() #12
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2021, ptr noundef @.str.31, i32 noundef %2022, ptr noundef @.str.107, ptr noundef @.str.30, i32 noundef 533, ptr noundef %2025, ptr noundef %2028, ptr noundef %2031, i32 noundef %2033) #11
  br label %2052

2035:                                             ; preds = %2013, %2006
  %2036 = load i32, ptr %146, align 4, !tbaa !5
  %2037 = call ptr @__errno_location() #12
  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.33)
  %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.33)
  %2046 = call ptr @__errno_location() #12
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @strerror(i32 noundef %2047) #11
  %2049 = call ptr @__errno_location() #12
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2038, ptr noundef @.str.34, i32 noundef %2039, ptr noundef @.str.107, ptr noundef @.str.30, i32 noundef 533, ptr noundef %2042, ptr noundef %2045, ptr noundef %2048, i32 noundef %2050) #11
  br label %2052

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

2053:                                             ; preds = %2052
  br label %2054

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

2055:                                             ; No predecessors!
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

2057:                                             ; preds = %2056, %1999
  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 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %143, i32 0, i32 1
  %2064 = load i32, ptr %2063, align 4, !tbaa !65
  %2065 = call i32 @s2n_hash_init(ptr noundef %145, i32 noundef %2064)
  %2066 = icmp eq i32 %2065, -1
  br i1 %2066, label %2067, label %2120

2067:                                             ; preds = %2060
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

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

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

2081:                                             ; preds = %2076
  %2082 = load i32, ptr %147, align 4, !tbaa !5
  %2083 = call ptr @__errno_location() #12
  store i32 %2082, ptr %2083, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef @.str.33)
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror_debug(i32 noundef %2090, ptr noundef @.str.33)
  %2092 = call ptr @__errno_location() #12
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #11
  %2095 = call ptr @__errno_location() #12
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef @.str.31, i32 noundef %2085, ptr noundef @.str.108, ptr noundef @.str.30, i32 noundef 534, ptr noundef %2088, ptr noundef %2091, ptr noundef %2094, i32 noundef %2096) #11
  br label %2115

2098:                                             ; preds = %2076, %2069
  %2099 = load i32, ptr %147, align 4, !tbaa !5
  %2100 = call ptr @__errno_location() #12
  store i32 %2099, ptr %2100, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror(i32 noundef %2104, ptr noundef @.str.33)
  %2106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror_debug(i32 noundef %2107, ptr noundef @.str.33)
  %2109 = call ptr @__errno_location() #12
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call ptr @strerror(i32 noundef %2110) #11
  %2112 = call ptr @__errno_location() #12
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2101, ptr noundef @.str.34, i32 noundef %2102, ptr noundef @.str.108, ptr noundef @.str.30, i32 noundef 534, ptr noundef %2105, ptr noundef %2108, ptr noundef %2111, i32 noundef %2113) #11
  br label %2115

2115:                                             ; preds = %2098, %2081
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

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

2118:                                             ; No predecessors!
  br label %2119

2119:                                             ; preds = %2118
  br label %2120

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

2121:                                             ; preds = %2120
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

2123:                                             ; preds = %2122
  %2124 = load i32, ptr @test_count, align 4, !tbaa !5
  %2125 = add nsw i32 %2124, 1
  store i32 %2125, ptr @test_count, align 4, !tbaa !5
  %2126 = load ptr, ptr %125, align 8, !tbaa !9
  %2127 = getelementptr inbounds %struct.hybrid_test_vector, ptr %2126, i32 0, i32 2
  %2128 = load ptr, ptr %2127, align 8, !tbaa !18
  %2129 = load ptr, ptr %125, align 8, !tbaa !9
  %2130 = getelementptr inbounds %struct.hybrid_test_vector, ptr %2129, i32 0, i32 2
  %2131 = load ptr, ptr %2130, align 8, !tbaa !18
  %2132 = call i64 @strlen(ptr noundef %2131) #14
  %2133 = trunc i64 %2132 to i32
  %2134 = call i32 @s2n_hash_update(ptr noundef %145, ptr noundef %2128, i32 noundef %2133)
  %2135 = icmp eq i32 %2134, -1
  br i1 %2135, label %2136, label %2189

2136:                                             ; preds = %2123
  br label %2137

2137:                                             ; preds = %2136
  br label %2138

2138:                                             ; preds = %2137
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %2139 = call ptr @__errno_location() #12
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  store i32 %2140, ptr %148, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = call i32 @s2n_print_stacktrace(ptr noundef %2141)
  %2143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2144 = trunc i8 %2143 to i1
  br i1 %2144, label %2145, label %2167

2145:                                             ; preds = %2138
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @fileno(ptr noundef %2146) #11
  %2148 = call i32 @isatty(i32 noundef %2147) #11
  %2149 = icmp ne i32 %2148, 0
  br i1 %2149, label %2150, label %2167

2150:                                             ; preds = %2145
  %2151 = load i32, ptr %148, align 4, !tbaa !5
  %2152 = call ptr @__errno_location() #12
  store i32 %2151, ptr %2152, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror(i32 noundef %2156, ptr noundef @.str.33)
  %2158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror_debug(i32 noundef %2159, ptr noundef @.str.33)
  %2161 = call ptr @__errno_location() #12
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @strerror(i32 noundef %2162) #11
  %2164 = call ptr @__errno_location() #12
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2153, ptr noundef @.str.31, i32 noundef %2154, ptr noundef @.str.109, ptr noundef @.str.30, i32 noundef 535, ptr noundef %2157, ptr noundef %2160, ptr noundef %2163, i32 noundef %2165) #11
  br label %2184

2167:                                             ; preds = %2145, %2138
  %2168 = load i32, ptr %148, align 4, !tbaa !5
  %2169 = call ptr @__errno_location() #12
  store i32 %2168, ptr %2169, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror(i32 noundef %2173, ptr noundef @.str.33)
  %2175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror_debug(i32 noundef %2176, ptr noundef @.str.33)
  %2178 = call ptr @__errno_location() #12
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @strerror(i32 noundef %2179) #11
  %2181 = call ptr @__errno_location() #12
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2170, ptr noundef @.str.34, i32 noundef %2171, ptr noundef @.str.109, ptr noundef @.str.30, i32 noundef 535, ptr noundef %2174, ptr noundef %2177, ptr noundef %2180, i32 noundef %2182) #11
  br label %2184

2184:                                             ; preds = %2167, %2150
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

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

2187:                                             ; No predecessors!
  br label %2188

2188:                                             ; preds = %2187
  br label %2189

2189:                                             ; preds = %2188, %2123
  br label %2190

2190:                                             ; preds = %2189
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

2192:                                             ; preds = %2191
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = add nsw i32 %2193, 1
  store i32 %2194, ptr @test_count, align 4, !tbaa !5
  %2195 = load ptr, ptr %127, align 8, !tbaa !9
  %2196 = getelementptr inbounds %struct.s2n_connection, ptr %2195, i32 0, i32 52
  %2197 = getelementptr inbounds %struct.s2n_handshake, ptr %2196, i32 0, i32 1
  %2198 = load ptr, ptr %2197, align 8, !tbaa !67
  %2199 = getelementptr inbounds %struct.s2n_handshake_hashes, ptr %2198, i32 0, i32 7
  %2200 = getelementptr inbounds [48 x i8], ptr %2199, i64 0, i64 0
  %2201 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %143, i32 0, i32 2
  %2202 = load i8, ptr %2201, align 8, !tbaa !68
  %2203 = zext i8 %2202 to i32
  %2204 = call i32 @s2n_hash_digest(ptr noundef %145, ptr noundef %2200, i32 noundef %2203)
  %2205 = icmp eq i32 %2204, -1
  br i1 %2205, label %2206, label %2259

2206:                                             ; preds = %2192
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

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

2215:                                             ; preds = %2208
  %2216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2217 = call i32 @fileno(ptr noundef %2216) #11
  %2218 = call i32 @isatty(i32 noundef %2217) #11
  %2219 = icmp ne i32 %2218, 0
  br i1 %2219, label %2220, label %2237

2220:                                             ; preds = %2215
  %2221 = load i32, ptr %149, align 4, !tbaa !5
  %2222 = call ptr @__errno_location() #12
  store i32 %2221, ptr %2222, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror(i32 noundef %2226, ptr noundef @.str.33)
  %2228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror_debug(i32 noundef %2229, ptr noundef @.str.33)
  %2231 = call ptr @__errno_location() #12
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @strerror(i32 noundef %2232) #11
  %2234 = call ptr @__errno_location() #12
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2223, ptr noundef @.str.31, i32 noundef %2224, ptr noundef @.str.110, ptr noundef @.str.30, i32 noundef 536, ptr noundef %2227, ptr noundef %2230, ptr noundef %2233, i32 noundef %2235) #11
  br label %2254

2237:                                             ; preds = %2215, %2208
  %2238 = load i32, ptr %149, align 4, !tbaa !5
  %2239 = call ptr @__errno_location() #12
  store i32 %2238, ptr %2239, align 4, !tbaa !5
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror(i32 noundef %2243, ptr noundef @.str.33)
  %2245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror_debug(i32 noundef %2246, ptr noundef @.str.33)
  %2248 = call ptr @__errno_location() #12
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call ptr @strerror(i32 noundef %2249) #11
  %2251 = call ptr @__errno_location() #12
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2240, ptr noundef @.str.34, i32 noundef %2241, ptr noundef @.str.110, ptr noundef @.str.30, i32 noundef 536, ptr noundef %2244, ptr noundef %2247, ptr noundef %2250, i32 noundef %2252) #11
  br label %2254

2254:                                             ; preds = %2237, %2220
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

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

2257:                                             ; No predecessors!
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258, %2192
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

2261:                                             ; preds = %2260
  %2262 = load ptr, ptr %127, align 8, !tbaa !9
  %2263 = getelementptr inbounds %struct.s2n_connection, ptr %2262, i32 0, i32 52
  %2264 = getelementptr inbounds %struct.s2n_handshake, ptr %2263, i32 0, i32 6
  store i32 3, ptr %2264, align 4, !tbaa !69
  br label %2265

2265:                                             ; preds = %2269, %2261
  %2266 = load ptr, ptr %127, align 8, !tbaa !9
  %2267 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2266)
  %2268 = icmp ne i32 %2267, 1
  br i1 %2268, label %2269, label %2275

2269:                                             ; preds = %2265
  %2270 = load ptr, ptr %127, align 8, !tbaa !9
  %2271 = getelementptr inbounds %struct.s2n_connection, ptr %2270, i32 0, i32 52
  %2272 = getelementptr inbounds %struct.s2n_handshake, ptr %2271, i32 0, i32 7
  %2273 = load i32, ptr %2272, align 8, !tbaa !70
  %2274 = add nsw i32 %2273, 1
  store i32 %2274, ptr %2272, align 8, !tbaa !70
  br label %2265, !llvm.loop !71

2275:                                             ; preds = %2265
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  %2276 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %143, i32 0, i32 2
  %2277 = load i8, ptr %2276, align 8, !tbaa !68
  %2278 = zext i8 %2277 to i64
  store i64 %2278, ptr %150, align 8, !tbaa !73
  call void @llvm.lifetime.start.p0(i64 48, ptr %151) #11
  call void @llvm.memset.p0.i64(ptr align 16 %151, i8 0, i64 48, i1 false)
  br label %2279

2279:                                             ; preds = %2275
  %2280 = load i64, ptr %150, align 8, !tbaa !73
  %2281 = icmp ule i64 %2280, 48
  br i1 %2281, label %2315, label %2282

2282:                                             ; preds = %2279
  br label %2283

2283:                                             ; preds = %2282
  br label %2284

2284:                                             ; preds = %2283
  %2285 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2286 = getelementptr inbounds %struct.s2n_debug_info, ptr %2285, i32 0, i32 0
  store ptr @.str.111, ptr %2286, align 8, !tbaa !74
  %2287 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2288 = getelementptr inbounds %struct.s2n_debug_info, ptr %2287, i32 0, i32 0
  %2289 = load ptr, ptr %2288, align 8, !tbaa !74
  %2290 = getelementptr inbounds i8, ptr %2289, i64 21
  %2291 = call ptr @strrchr(ptr noundef %2290, i32 noundef 47) #14
  %2292 = icmp ne ptr %2291, null
  br i1 %2292, label %2293, label %2300

2293:                                             ; preds = %2284
  %2294 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2295 = getelementptr inbounds %struct.s2n_debug_info, ptr %2294, i32 0, i32 0
  %2296 = load ptr, ptr %2295, align 8, !tbaa !74
  %2297 = getelementptr inbounds i8, ptr %2296, i64 21
  %2298 = call ptr @strrchr(ptr noundef %2297, i32 noundef 47) #14
  %2299 = getelementptr inbounds i8, ptr %2298, i64 1
  br label %2305

2300:                                             ; preds = %2284
  %2301 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2302 = getelementptr inbounds %struct.s2n_debug_info, ptr %2301, i32 0, i32 0
  %2303 = load ptr, ptr %2302, align 8, !tbaa !74
  %2304 = getelementptr inbounds i8, ptr %2303, i64 21
  br label %2305

2305:                                             ; preds = %2300, %2293
  %2306 = phi ptr [ %2299, %2293 ], [ %2304, %2300 ]
  %2307 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2308 = getelementptr inbounds %struct.s2n_debug_info, ptr %2307, i32 0, i32 1
  store ptr %2306, ptr %2308, align 8, !tbaa !76
  %2309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %2309, align 4, !tbaa !5
  %2310 = call i32 @s2n_calculate_stacktrace()
  br label %2311

2311:                                             ; preds = %2305
  br label %2312

2312:                                             ; preds = %2311
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2929

2313:                                             ; No predecessors!
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314, %2279
  br label %2316

2316:                                             ; preds = %2315
  br label %2317

2317:                                             ; preds = %2316
  call void @llvm.lifetime.start.p0(i64 24, ptr %152) #11
  call void @llvm.memset.p0.i64(ptr align 8 %152, i8 0, i64 24, i1 false)
  br label %2318

2318:                                             ; preds = %2317
  %2319 = getelementptr inbounds [48 x i8], ptr %151, i64 0, i64 0
  %2320 = load i64, ptr %150, align 8, !tbaa !73
  %2321 = trunc i64 %2320 to i32
  %2322 = call i32 @s2n_blob_init(ptr noundef %152, ptr noundef %2319, i32 noundef %2321)
  %2323 = icmp sgt i32 %2322, -1
  br i1 %2323, label %2325, label %2324

2324:                                             ; preds = %2318
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2928

2325:                                             ; preds = %2318
  br label %2326

2326:                                             ; preds = %2325
  br label %2327

2327:                                             ; preds = %2326
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  %2328 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %143, i32 0, i32 2
  %2329 = load i8, ptr %2328, align 8, !tbaa !68
  %2330 = zext i8 %2329 to i64
  store i64 %2330, ptr %153, align 8, !tbaa !73
  call void @llvm.lifetime.start.p0(i64 48, ptr %154) #11
  call void @llvm.memset.p0.i64(ptr align 16 %154, i8 0, i64 48, i1 false)
  br label %2331

2331:                                             ; preds = %2327
  %2332 = load i64, ptr %153, align 8, !tbaa !73
  %2333 = icmp ule i64 %2332, 48
  br i1 %2333, label %2367, label %2334

2334:                                             ; preds = %2331
  br label %2335

2335:                                             ; preds = %2334
  br label %2336

2336:                                             ; preds = %2335
  %2337 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2338 = getelementptr inbounds %struct.s2n_debug_info, ptr %2337, i32 0, i32 0
  store ptr @.str.112, ptr %2338, align 8, !tbaa !74
  %2339 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2340 = getelementptr inbounds %struct.s2n_debug_info, ptr %2339, i32 0, i32 0
  %2341 = load ptr, ptr %2340, align 8, !tbaa !74
  %2342 = getelementptr inbounds i8, ptr %2341, i64 21
  %2343 = call ptr @strrchr(ptr noundef %2342, i32 noundef 47) #14
  %2344 = icmp ne ptr %2343, null
  br i1 %2344, label %2345, label %2352

2345:                                             ; preds = %2336
  %2346 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2347 = getelementptr inbounds %struct.s2n_debug_info, ptr %2346, i32 0, i32 0
  %2348 = load ptr, ptr %2347, align 8, !tbaa !74
  %2349 = getelementptr inbounds i8, ptr %2348, i64 21
  %2350 = call ptr @strrchr(ptr noundef %2349, i32 noundef 47) #14
  %2351 = getelementptr inbounds i8, ptr %2350, i64 1
  br label %2357

2352:                                             ; preds = %2336
  %2353 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2354 = getelementptr inbounds %struct.s2n_debug_info, ptr %2353, i32 0, i32 0
  %2355 = load ptr, ptr %2354, align 8, !tbaa !74
  %2356 = getelementptr inbounds i8, ptr %2355, i64 21
  br label %2357

2357:                                             ; preds = %2352, %2345
  %2358 = phi ptr [ %2351, %2345 ], [ %2356, %2352 ]
  %2359 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2360 = getelementptr inbounds %struct.s2n_debug_info, ptr %2359, i32 0, i32 1
  store ptr %2358, ptr %2360, align 8, !tbaa !76
  %2361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %2361, align 4, !tbaa !5
  %2362 = call i32 @s2n_calculate_stacktrace()
  br label %2363

2363:                                             ; preds = %2357
  br label %2364

2364:                                             ; preds = %2363
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2927

2365:                                             ; No predecessors!
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

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

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368
  call void @llvm.lifetime.start.p0(i64 24, ptr %155) #11
  call void @llvm.memset.p0.i64(ptr align 8 %155, i8 0, i64 24, i1 false)
  br label %2370

2370:                                             ; preds = %2369
  %2371 = getelementptr inbounds [48 x i8], ptr %154, i64 0, i64 0
  %2372 = load i64, ptr %153, align 8, !tbaa !73
  %2373 = trunc i64 %2372 to i32
  %2374 = call i32 @s2n_blob_init(ptr noundef %155, ptr noundef %2371, i32 noundef %2373)
  %2375 = icmp sgt i32 %2374, -1
  br i1 %2375, label %2377, label %2376

2376:                                             ; preds = %2370
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2926

2377:                                             ; preds = %2370
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

2380:                                             ; preds = %2379
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = add nsw i32 %2381, 1
  store i32 %2382, ptr @test_count, align 4, !tbaa !5
  %2383 = load ptr, ptr %127, align 8, !tbaa !9
  %2384 = call i32 @s2n_tls13_derive_secret(ptr noundef %2383, i32 noundef 2, i32 noundef 1, ptr noundef %152)
  %2385 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  store i32 %2384, ptr %2385, align 4
  %2386 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  %2387 = load i32, ptr %2386, align 4
  %2388 = call zeroext i1 @s2n_result_is_ok(i32 %2387)
  br i1 %2388, label %2442, label %2389

2389:                                             ; preds = %2380
  br label %2390

2390:                                             ; preds = %2389
  br label %2391

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

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

2403:                                             ; preds = %2398
  %2404 = load i32, ptr %157, align 4, !tbaa !5
  %2405 = call ptr @__errno_location() #12
  store i32 %2404, ptr %2405, align 4, !tbaa !5
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror(i32 noundef %2409, ptr noundef @.str.33)
  %2411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror_debug(i32 noundef %2412, ptr noundef @.str.33)
  %2414 = call ptr @__errno_location() #12
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call ptr @strerror(i32 noundef %2415) #11
  %2417 = call ptr @__errno_location() #12
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2406, ptr noundef @.str.31, i32 noundef %2407, ptr noundef @.str.113, ptr noundef @.str.30, i32 noundef 545, ptr noundef %2410, ptr noundef %2413, ptr noundef %2416, i32 noundef %2418) #11
  br label %2437

2420:                                             ; preds = %2398, %2391
  %2421 = load i32, ptr %157, align 4, !tbaa !5
  %2422 = call ptr @__errno_location() #12
  store i32 %2421, ptr %2422, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = load i32, ptr @test_count, align 4, !tbaa !5
  %2425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @s2n_strerror(i32 noundef %2426, ptr noundef @.str.33)
  %2428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror_debug(i32 noundef %2429, ptr noundef @.str.33)
  %2431 = call ptr @__errno_location() #12
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call ptr @strerror(i32 noundef %2432) #11
  %2434 = call ptr @__errno_location() #12
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2423, ptr noundef @.str.34, i32 noundef %2424, ptr noundef @.str.113, ptr noundef @.str.30, i32 noundef 545, ptr noundef %2427, ptr noundef %2430, ptr noundef %2433, i32 noundef %2435) #11
  br label %2437

2437:                                             ; preds = %2420, %2403
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

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

2440:                                             ; No predecessors!
  br label %2441

2441:                                             ; preds = %2440
  br label %2442

2442:                                             ; preds = %2441, %2380
  br label %2443

2443:                                             ; preds = %2442
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

2445:                                             ; preds = %2444
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = add nsw i32 %2446, 1
  store i32 %2447, ptr @test_count, align 4, !tbaa !5
  %2448 = load ptr, ptr %127, align 8, !tbaa !9
  %2449 = call i32 @s2n_tls13_derive_secret(ptr noundef %2448, i32 noundef 2, i32 noundef 0, ptr noundef %155)
  %2450 = getelementptr inbounds %struct.s2n_result, ptr %158, i32 0, i32 0
  store i32 %2449, ptr %2450, align 4
  %2451 = getelementptr inbounds %struct.s2n_result, ptr %158, i32 0, i32 0
  %2452 = load i32, ptr %2451, align 4
  %2453 = call zeroext i1 @s2n_result_is_ok(i32 %2452)
  br i1 %2453, label %2507, label %2454

2454:                                             ; preds = %2445
  br label %2455

2455:                                             ; preds = %2454
  br label %2456

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

2463:                                             ; preds = %2456
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = call i32 @fileno(ptr noundef %2464) #11
  %2466 = call i32 @isatty(i32 noundef %2465) #11
  %2467 = icmp ne i32 %2466, 0
  br i1 %2467, label %2468, label %2485

2468:                                             ; preds = %2463
  %2469 = load i32, ptr %159, align 4, !tbaa !5
  %2470 = call ptr @__errno_location() #12
  store i32 %2469, ptr %2470, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror(i32 noundef %2474, ptr noundef @.str.33)
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror_debug(i32 noundef %2477, ptr noundef @.str.33)
  %2479 = call ptr @__errno_location() #12
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @strerror(i32 noundef %2480) #11
  %2482 = call ptr @__errno_location() #12
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2471, ptr noundef @.str.31, i32 noundef %2472, ptr noundef @.str.114, ptr noundef @.str.30, i32 noundef 546, ptr noundef %2475, ptr noundef %2478, ptr noundef %2481, i32 noundef %2483) #11
  br label %2502

2485:                                             ; preds = %2463, %2456
  %2486 = load i32, ptr %159, align 4, !tbaa !5
  %2487 = call ptr @__errno_location() #12
  store i32 %2486, ptr %2487, align 4, !tbaa !5
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = load i32, ptr @test_count, align 4, !tbaa !5
  %2490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror(i32 noundef %2491, ptr noundef @.str.33)
  %2493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror_debug(i32 noundef %2494, ptr noundef @.str.33)
  %2496 = call ptr @__errno_location() #12
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call ptr @strerror(i32 noundef %2497) #11
  %2499 = call ptr @__errno_location() #12
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  %2501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2488, ptr noundef @.str.34, i32 noundef %2489, ptr noundef @.str.114, ptr noundef @.str.30, i32 noundef 546, ptr noundef %2492, ptr noundef %2495, ptr noundef %2498, i32 noundef %2500) #11
  br label %2502

2502:                                             ; preds = %2485, %2468
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

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

2505:                                             ; No predecessors!
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

2507:                                             ; preds = %2506, %2445
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

2510:                                             ; preds = %2509
  %2511 = load i32, ptr @test_count, align 4, !tbaa !5
  %2512 = add nsw i32 %2511, 1
  store i32 %2512, ptr @test_count, align 4, !tbaa !5
  %2513 = load ptr, ptr %125, align 8, !tbaa !9
  %2514 = getelementptr inbounds %struct.hybrid_test_vector, ptr %2513, i32 0, i32 7
  %2515 = load ptr, ptr %2514, align 8, !tbaa !23
  %2516 = getelementptr inbounds %struct.s2n_blob, ptr %2515, i32 0, i32 1
  %2517 = load i32, ptr %2516, align 8, !tbaa !30
  %2518 = getelementptr inbounds %struct.s2n_blob, ptr %152, i32 0, i32 1
  %2519 = load i32, ptr %2518, align 8, !tbaa !30
  %2520 = icmp eq i32 %2517, %2519
  br i1 %2520, label %2574, label %2521

2521:                                             ; preds = %2510
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

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

2530:                                             ; preds = %2523
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = call i32 @fileno(ptr noundef %2531) #11
  %2533 = call i32 @isatty(i32 noundef %2532) #11
  %2534 = icmp ne i32 %2533, 0
  br i1 %2534, label %2535, label %2552

2535:                                             ; preds = %2530
  %2536 = load i32, ptr %160, align 4, !tbaa !5
  %2537 = call ptr @__errno_location() #12
  store i32 %2536, ptr %2537, align 4, !tbaa !5
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = load i32, ptr @test_count, align 4, !tbaa !5
  %2540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror(i32 noundef %2541, ptr noundef @.str.33)
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror_debug(i32 noundef %2544, ptr noundef @.str.33)
  %2546 = call ptr @__errno_location() #12
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @strerror(i32 noundef %2547) #11
  %2549 = call ptr @__errno_location() #12
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2538, ptr noundef @.str.31, i32 noundef %2539, ptr noundef @.str.115, ptr noundef @.str.30, i32 noundef 549, ptr noundef %2542, ptr noundef %2545, ptr noundef %2548, i32 noundef %2550) #11
  br label %2569

2552:                                             ; preds = %2530, %2523
  %2553 = load i32, ptr %160, align 4, !tbaa !5
  %2554 = call ptr @__errno_location() #12
  store i32 %2553, ptr %2554, align 4, !tbaa !5
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror(i32 noundef %2558, ptr noundef @.str.33)
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror_debug(i32 noundef %2561, ptr noundef @.str.33)
  %2563 = call ptr @__errno_location() #12
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @strerror(i32 noundef %2564) #11
  %2566 = call ptr @__errno_location() #12
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2555, ptr noundef @.str.34, i32 noundef %2556, ptr noundef @.str.115, ptr noundef @.str.30, i32 noundef 549, ptr noundef %2559, ptr noundef %2562, ptr noundef %2565, i32 noundef %2567) #11
  br label %2569

2569:                                             ; preds = %2552, %2535
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

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

2572:                                             ; No predecessors!
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

2574:                                             ; preds = %2573, %2510
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576
  %2578 = getelementptr inbounds %struct.s2n_blob, ptr %152, i32 0, i32 1
  %2579 = load i32, ptr %2578, align 8, !tbaa !30
  %2580 = icmp ne i32 %2579, 0
  br i1 %2580, label %2581, label %2653

2581:                                             ; preds = %2577
  br label %2582

2582:                                             ; preds = %2581
  %2583 = load i32, ptr @test_count, align 4, !tbaa !5
  %2584 = add nsw i32 %2583, 1
  store i32 %2584, ptr @test_count, align 4, !tbaa !5
  %2585 = load ptr, ptr %125, align 8, !tbaa !9
  %2586 = getelementptr inbounds %struct.hybrid_test_vector, ptr %2585, i32 0, i32 7
  %2587 = load ptr, ptr %2586, align 8, !tbaa !23
  %2588 = getelementptr inbounds %struct.s2n_blob, ptr %2587, i32 0, i32 0
  %2589 = load ptr, ptr %2588, align 8, !tbaa !32
  %2590 = getelementptr inbounds %struct.s2n_blob, ptr %152, i32 0, i32 0
  %2591 = load ptr, ptr %2590, align 8, !tbaa !32
  %2592 = getelementptr inbounds %struct.s2n_blob, ptr %152, i32 0, i32 1
  %2593 = load i32, ptr %2592, align 8, !tbaa !30
  %2594 = zext i32 %2593 to i64
  %2595 = call i32 @memcmp(ptr noundef %2589, ptr noundef %2591, i64 noundef %2594) #14
  %2596 = icmp eq i32 %2595, 0
  br i1 %2596, label %2650, label %2597

2597:                                             ; preds = %2582
  br label %2598

2598:                                             ; preds = %2597
  br label %2599

2599:                                             ; preds = %2598
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %2600 = call ptr @__errno_location() #12
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  store i32 %2601, ptr %161, align 4, !tbaa !5
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = call i32 @s2n_print_stacktrace(ptr noundef %2602)
  %2604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2605 = trunc i8 %2604 to i1
  br i1 %2605, label %2606, label %2628

2606:                                             ; preds = %2599
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = call i32 @fileno(ptr noundef %2607) #11
  %2609 = call i32 @isatty(i32 noundef %2608) #11
  %2610 = icmp ne i32 %2609, 0
  br i1 %2610, label %2611, label %2628

2611:                                             ; preds = %2606
  %2612 = load i32, ptr %161, align 4, !tbaa !5
  %2613 = call ptr @__errno_location() #12
  store i32 %2612, ptr %2613, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror(i32 noundef %2617, ptr noundef @.str.33)
  %2619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call ptr @s2n_strerror_debug(i32 noundef %2620, ptr noundef @.str.33)
  %2622 = call ptr @__errno_location() #12
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call ptr @strerror(i32 noundef %2623) #11
  %2625 = call ptr @__errno_location() #12
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2614, ptr noundef @.str.31, i32 noundef %2615, ptr noundef @.str.116, ptr noundef @.str.30, i32 noundef 551, ptr noundef %2618, ptr noundef %2621, ptr noundef %2624, i32 noundef %2626) #11
  br label %2645

2628:                                             ; preds = %2606, %2599
  %2629 = load i32, ptr %161, align 4, !tbaa !5
  %2630 = call ptr @__errno_location() #12
  store i32 %2629, ptr %2630, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = load i32, ptr @test_count, align 4, !tbaa !5
  %2633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call ptr @s2n_strerror(i32 noundef %2634, ptr noundef @.str.33)
  %2636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2637 = load i32, ptr %2636, align 4, !tbaa !5
  %2638 = call ptr @s2n_strerror_debug(i32 noundef %2637, ptr noundef @.str.33)
  %2639 = call ptr @__errno_location() #12
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call ptr @strerror(i32 noundef %2640) #11
  %2642 = call ptr @__errno_location() #12
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2631, ptr noundef @.str.34, i32 noundef %2632, ptr noundef @.str.116, ptr noundef @.str.30, i32 noundef 551, ptr noundef %2635, ptr noundef %2638, ptr noundef %2641, i32 noundef %2643) #11
  br label %2645

2645:                                             ; preds = %2628, %2611
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %2646

2646:                                             ; preds = %2645
  br label %2647

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

2648:                                             ; No predecessors!
  br label %2649

2649:                                             ; preds = %2648
  br label %2650

2650:                                             ; preds = %2649, %2582
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

2653:                                             ; preds = %2652, %2577
  br label %2654

2654:                                             ; preds = %2653
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

2656:                                             ; preds = %2655
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = add nsw i32 %2657, 1
  store i32 %2658, ptr @test_count, align 4, !tbaa !5
  %2659 = load ptr, ptr %125, align 8, !tbaa !9
  %2660 = getelementptr inbounds %struct.hybrid_test_vector, ptr %2659, i32 0, i32 8
  %2661 = load ptr, ptr %2660, align 8, !tbaa !24
  %2662 = getelementptr inbounds %struct.s2n_blob, ptr %2661, i32 0, i32 1
  %2663 = load i32, ptr %2662, align 8, !tbaa !30
  %2664 = getelementptr inbounds %struct.s2n_blob, ptr %155, i32 0, i32 1
  %2665 = load i32, ptr %2664, align 8, !tbaa !30
  %2666 = icmp eq i32 %2663, %2665
  br i1 %2666, label %2720, label %2667

2667:                                             ; preds = %2656
  br label %2668

2668:                                             ; preds = %2667
  br label %2669

2669:                                             ; preds = %2668
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %2670 = call ptr @__errno_location() #12
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  store i32 %2671, ptr %162, align 4, !tbaa !5
  %2672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2673 = call i32 @s2n_print_stacktrace(ptr noundef %2672)
  %2674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2675 = trunc i8 %2674 to i1
  br i1 %2675, label %2676, label %2698

2676:                                             ; preds = %2669
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = call i32 @fileno(ptr noundef %2677) #11
  %2679 = call i32 @isatty(i32 noundef %2678) #11
  %2680 = icmp ne i32 %2679, 0
  br i1 %2680, label %2681, label %2698

2681:                                             ; preds = %2676
  %2682 = load i32, ptr %162, align 4, !tbaa !5
  %2683 = call ptr @__errno_location() #12
  store i32 %2682, ptr %2683, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror(i32 noundef %2687, ptr noundef @.str.33)
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror_debug(i32 noundef %2690, ptr noundef @.str.33)
  %2692 = call ptr @__errno_location() #12
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call ptr @strerror(i32 noundef %2693) #11
  %2695 = call ptr @__errno_location() #12
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2684, ptr noundef @.str.31, i32 noundef %2685, ptr noundef @.str.117, ptr noundef @.str.30, i32 noundef 553, ptr noundef %2688, ptr noundef %2691, ptr noundef %2694, i32 noundef %2696) #11
  br label %2715

2698:                                             ; preds = %2676, %2669
  %2699 = load i32, ptr %162, align 4, !tbaa !5
  %2700 = call ptr @__errno_location() #12
  store i32 %2699, ptr %2700, align 4, !tbaa !5
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = load i32, ptr @test_count, align 4, !tbaa !5
  %2703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror(i32 noundef %2704, ptr noundef @.str.33)
  %2706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror_debug(i32 noundef %2707, ptr noundef @.str.33)
  %2709 = call ptr @__errno_location() #12
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call ptr @strerror(i32 noundef %2710) #11
  %2712 = call ptr @__errno_location() #12
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2701, ptr noundef @.str.34, i32 noundef %2702, ptr noundef @.str.117, ptr noundef @.str.30, i32 noundef 553, ptr noundef %2705, ptr noundef %2708, ptr noundef %2711, i32 noundef %2713) #11
  br label %2715

2715:                                             ; preds = %2698, %2681
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %2716

2716:                                             ; preds = %2715
  br label %2717

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

2718:                                             ; No predecessors!
  br label %2719

2719:                                             ; preds = %2718
  br label %2720

2720:                                             ; preds = %2719, %2656
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722
  %2724 = getelementptr inbounds %struct.s2n_blob, ptr %155, i32 0, i32 1
  %2725 = load i32, ptr %2724, align 8, !tbaa !30
  %2726 = icmp ne i32 %2725, 0
  br i1 %2726, label %2727, label %2799

2727:                                             ; preds = %2723
  br label %2728

2728:                                             ; preds = %2727
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = add nsw i32 %2729, 1
  store i32 %2730, ptr @test_count, align 4, !tbaa !5
  %2731 = load ptr, ptr %125, align 8, !tbaa !9
  %2732 = getelementptr inbounds %struct.hybrid_test_vector, ptr %2731, i32 0, i32 8
  %2733 = load ptr, ptr %2732, align 8, !tbaa !24
  %2734 = getelementptr inbounds %struct.s2n_blob, ptr %2733, i32 0, i32 0
  %2735 = load ptr, ptr %2734, align 8, !tbaa !32
  %2736 = getelementptr inbounds %struct.s2n_blob, ptr %155, i32 0, i32 0
  %2737 = load ptr, ptr %2736, align 8, !tbaa !32
  %2738 = getelementptr inbounds %struct.s2n_blob, ptr %155, i32 0, i32 1
  %2739 = load i32, ptr %2738, align 8, !tbaa !30
  %2740 = zext i32 %2739 to i64
  %2741 = call i32 @memcmp(ptr noundef %2735, ptr noundef %2737, i64 noundef %2740) #14
  %2742 = icmp eq i32 %2741, 0
  br i1 %2742, label %2796, label %2743

2743:                                             ; preds = %2728
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

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

2752:                                             ; preds = %2745
  %2753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2754 = call i32 @fileno(ptr noundef %2753) #11
  %2755 = call i32 @isatty(i32 noundef %2754) #11
  %2756 = icmp ne i32 %2755, 0
  br i1 %2756, label %2757, label %2774

2757:                                             ; preds = %2752
  %2758 = load i32, ptr %163, align 4, !tbaa !5
  %2759 = call ptr @__errno_location() #12
  store i32 %2758, ptr %2759, align 4, !tbaa !5
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror(i32 noundef %2763, ptr noundef @.str.33)
  %2765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call ptr @s2n_strerror_debug(i32 noundef %2766, ptr noundef @.str.33)
  %2768 = call ptr @__errno_location() #12
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @strerror(i32 noundef %2769) #11
  %2771 = call ptr @__errno_location() #12
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2760, ptr noundef @.str.31, i32 noundef %2761, ptr noundef @.str.118, ptr noundef @.str.30, i32 noundef 555, ptr noundef %2764, ptr noundef %2767, ptr noundef %2770, i32 noundef %2772) #11
  br label %2791

2774:                                             ; preds = %2752, %2745
  %2775 = load i32, ptr %163, align 4, !tbaa !5
  %2776 = call ptr @__errno_location() #12
  store i32 %2775, ptr %2776, align 4, !tbaa !5
  %2777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2778 = load i32, ptr @test_count, align 4, !tbaa !5
  %2779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2780 = load i32, ptr %2779, align 4, !tbaa !5
  %2781 = call ptr @s2n_strerror(i32 noundef %2780, ptr noundef @.str.33)
  %2782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call ptr @s2n_strerror_debug(i32 noundef %2783, ptr noundef @.str.33)
  %2785 = call ptr @__errno_location() #12
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @strerror(i32 noundef %2786) #11
  %2788 = call ptr @__errno_location() #12
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2777, ptr noundef @.str.34, i32 noundef %2778, ptr noundef @.str.118, ptr noundef @.str.30, i32 noundef 555, ptr noundef %2781, ptr noundef %2784, ptr noundef %2787, i32 noundef %2789) #11
  br label %2791

2791:                                             ; preds = %2774, %2757
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

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

2794:                                             ; No predecessors!
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795, %2728
  br label %2797

2797:                                             ; preds = %2796
  br label %2798

2798:                                             ; preds = %2797
  br label %2799

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

2800:                                             ; preds = %2799
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = add nsw i32 %2803, 1
  store i32 %2804, ptr @test_count, align 4, !tbaa !5
  %2805 = load ptr, ptr %127, align 8, !tbaa !9
  %2806 = call i32 @s2n_connection_free(ptr noundef %2805)
  %2807 = icmp eq i32 %2806, -1
  br i1 %2807, label %2808, label %2861

2808:                                             ; preds = %2802
  br label %2809

2809:                                             ; preds = %2808
  br label %2810

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

2817:                                             ; preds = %2810
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = call i32 @fileno(ptr noundef %2818) #11
  %2820 = call i32 @isatty(i32 noundef %2819) #11
  %2821 = icmp ne i32 %2820, 0
  br i1 %2821, label %2822, label %2839

2822:                                             ; preds = %2817
  %2823 = load i32, ptr %164, align 4, !tbaa !5
  %2824 = call ptr @__errno_location() #12
  store i32 %2823, ptr %2824, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = load i32, ptr @test_count, align 4, !tbaa !5
  %2827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror(i32 noundef %2828, ptr noundef @.str.33)
  %2830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror_debug(i32 noundef %2831, ptr noundef @.str.33)
  %2833 = call ptr @__errno_location() #12
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call ptr @strerror(i32 noundef %2834) #11
  %2836 = call ptr @__errno_location() #12
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2825, ptr noundef @.str.31, i32 noundef %2826, ptr noundef @.str.119, ptr noundef @.str.30, i32 noundef 557, ptr noundef %2829, ptr noundef %2832, ptr noundef %2835, i32 noundef %2837) #11
  br label %2856

2839:                                             ; preds = %2817, %2810
  %2840 = load i32, ptr %164, align 4, !tbaa !5
  %2841 = call ptr @__errno_location() #12
  store i32 %2840, ptr %2841, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @s2n_strerror(i32 noundef %2845, ptr noundef @.str.33)
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror_debug(i32 noundef %2848, ptr noundef @.str.33)
  %2850 = call ptr @__errno_location() #12
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @strerror(i32 noundef %2851) #11
  %2853 = call ptr @__errno_location() #12
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2842, ptr noundef @.str.34, i32 noundef %2843, ptr noundef @.str.119, ptr noundef @.str.30, i32 noundef 557, ptr noundef %2846, ptr noundef %2849, ptr noundef %2852, i32 noundef %2854) #11
  br label %2856

2856:                                             ; preds = %2839, %2822
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

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

2859:                                             ; No predecessors!
  br label %2860

2860:                                             ; preds = %2859
  br label %2861

2861:                                             ; preds = %2860, %2802
  br label %2862

2862:                                             ; preds = %2861
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

2864:                                             ; preds = %2863
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = add nsw i32 %2865, 1
  store i32 %2866, ptr @test_count, align 4, !tbaa !5
  %2867 = load ptr, ptr %128, align 8, !tbaa !9
  %2868 = call i32 @s2n_connection_free(ptr noundef %2867)
  %2869 = icmp eq i32 %2868, -1
  br i1 %2869, label %2870, label %2923

2870:                                             ; preds = %2864
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

2872:                                             ; preds = %2871
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %2873 = call ptr @__errno_location() #12
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  store i32 %2874, ptr %165, align 4, !tbaa !5
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = call i32 @s2n_print_stacktrace(ptr noundef %2875)
  %2877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2878 = trunc i8 %2877 to i1
  br i1 %2878, label %2879, label %2901

2879:                                             ; preds = %2872
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @fileno(ptr noundef %2880) #11
  %2882 = call i32 @isatty(i32 noundef %2881) #11
  %2883 = icmp ne i32 %2882, 0
  br i1 %2883, label %2884, label %2901

2884:                                             ; preds = %2879
  %2885 = load i32, ptr %165, align 4, !tbaa !5
  %2886 = call ptr @__errno_location() #12
  store i32 %2885, ptr %2886, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror(i32 noundef %2890, ptr noundef @.str.33)
  %2892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef @.str.33)
  %2895 = call ptr @__errno_location() #12
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #11
  %2898 = call ptr @__errno_location() #12
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2887, ptr noundef @.str.31, i32 noundef %2888, ptr noundef @.str.120, ptr noundef @.str.30, i32 noundef 558, ptr noundef %2891, ptr noundef %2894, ptr noundef %2897, i32 noundef %2899) #11
  br label %2918

2901:                                             ; preds = %2879, %2872
  %2902 = load i32, ptr %165, align 4, !tbaa !5
  %2903 = call ptr @__errno_location() #12
  store i32 %2902, ptr %2903, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = load i32, ptr @test_count, align 4, !tbaa !5
  %2906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror(i32 noundef %2907, ptr noundef @.str.33)
  %2909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror_debug(i32 noundef %2910, ptr noundef @.str.33)
  %2912 = call ptr @__errno_location() #12
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @strerror(i32 noundef %2913) #11
  %2915 = call ptr @__errno_location() #12
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2904, ptr noundef @.str.34, i32 noundef %2905, ptr noundef @.str.120, ptr noundef @.str.30, i32 noundef 558, ptr noundef %2908, ptr noundef %2911, ptr noundef %2914, i32 noundef %2916) #11
  br label %2918

2918:                                             ; preds = %2901, %2884
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

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

2921:                                             ; No predecessors!
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922, %2864
  br label %2924

2924:                                             ; preds = %2923
  br label %2925

2925:                                             ; preds = %2924
  store i32 0, ptr %12, align 4
  br label %2926

2926:                                             ; preds = %2925, %2376
  call void @llvm.lifetime.end.p0(i64 24, ptr %155) #11
  br label %2927

2927:                                             ; preds = %2926, %2364
  call void @llvm.lifetime.end.p0(i64 48, ptr %154) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  br label %2928

2928:                                             ; preds = %2927, %2324
  call void @llvm.lifetime.end.p0(i64 24, ptr %152) #11
  br label %2929

2929:                                             ; preds = %2928, %2312
  call void @llvm.lifetime.end.p0(i64 48, ptr %151) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  %2930 = call i32 @s2n_hash_free(ptr noundef %145)
  call void @llvm.lifetime.end.p0(i64 56, ptr %145) #11
  %2931 = call i32 @s2n_tls13_keys_free(ptr noundef %143)
  call void @llvm.lifetime.end.p0(i64 592, ptr %143) #11
  %2932 = call i32 @s2n_free(ptr noundef %133)
  call void @llvm.lifetime.end.p0(i64 24, ptr %133) #11
  %2933 = call i32 @s2n_free(ptr noundef %132)
  call void @llvm.lifetime.end.p0(i64 24, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #11
  br label %2934

2934:                                             ; preds = %2929, %1119
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  %2935 = load i32, ptr %12, align 4
  switch i32 %2935, label %2940 [
    i32 0, label %2936
    i32 130, label %2937
  ]

2936:                                             ; preds = %2934
  br label %2937

2937:                                             ; preds = %2936, %2934
  %2938 = load i32, ptr %124, align 4, !tbaa !5
  %2939 = add nsw i32 %2938, 1
  store i32 %2939, ptr %124, align 4, !tbaa !5
  br label %1097, !llvm.loop !77

2940:                                             ; preds = %2934, %1101
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  %2941 = load i32, ptr %12, align 4
  switch i32 %2941, label %6043 [
    i32 128, label %2942
  ]

2942:                                             ; preds = %2940
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #11
  store ptr %21, ptr %166, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %167, ptr align 4 @__const.main.modes, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #11
  store i64 0, ptr %168, align 8, !tbaa !73
  br label %2943

2943:                                             ; preds = %5885, %2942
  %2944 = load i64, ptr %168, align 8, !tbaa !73
  %2945 = icmp ult i64 %2944, 2
  br i1 %2945, label %2947, label %2946

2946:                                             ; preds = %2943
  store i32 309, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  br label %5888

2947:                                             ; preds = %2943
  br label %2948

2948:                                             ; preds = %2947
  br label %2949

2949:                                             ; preds = %2948
  br label %2950

2950:                                             ; preds = %2949
  %2951 = load i32, ptr @test_count, align 4, !tbaa !5
  %2952 = add nsw i32 %2951, 1
  store i32 %2952, ptr @test_count, align 4, !tbaa !5
  %2953 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef null, ptr noundef null)
  %2954 = icmp eq i32 %2953, -1
  br i1 %2954, label %3008, label %2955

2955:                                             ; preds = %2950
  br label %2956

2956:                                             ; preds = %2955
  br label %2957

2957:                                             ; preds = %2956
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %2958 = call ptr @__errno_location() #12
  %2959 = load i32, ptr %2958, align 4, !tbaa !5
  store i32 %2959, ptr %169, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @s2n_print_stacktrace(ptr noundef %2960)
  %2962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2963 = trunc i8 %2962 to i1
  br i1 %2963, label %2964, label %2986

2964:                                             ; preds = %2957
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = call i32 @fileno(ptr noundef %2965) #11
  %2967 = call i32 @isatty(i32 noundef %2966) #11
  %2968 = icmp ne i32 %2967, 0
  br i1 %2968, label %2969, label %2986

2969:                                             ; preds = %2964
  %2970 = load i32, ptr %169, align 4, !tbaa !5
  %2971 = call ptr @__errno_location() #12
  store i32 %2970, ptr %2971, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror(i32 noundef %2975, ptr noundef @.str.33)
  %2977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror_debug(i32 noundef %2978, ptr noundef @.str.33)
  %2980 = call ptr @__errno_location() #12
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @strerror(i32 noundef %2981) #11
  %2983 = call ptr @__errno_location() #12
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef @.str.31, i32 noundef %2973, ptr noundef @.str.121, ptr noundef @.str.30, i32 noundef 568, ptr noundef %2976, ptr noundef %2979, ptr noundef %2982, i32 noundef %2984) #11
  br label %3003

2986:                                             ; preds = %2964, %2957
  %2987 = load i32, ptr %169, align 4, !tbaa !5
  %2988 = call ptr @__errno_location() #12
  store i32 %2987, ptr %2988, align 4, !tbaa !5
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = load i32, ptr @test_count, align 4, !tbaa !5
  %2991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call ptr @s2n_strerror(i32 noundef %2992, ptr noundef @.str.33)
  %2994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror_debug(i32 noundef %2995, ptr noundef @.str.33)
  %2997 = call ptr @__errno_location() #12
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @strerror(i32 noundef %2998) #11
  %3000 = call ptr @__errno_location() #12
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2989, ptr noundef @.str.34, i32 noundef %2990, ptr noundef @.str.121, ptr noundef @.str.30, i32 noundef 568, ptr noundef %2993, ptr noundef %2996, ptr noundef %2999, i32 noundef %3001) #11
  br label %3003

3003:                                             ; preds = %2986, %2969
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

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

3006:                                             ; No predecessors!
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

3008:                                             ; preds = %3007, %2950
  br label %3009

3009:                                             ; preds = %3008
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010
  %3012 = load i32, ptr @test_count, align 4, !tbaa !5
  %3013 = add nsw i32 %3012, 1
  store i32 %3013, ptr @test_count, align 4, !tbaa !5
  %3014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  %3016 = icmp eq i32 %3015, 402653193
  br i1 %3016, label %3070, label %3017

3017:                                             ; preds = %3011
  br label %3018

3018:                                             ; preds = %3017
  br label %3019

3019:                                             ; preds = %3018
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %3020 = call ptr @__errno_location() #12
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  store i32 %3021, ptr %170, align 4, !tbaa !5
  %3022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3023 = call i32 @s2n_print_stacktrace(ptr noundef %3022)
  %3024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3025 = trunc i8 %3024 to i1
  br i1 %3025, label %3026, label %3048

3026:                                             ; preds = %3019
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = call i32 @fileno(ptr noundef %3027) #11
  %3029 = call i32 @isatty(i32 noundef %3028) #11
  %3030 = icmp ne i32 %3029, 0
  br i1 %3030, label %3031, label %3048

3031:                                             ; preds = %3026
  %3032 = load i32, ptr %170, align 4, !tbaa !5
  %3033 = call ptr @__errno_location() #12
  store i32 %3032, ptr %3033, align 4, !tbaa !5
  %3034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3035 = load i32, ptr @test_count, align 4, !tbaa !5
  %3036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call ptr @s2n_strerror(i32 noundef %3037, ptr noundef @.str.33)
  %3039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = call ptr @s2n_strerror_debug(i32 noundef %3040, ptr noundef @.str.33)
  %3042 = call ptr @__errno_location() #12
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  %3044 = call ptr @strerror(i32 noundef %3043) #11
  %3045 = call ptr @__errno_location() #12
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3034, ptr noundef @.str.31, i32 noundef %3035, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 568, ptr noundef %3038, ptr noundef %3041, ptr noundef %3044, i32 noundef %3046) #11
  br label %3065

3048:                                             ; preds = %3026, %3019
  %3049 = load i32, ptr %170, align 4, !tbaa !5
  %3050 = call ptr @__errno_location() #12
  store i32 %3049, ptr %3050, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef @.str.33)
  %3056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror_debug(i32 noundef %3057, ptr noundef @.str.33)
  %3059 = call ptr @__errno_location() #12
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call ptr @strerror(i32 noundef %3060) #11
  %3062 = call ptr @__errno_location() #12
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef @.str.34, i32 noundef %3052, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 568, ptr noundef %3055, ptr noundef %3058, ptr noundef %3061, i32 noundef %3063) #11
  br label %3065

3065:                                             ; preds = %3048, %3031
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %3066

3066:                                             ; preds = %3065
  br label %3067

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

3068:                                             ; No predecessors!
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

3070:                                             ; preds = %3069, %3011
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  br label %3073

3073:                                             ; preds = %3072
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = add nsw i32 %3074, 1
  store i32 %3075, ptr @test_count, align 4, !tbaa !5
  %3076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror_debug(i32 noundef %3077, ptr noundef @.str.33)
  %3079 = icmp eq ptr %3078, null
  br i1 %3079, label %3080, label %3133

3080:                                             ; preds = %3073
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %3083 = call ptr @__errno_location() #12
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  store i32 %3084, ptr %171, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = call i32 @s2n_print_stacktrace(ptr noundef %3085)
  %3087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3088 = trunc i8 %3087 to i1
  br i1 %3088, label %3089, label %3111

3089:                                             ; preds = %3082
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = call i32 @fileno(ptr noundef %3090) #11
  %3092 = call i32 @isatty(i32 noundef %3091) #11
  %3093 = icmp ne i32 %3092, 0
  br i1 %3093, label %3094, label %3111

3094:                                             ; preds = %3089
  %3095 = load i32, ptr %171, align 4, !tbaa !5
  %3096 = call ptr @__errno_location() #12
  store i32 %3095, ptr %3096, align 4, !tbaa !5
  %3097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3098 = load i32, ptr @test_count, align 4, !tbaa !5
  %3099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3100 = load i32, ptr %3099, align 4, !tbaa !5
  %3101 = call ptr @s2n_strerror(i32 noundef %3100, ptr noundef @.str.33)
  %3102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror_debug(i32 noundef %3103, ptr noundef @.str.33)
  %3105 = call ptr @__errno_location() #12
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call ptr @strerror(i32 noundef %3106) #11
  %3108 = call ptr @__errno_location() #12
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3097, ptr noundef @.str.31, i32 noundef %3098, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 568, ptr noundef %3101, ptr noundef %3104, ptr noundef %3107, i32 noundef %3109) #11
  br label %3128

3111:                                             ; preds = %3089, %3082
  %3112 = load i32, ptr %171, align 4, !tbaa !5
  %3113 = call ptr @__errno_location() #12
  store i32 %3112, ptr %3113, align 4, !tbaa !5
  %3114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3115 = load i32, ptr @test_count, align 4, !tbaa !5
  %3116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3117 = load i32, ptr %3116, align 4, !tbaa !5
  %3118 = call ptr @s2n_strerror(i32 noundef %3117, ptr noundef @.str.33)
  %3119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror_debug(i32 noundef %3120, ptr noundef @.str.33)
  %3122 = call ptr @__errno_location() #12
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call ptr @strerror(i32 noundef %3123) #11
  %3125 = call ptr @__errno_location() #12
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3114, ptr noundef @.str.34, i32 noundef %3115, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 568, ptr noundef %3118, ptr noundef %3121, ptr noundef %3124, i32 noundef %3126) #11
  br label %3128

3128:                                             ; preds = %3111, %3094
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %3129

3129:                                             ; preds = %3128
  br label %3130

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

3131:                                             ; No predecessors!
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132, %3073
  br label %3134

3134:                                             ; preds = %3133
  br label %3135

3135:                                             ; preds = %3134
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136
  br label %3138

3138:                                             ; preds = %3137
  %3139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3139, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3140 = call ptr @__errno_location() #12
  store i32 0, ptr %3140, align 4, !tbaa !5
  br label %3141

3141:                                             ; preds = %3138
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142
  br label %3144

3144:                                             ; preds = %3143
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #11
  store ptr null, ptr %172, align 8, !tbaa !9
  br label %3145

3145:                                             ; preds = %3144
  %3146 = load i32, ptr @test_count, align 4, !tbaa !5
  %3147 = add nsw i32 %3146, 1
  store i32 %3147, ptr @test_count, align 4, !tbaa !5
  %3148 = load i64, ptr %168, align 8, !tbaa !73
  %3149 = getelementptr inbounds [2 x i32], ptr %167, i64 0, i64 %3148
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @s2n_connection_new(i32 noundef %3150)
  store ptr %3151, ptr %172, align 8, !tbaa !9
  %3152 = icmp eq ptr %3151, null
  br i1 %3152, label %3153, label %3206

3153:                                             ; preds = %3145
  br label %3154

3154:                                             ; preds = %3153
  br label %3155

3155:                                             ; preds = %3154
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %3156 = call ptr @__errno_location() #12
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  store i32 %3157, ptr %173, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @s2n_print_stacktrace(ptr noundef %3158)
  %3160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3161 = trunc i8 %3160 to i1
  br i1 %3161, label %3162, label %3184

3162:                                             ; preds = %3155
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @fileno(ptr noundef %3163) #11
  %3165 = call i32 @isatty(i32 noundef %3164) #11
  %3166 = icmp ne i32 %3165, 0
  br i1 %3166, label %3167, label %3184

3167:                                             ; preds = %3162
  %3168 = load i32, ptr %173, align 4, !tbaa !5
  %3169 = call ptr @__errno_location() #12
  store i32 %3168, ptr %3169, align 4, !tbaa !5
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = load i32, ptr @test_count, align 4, !tbaa !5
  %3172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3173 = load i32, ptr %3172, align 4, !tbaa !5
  %3174 = call ptr @s2n_strerror(i32 noundef %3173, ptr noundef @.str.33)
  %3175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3176 = load i32, ptr %3175, align 4, !tbaa !5
  %3177 = call ptr @s2n_strerror_debug(i32 noundef %3176, ptr noundef @.str.33)
  %3178 = call ptr @__errno_location() #12
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @strerror(i32 noundef %3179) #11
  %3181 = call ptr @__errno_location() #12
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3170, ptr noundef @.str.31, i32 noundef %3171, ptr noundef @.str.124, ptr noundef @.str.30, i32 noundef 570, ptr noundef %3174, ptr noundef %3177, ptr noundef %3180, i32 noundef %3182) #11
  br label %3201

3184:                                             ; preds = %3162, %3155
  %3185 = load i32, ptr %173, align 4, !tbaa !5
  %3186 = call ptr @__errno_location() #12
  store i32 %3185, ptr %3186, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @s2n_strerror(i32 noundef %3190, ptr noundef @.str.33)
  %3192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @s2n_strerror_debug(i32 noundef %3193, ptr noundef @.str.33)
  %3195 = call ptr @__errno_location() #12
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @strerror(i32 noundef %3196) #11
  %3198 = call ptr @__errno_location() #12
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3187, ptr noundef @.str.34, i32 noundef %3188, ptr noundef @.str.124, ptr noundef @.str.30, i32 noundef 570, ptr noundef %3191, ptr noundef %3194, ptr noundef %3197, i32 noundef %3199) #11
  br label %3201

3201:                                             ; preds = %3184, %3167
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %3202

3202:                                             ; preds = %3201
  br label %3203

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

3204:                                             ; No predecessors!
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

3206:                                             ; preds = %3205, %3145
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

3209:                                             ; preds = %3208
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  %3212 = load i32, ptr @test_count, align 4, !tbaa !5
  %3213 = add nsw i32 %3212, 1
  store i32 %3213, ptr @test_count, align 4, !tbaa !5
  %3214 = load ptr, ptr %172, align 8, !tbaa !9
  %3215 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %3214, ptr noundef null)
  %3216 = icmp eq i32 %3215, -1
  br i1 %3216, label %3270, label %3217

3217:                                             ; preds = %3211
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

3219:                                             ; preds = %3218
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %3220 = call ptr @__errno_location() #12
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  store i32 %3221, ptr %174, align 4, !tbaa !5
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = call i32 @s2n_print_stacktrace(ptr noundef %3222)
  %3224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3225 = trunc i8 %3224 to i1
  br i1 %3225, label %3226, label %3248

3226:                                             ; preds = %3219
  %3227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3228 = call i32 @fileno(ptr noundef %3227) #11
  %3229 = call i32 @isatty(i32 noundef %3228) #11
  %3230 = icmp ne i32 %3229, 0
  br i1 %3230, label %3231, label %3248

3231:                                             ; preds = %3226
  %3232 = load i32, ptr %174, align 4, !tbaa !5
  %3233 = call ptr @__errno_location() #12
  store i32 %3232, ptr %3233, align 4, !tbaa !5
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = load i32, ptr @test_count, align 4, !tbaa !5
  %3236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3237 = load i32, ptr %3236, align 4, !tbaa !5
  %3238 = call ptr @s2n_strerror(i32 noundef %3237, ptr noundef @.str.33)
  %3239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3240 = load i32, ptr %3239, align 4, !tbaa !5
  %3241 = call ptr @s2n_strerror_debug(i32 noundef %3240, ptr noundef @.str.33)
  %3242 = call ptr @__errno_location() #12
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  %3244 = call ptr @strerror(i32 noundef %3243) #11
  %3245 = call ptr @__errno_location() #12
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3234, ptr noundef @.str.31, i32 noundef %3235, ptr noundef @.str.125, ptr noundef @.str.30, i32 noundef 571, ptr noundef %3238, ptr noundef %3241, ptr noundef %3244, i32 noundef %3246) #11
  br label %3265

3248:                                             ; preds = %3226, %3219
  %3249 = load i32, ptr %174, align 4, !tbaa !5
  %3250 = call ptr @__errno_location() #12
  store i32 %3249, ptr %3250, align 4, !tbaa !5
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = load i32, ptr @test_count, align 4, !tbaa !5
  %3253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3254 = load i32, ptr %3253, align 4, !tbaa !5
  %3255 = call ptr @s2n_strerror(i32 noundef %3254, ptr noundef @.str.33)
  %3256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror_debug(i32 noundef %3257, ptr noundef @.str.33)
  %3259 = call ptr @__errno_location() #12
  %3260 = load i32, ptr %3259, align 4, !tbaa !5
  %3261 = call ptr @strerror(i32 noundef %3260) #11
  %3262 = call ptr @__errno_location() #12
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3251, ptr noundef @.str.34, i32 noundef %3252, ptr noundef @.str.125, ptr noundef @.str.30, i32 noundef 571, ptr noundef %3255, ptr noundef %3258, ptr noundef %3261, i32 noundef %3263) #11
  br label %3265

3265:                                             ; preds = %3248, %3231
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %3266

3266:                                             ; preds = %3265
  br label %3267

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

3268:                                             ; No predecessors!
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

3270:                                             ; preds = %3269, %3211
  br label %3271

3271:                                             ; preds = %3270
  br label %3272

3272:                                             ; preds = %3271
  br label %3273

3273:                                             ; preds = %3272
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = add nsw i32 %3274, 1
  store i32 %3275, ptr @test_count, align 4, !tbaa !5
  %3276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = icmp eq i32 %3277, 402653193
  br i1 %3278, label %3332, label %3279

3279:                                             ; preds = %3273
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

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

3288:                                             ; preds = %3281
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3290 = call i32 @fileno(ptr noundef %3289) #11
  %3291 = call i32 @isatty(i32 noundef %3290) #11
  %3292 = icmp ne i32 %3291, 0
  br i1 %3292, label %3293, label %3310

3293:                                             ; preds = %3288
  %3294 = load i32, ptr %175, align 4, !tbaa !5
  %3295 = call ptr @__errno_location() #12
  store i32 %3294, ptr %3295, align 4, !tbaa !5
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror(i32 noundef %3299, ptr noundef @.str.33)
  %3301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror_debug(i32 noundef %3302, ptr noundef @.str.33)
  %3304 = call ptr @__errno_location() #12
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @strerror(i32 noundef %3305) #11
  %3307 = call ptr @__errno_location() #12
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3296, ptr noundef @.str.31, i32 noundef %3297, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 571, ptr noundef %3300, ptr noundef %3303, ptr noundef %3306, i32 noundef %3308) #11
  br label %3327

3310:                                             ; preds = %3288, %3281
  %3311 = load i32, ptr %175, align 4, !tbaa !5
  %3312 = call ptr @__errno_location() #12
  store i32 %3311, ptr %3312, align 4, !tbaa !5
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = load i32, ptr @test_count, align 4, !tbaa !5
  %3315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror(i32 noundef %3316, ptr noundef @.str.33)
  %3318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror_debug(i32 noundef %3319, ptr noundef @.str.33)
  %3321 = call ptr @__errno_location() #12
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @strerror(i32 noundef %3322) #11
  %3324 = call ptr @__errno_location() #12
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3313, ptr noundef @.str.34, i32 noundef %3314, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 571, ptr noundef %3317, ptr noundef %3320, ptr noundef %3323, i32 noundef %3325) #11
  br label %3327

3327:                                             ; preds = %3310, %3293
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

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

3330:                                             ; No predecessors!
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

3332:                                             ; preds = %3331, %3273
  br label %3333

3333:                                             ; preds = %3332
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

3335:                                             ; preds = %3334
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = add nsw i32 %3336, 1
  store i32 %3337, ptr @test_count, align 4, !tbaa !5
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror_debug(i32 noundef %3339, ptr noundef @.str.33)
  %3341 = icmp eq ptr %3340, null
  br i1 %3341, label %3342, label %3395

3342:                                             ; preds = %3335
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

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

3351:                                             ; preds = %3344
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = call i32 @fileno(ptr noundef %3352) #11
  %3354 = call i32 @isatty(i32 noundef %3353) #11
  %3355 = icmp ne i32 %3354, 0
  br i1 %3355, label %3356, label %3373

3356:                                             ; preds = %3351
  %3357 = load i32, ptr %176, align 4, !tbaa !5
  %3358 = call ptr @__errno_location() #12
  store i32 %3357, ptr %3358, align 4, !tbaa !5
  %3359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call ptr @s2n_strerror(i32 noundef %3362, ptr noundef @.str.33)
  %3364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3365 = load i32, ptr %3364, align 4, !tbaa !5
  %3366 = call ptr @s2n_strerror_debug(i32 noundef %3365, ptr noundef @.str.33)
  %3367 = call ptr @__errno_location() #12
  %3368 = load i32, ptr %3367, align 4, !tbaa !5
  %3369 = call ptr @strerror(i32 noundef %3368) #11
  %3370 = call ptr @__errno_location() #12
  %3371 = load i32, ptr %3370, align 4, !tbaa !5
  %3372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3359, ptr noundef @.str.31, i32 noundef %3360, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 571, ptr noundef %3363, ptr noundef %3366, ptr noundef %3369, i32 noundef %3371) #11
  br label %3390

3373:                                             ; preds = %3351, %3344
  %3374 = load i32, ptr %176, align 4, !tbaa !5
  %3375 = call ptr @__errno_location() #12
  store i32 %3374, ptr %3375, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror(i32 noundef %3379, ptr noundef @.str.33)
  %3381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror_debug(i32 noundef %3382, ptr noundef @.str.33)
  %3384 = call ptr @__errno_location() #12
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call ptr @strerror(i32 noundef %3385) #11
  %3387 = call ptr @__errno_location() #12
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  %3389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3376, ptr noundef @.str.34, i32 noundef %3377, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 571, ptr noundef %3380, ptr noundef %3383, ptr noundef %3386, i32 noundef %3388) #11
  br label %3390

3390:                                             ; preds = %3373, %3356
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

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

3393:                                             ; No predecessors!
  br label %3394

3394:                                             ; preds = %3393
  br label %3395

3395:                                             ; preds = %3394, %3335
  br label %3396

3396:                                             ; preds = %3395
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

3398:                                             ; preds = %3397
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399
  %3401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3401, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3402 = call ptr @__errno_location() #12
  store i32 0, ptr %3402, align 4, !tbaa !5
  br label %3403

3403:                                             ; preds = %3400
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405
  call void @llvm.lifetime.start.p0(i64 24, ptr %177) #11
  call void @llvm.memset.p0.i64(ptr align 8 %177, i8 0, i64 24, i1 false)
  br label %3407

3407:                                             ; preds = %3406
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408
  %3410 = load i32, ptr @test_count, align 4, !tbaa !5
  %3411 = add nsw i32 %3410, 1
  store i32 %3411, ptr @test_count, align 4, !tbaa !5
  %3412 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef null, ptr noundef %177)
  %3413 = icmp eq i32 %3412, -1
  br i1 %3413, label %3467, label %3414

3414:                                             ; preds = %3409
  br label %3415

3415:                                             ; preds = %3414
  br label %3416

3416:                                             ; preds = %3415
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %3417 = call ptr @__errno_location() #12
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  store i32 %3418, ptr %178, align 4, !tbaa !5
  %3419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3420 = call i32 @s2n_print_stacktrace(ptr noundef %3419)
  %3421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3422 = trunc i8 %3421 to i1
  br i1 %3422, label %3423, label %3445

3423:                                             ; preds = %3416
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @fileno(ptr noundef %3424) #11
  %3426 = call i32 @isatty(i32 noundef %3425) #11
  %3427 = icmp ne i32 %3426, 0
  br i1 %3427, label %3428, label %3445

3428:                                             ; preds = %3423
  %3429 = load i32, ptr %178, align 4, !tbaa !5
  %3430 = call ptr @__errno_location() #12
  store i32 %3429, ptr %3430, align 4, !tbaa !5
  %3431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3432 = load i32, ptr @test_count, align 4, !tbaa !5
  %3433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call ptr @s2n_strerror(i32 noundef %3434, ptr noundef @.str.33)
  %3436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror_debug(i32 noundef %3437, ptr noundef @.str.33)
  %3439 = call ptr @__errno_location() #12
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @strerror(i32 noundef %3440) #11
  %3442 = call ptr @__errno_location() #12
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3431, ptr noundef @.str.31, i32 noundef %3432, ptr noundef @.str.126, ptr noundef @.str.30, i32 noundef 573, ptr noundef %3435, ptr noundef %3438, ptr noundef %3441, i32 noundef %3443) #11
  br label %3462

3445:                                             ; preds = %3423, %3416
  %3446 = load i32, ptr %178, align 4, !tbaa !5
  %3447 = call ptr @__errno_location() #12
  store i32 %3446, ptr %3447, align 4, !tbaa !5
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = load i32, ptr @test_count, align 4, !tbaa !5
  %3450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3451 = load i32, ptr %3450, align 4, !tbaa !5
  %3452 = call ptr @s2n_strerror(i32 noundef %3451, ptr noundef @.str.33)
  %3453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror_debug(i32 noundef %3454, ptr noundef @.str.33)
  %3456 = call ptr @__errno_location() #12
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @strerror(i32 noundef %3457) #11
  %3459 = call ptr @__errno_location() #12
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3448, ptr noundef @.str.34, i32 noundef %3449, ptr noundef @.str.126, ptr noundef @.str.30, i32 noundef 573, ptr noundef %3452, ptr noundef %3455, ptr noundef %3458, i32 noundef %3460) #11
  br label %3462

3462:                                             ; preds = %3445, %3428
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %3463

3463:                                             ; preds = %3462
  br label %3464

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

3465:                                             ; No predecessors!
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466, %3409
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

3469:                                             ; preds = %3468
  br label %3470

3470:                                             ; preds = %3469
  %3471 = load i32, ptr @test_count, align 4, !tbaa !5
  %3472 = add nsw i32 %3471, 1
  store i32 %3472, ptr @test_count, align 4, !tbaa !5
  %3473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = icmp eq i32 %3474, 402653193
  br i1 %3475, label %3529, label %3476

3476:                                             ; preds = %3470
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

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

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

3490:                                             ; preds = %3485
  %3491 = load i32, ptr %179, align 4, !tbaa !5
  %3492 = call ptr @__errno_location() #12
  store i32 %3491, ptr %3492, align 4, !tbaa !5
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = load i32, ptr @test_count, align 4, !tbaa !5
  %3495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call ptr @s2n_strerror(i32 noundef %3496, ptr noundef @.str.33)
  %3498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror_debug(i32 noundef %3499, ptr noundef @.str.33)
  %3501 = call ptr @__errno_location() #12
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @strerror(i32 noundef %3502) #11
  %3504 = call ptr @__errno_location() #12
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3493, ptr noundef @.str.31, i32 noundef %3494, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 573, ptr noundef %3497, ptr noundef %3500, ptr noundef %3503, i32 noundef %3505) #11
  br label %3524

3507:                                             ; preds = %3485, %3478
  %3508 = load i32, ptr %179, align 4, !tbaa !5
  %3509 = call ptr @__errno_location() #12
  store i32 %3508, ptr %3509, align 4, !tbaa !5
  %3510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3511 = load i32, ptr @test_count, align 4, !tbaa !5
  %3512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @s2n_strerror(i32 noundef %3513, ptr noundef @.str.33)
  %3515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @s2n_strerror_debug(i32 noundef %3516, ptr noundef @.str.33)
  %3518 = call ptr @__errno_location() #12
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call ptr @strerror(i32 noundef %3519) #11
  %3521 = call ptr @__errno_location() #12
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3510, ptr noundef @.str.34, i32 noundef %3511, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 573, ptr noundef %3514, ptr noundef %3517, ptr noundef %3520, i32 noundef %3522) #11
  br label %3524

3524:                                             ; preds = %3507, %3490
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %3525

3525:                                             ; preds = %3524
  br label %3526

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

3527:                                             ; No predecessors!
  br label %3528

3528:                                             ; preds = %3527
  br label %3529

3529:                                             ; preds = %3528, %3470
  br label %3530

3530:                                             ; preds = %3529
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = add nsw i32 %3533, 1
  store i32 %3534, ptr @test_count, align 4, !tbaa !5
  %3535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror_debug(i32 noundef %3536, ptr noundef @.str.33)
  %3538 = icmp eq ptr %3537, null
  br i1 %3538, label %3539, label %3592

3539:                                             ; preds = %3532
  br label %3540

3540:                                             ; preds = %3539
  br label %3541

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

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

3553:                                             ; preds = %3548
  %3554 = load i32, ptr %180, align 4, !tbaa !5
  %3555 = call ptr @__errno_location() #12
  store i32 %3554, ptr %3555, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @s2n_strerror(i32 noundef %3559, ptr noundef @.str.33)
  %3561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror_debug(i32 noundef %3562, ptr noundef @.str.33)
  %3564 = call ptr @__errno_location() #12
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call ptr @strerror(i32 noundef %3565) #11
  %3567 = call ptr @__errno_location() #12
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef @.str.31, i32 noundef %3557, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 573, ptr noundef %3560, ptr noundef %3563, ptr noundef %3566, i32 noundef %3568) #11
  br label %3587

3570:                                             ; preds = %3548, %3541
  %3571 = load i32, ptr %180, align 4, !tbaa !5
  %3572 = call ptr @__errno_location() #12
  store i32 %3571, ptr %3572, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = load i32, ptr @test_count, align 4, !tbaa !5
  %3575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror(i32 noundef %3576, ptr noundef @.str.33)
  %3578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror_debug(i32 noundef %3579, ptr noundef @.str.33)
  %3581 = call ptr @__errno_location() #12
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call ptr @strerror(i32 noundef %3582) #11
  %3584 = call ptr @__errno_location() #12
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3573, ptr noundef @.str.34, i32 noundef %3574, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 573, ptr noundef %3577, ptr noundef %3580, ptr noundef %3583, i32 noundef %3585) #11
  br label %3587

3587:                                             ; preds = %3570, %3553
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %3588

3588:                                             ; preds = %3587
  br label %3589

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

3590:                                             ; No predecessors!
  br label %3591

3591:                                             ; preds = %3590
  br label %3592

3592:                                             ; preds = %3591, %3532
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596
  %3598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3598, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3599 = call ptr @__errno_location() #12
  store i32 0, ptr %3599, align 4, !tbaa !5
  br label %3600

3600:                                             ; preds = %3597
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

3603:                                             ; preds = %3602
  %3604 = load ptr, ptr %172, align 8, !tbaa !9
  %3605 = getelementptr inbounds %struct.s2n_connection, ptr %3604, i32 0, i32 31
  %3606 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3605, i32 0, i32 1
  %3607 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3606, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp256r1, ptr %3607, align 8, !tbaa !78
  br label %3608

3608:                                             ; preds = %3603
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

3610:                                             ; preds = %3609
  %3611 = load i32, ptr @test_count, align 4, !tbaa !5
  %3612 = add nsw i32 %3611, 1
  store i32 %3612, ptr @test_count, align 4, !tbaa !5
  %3613 = load ptr, ptr %172, align 8, !tbaa !9
  %3614 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %3613, ptr noundef %177)
  %3615 = icmp eq i32 %3614, -1
  br i1 %3615, label %3669, label %3616

3616:                                             ; preds = %3610
  br label %3617

3617:                                             ; preds = %3616
  br label %3618

3618:                                             ; preds = %3617
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %3619 = call ptr @__errno_location() #12
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  store i32 %3620, ptr %181, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = call i32 @s2n_print_stacktrace(ptr noundef %3621)
  %3623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3624 = trunc i8 %3623 to i1
  br i1 %3624, label %3625, label %3647

3625:                                             ; preds = %3618
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @fileno(ptr noundef %3626) #11
  %3628 = call i32 @isatty(i32 noundef %3627) #11
  %3629 = icmp ne i32 %3628, 0
  br i1 %3629, label %3630, label %3647

3630:                                             ; preds = %3625
  %3631 = load i32, ptr %181, align 4, !tbaa !5
  %3632 = call ptr @__errno_location() #12
  store i32 %3631, ptr %3632, align 4, !tbaa !5
  %3633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3634 = load i32, ptr @test_count, align 4, !tbaa !5
  %3635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call ptr @s2n_strerror(i32 noundef %3636, ptr noundef @.str.33)
  %3638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror_debug(i32 noundef %3639, ptr noundef @.str.33)
  %3641 = call ptr @__errno_location() #12
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @strerror(i32 noundef %3642) #11
  %3644 = call ptr @__errno_location() #12
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3633, ptr noundef @.str.31, i32 noundef %3634, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 577, ptr noundef %3637, ptr noundef %3640, ptr noundef %3643, i32 noundef %3645) #11
  br label %3664

3647:                                             ; preds = %3625, %3618
  %3648 = load i32, ptr %181, align 4, !tbaa !5
  %3649 = call ptr @__errno_location() #12
  store i32 %3648, ptr %3649, align 4, !tbaa !5
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror(i32 noundef %3653, ptr noundef @.str.33)
  %3655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call ptr @s2n_strerror_debug(i32 noundef %3656, ptr noundef @.str.33)
  %3658 = call ptr @__errno_location() #12
  %3659 = load i32, ptr %3658, align 4, !tbaa !5
  %3660 = call ptr @strerror(i32 noundef %3659) #11
  %3661 = call ptr @__errno_location() #12
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3650, ptr noundef @.str.34, i32 noundef %3651, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 577, ptr noundef %3654, ptr noundef %3657, ptr noundef %3660, i32 noundef %3662) #11
  br label %3664

3664:                                             ; preds = %3647, %3630
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %3665

3665:                                             ; preds = %3664
  br label %3666

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

3667:                                             ; No predecessors!
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668, %3610
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

3671:                                             ; preds = %3670
  br label %3672

3672:                                             ; preds = %3671
  %3673 = load i32, ptr @test_count, align 4, !tbaa !5
  %3674 = add nsw i32 %3673, 1
  store i32 %3674, ptr @test_count, align 4, !tbaa !5
  %3675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = icmp eq i32 %3676, 402653194
  br i1 %3677, label %3731, label %3678

3678:                                             ; preds = %3672
  br label %3679

3679:                                             ; preds = %3678
  br label %3680

3680:                                             ; preds = %3679
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %3681 = call ptr @__errno_location() #12
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  store i32 %3682, ptr %182, align 4, !tbaa !5
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = call i32 @s2n_print_stacktrace(ptr noundef %3683)
  %3685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3686 = trunc i8 %3685 to i1
  br i1 %3686, label %3687, label %3709

3687:                                             ; preds = %3680
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @fileno(ptr noundef %3688) #11
  %3690 = call i32 @isatty(i32 noundef %3689) #11
  %3691 = icmp ne i32 %3690, 0
  br i1 %3691, label %3692, label %3709

3692:                                             ; preds = %3687
  %3693 = load i32, ptr %182, align 4, !tbaa !5
  %3694 = call ptr @__errno_location() #12
  store i32 %3693, ptr %3694, align 4, !tbaa !5
  %3695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3696 = load i32, ptr @test_count, align 4, !tbaa !5
  %3697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror(i32 noundef %3698, ptr noundef @.str.33)
  %3700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3701 = load i32, ptr %3700, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror_debug(i32 noundef %3701, ptr noundef @.str.33)
  %3703 = call ptr @__errno_location() #12
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @strerror(i32 noundef %3704) #11
  %3706 = call ptr @__errno_location() #12
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3695, ptr noundef @.str.31, i32 noundef %3696, ptr noundef @.str.128, ptr noundef @.str.30, i32 noundef 577, ptr noundef %3699, ptr noundef %3702, ptr noundef %3705, i32 noundef %3707) #11
  br label %3726

3709:                                             ; preds = %3687, %3680
  %3710 = load i32, ptr %182, align 4, !tbaa !5
  %3711 = call ptr @__errno_location() #12
  store i32 %3710, ptr %3711, align 4, !tbaa !5
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3715 = load i32, ptr %3714, align 4, !tbaa !5
  %3716 = call ptr @s2n_strerror(i32 noundef %3715, ptr noundef @.str.33)
  %3717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call ptr @s2n_strerror_debug(i32 noundef %3718, ptr noundef @.str.33)
  %3720 = call ptr @__errno_location() #12
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @strerror(i32 noundef %3721) #11
  %3723 = call ptr @__errno_location() #12
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3712, ptr noundef @.str.34, i32 noundef %3713, ptr noundef @.str.128, ptr noundef @.str.30, i32 noundef 577, ptr noundef %3716, ptr noundef %3719, ptr noundef %3722, i32 noundef %3724) #11
  br label %3726

3726:                                             ; preds = %3709, %3692
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

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

3729:                                             ; No predecessors!
  br label %3730

3730:                                             ; preds = %3729
  br label %3731

3731:                                             ; preds = %3730, %3672
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

3734:                                             ; preds = %3733
  %3735 = load i32, ptr @test_count, align 4, !tbaa !5
  %3736 = add nsw i32 %3735, 1
  store i32 %3736, ptr @test_count, align 4, !tbaa !5
  %3737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @s2n_strerror_debug(i32 noundef %3738, ptr noundef @.str.33)
  %3740 = icmp eq ptr %3739, null
  br i1 %3740, label %3741, label %3794

3741:                                             ; preds = %3734
  br label %3742

3742:                                             ; preds = %3741
  br label %3743

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

3750:                                             ; preds = %3743
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @fileno(ptr noundef %3751) #11
  %3753 = call i32 @isatty(i32 noundef %3752) #11
  %3754 = icmp ne i32 %3753, 0
  br i1 %3754, label %3755, label %3772

3755:                                             ; preds = %3750
  %3756 = load i32, ptr %183, align 4, !tbaa !5
  %3757 = call ptr @__errno_location() #12
  store i32 %3756, ptr %3757, align 4, !tbaa !5
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = load i32, ptr @test_count, align 4, !tbaa !5
  %3760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @s2n_strerror(i32 noundef %3761, ptr noundef @.str.33)
  %3763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror_debug(i32 noundef %3764, ptr noundef @.str.33)
  %3766 = call ptr @__errno_location() #12
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @strerror(i32 noundef %3767) #11
  %3769 = call ptr @__errno_location() #12
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3758, ptr noundef @.str.31, i32 noundef %3759, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 577, ptr noundef %3762, ptr noundef %3765, ptr noundef %3768, i32 noundef %3770) #11
  br label %3789

3772:                                             ; preds = %3750, %3743
  %3773 = load i32, ptr %183, align 4, !tbaa !5
  %3774 = call ptr @__errno_location() #12
  store i32 %3773, ptr %3774, align 4, !tbaa !5
  %3775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3776 = load i32, ptr @test_count, align 4, !tbaa !5
  %3777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = call ptr @s2n_strerror(i32 noundef %3778, ptr noundef @.str.33)
  %3780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror_debug(i32 noundef %3781, ptr noundef @.str.33)
  %3783 = call ptr @__errno_location() #12
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @strerror(i32 noundef %3784) #11
  %3786 = call ptr @__errno_location() #12
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3775, ptr noundef @.str.34, i32 noundef %3776, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 577, ptr noundef %3779, ptr noundef %3782, ptr noundef %3785, i32 noundef %3787) #11
  br label %3789

3789:                                             ; preds = %3772, %3755
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %3790

3790:                                             ; preds = %3789
  br label %3791

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

3792:                                             ; No predecessors!
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793, %3734
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

3797:                                             ; preds = %3796
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798
  %3800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3800, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3801 = call ptr @__errno_location() #12
  store i32 0, ptr %3801, align 4, !tbaa !5
  br label %3802

3802:                                             ; preds = %3799
  br label %3803

3803:                                             ; preds = %3802
  br label %3804

3804:                                             ; preds = %3803
  br label %3805

3805:                                             ; preds = %3804
  %3806 = load ptr, ptr %172, align 8, !tbaa !9
  %3807 = getelementptr inbounds %struct.s2n_connection, ptr %3806, i32 0, i32 31
  %3808 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3807, i32 0, i32 1
  %3809 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3808, i32 0, i32 0
  store ptr null, ptr %3809, align 8, !tbaa !78
  br label %3810

3810:                                             ; preds = %3805
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %3812 = add nsw i32 %3811, 1
  store i32 %3812, ptr @test_count, align 4, !tbaa !5
  %3813 = load ptr, ptr %172, align 8, !tbaa !9
  %3814 = getelementptr inbounds %struct.s2n_connection, ptr %3813, i32 0, i32 31
  %3815 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3814, i32 0, i32 1
  %3816 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3815, i32 0, i32 1
  %3817 = load ptr, ptr %166, align 8, !tbaa !9
  %3818 = getelementptr inbounds %struct.hybrid_test_vector, ptr %3817, i32 0, i32 3
  %3819 = load ptr, ptr %3818, align 8, !tbaa !19
  %3820 = call i32 @read_priv_ecc(ptr noundef %3816, ptr noundef %3819)
  %3821 = icmp eq i32 %3820, -1
  br i1 %3821, label %3822, label %3875

3822:                                             ; preds = %3810
  br label %3823

3823:                                             ; preds = %3822
  br label %3824

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

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

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

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

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

3871:                                             ; preds = %3870
  br label %3872

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

3873:                                             ; No predecessors!
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

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

3876:                                             ; preds = %3875
  br label %3877

3877:                                             ; preds = %3876
  br label %3878

3878:                                             ; preds = %3877
  br label %3879

3879:                                             ; preds = %3878
  br label %3880

3880:                                             ; preds = %3879
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = add nsw i32 %3881, 1
  store i32 %3882, ptr @test_count, align 4, !tbaa !5
  %3883 = load ptr, ptr %172, align 8, !tbaa !9
  %3884 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %3883, ptr noundef %177)
  %3885 = icmp eq i32 %3884, -1
  br i1 %3885, label %3939, label %3886

3886:                                             ; preds = %3880
  br label %3887

3887:                                             ; preds = %3886
  br label %3888

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

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

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

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

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

3935:                                             ; preds = %3934
  br label %3936

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

3937:                                             ; No predecessors!
  br label %3938

3938:                                             ; preds = %3937
  br label %3939

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

3940:                                             ; preds = %3939
  br label %3941

3941:                                             ; preds = %3940
  br label %3942

3942:                                             ; preds = %3941
  %3943 = load i32, ptr @test_count, align 4, !tbaa !5
  %3944 = add nsw i32 %3943, 1
  store i32 %3944, ptr @test_count, align 4, !tbaa !5
  %3945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = icmp eq i32 %3946, 402653194
  br i1 %3947, label %4001, label %3948

3948:                                             ; preds = %3942
  br label %3949

3949:                                             ; preds = %3948
  br label %3950

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

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

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

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

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

3997:                                             ; preds = %3996
  br label %3998

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

3999:                                             ; No predecessors!
  br label %4000

4000:                                             ; preds = %3999
  br label %4001

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

4002:                                             ; preds = %4001
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

4004:                                             ; preds = %4003
  %4005 = load i32, ptr @test_count, align 4, !tbaa !5
  %4006 = add nsw i32 %4005, 1
  store i32 %4006, ptr @test_count, align 4, !tbaa !5
  %4007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4008 = load i32, ptr %4007, align 4, !tbaa !5
  %4009 = call ptr @s2n_strerror_debug(i32 noundef %4008, ptr noundef @.str.33)
  %4010 = icmp eq ptr %4009, null
  br i1 %4010, label %4011, label %4064

4011:                                             ; preds = %4004
  br label %4012

4012:                                             ; preds = %4011
  br label %4013

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

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

4025:                                             ; preds = %4020
  %4026 = load i32, ptr %187, align 4, !tbaa !5
  %4027 = call ptr @__errno_location() #12
  store i32 %4026, ptr %4027, align 4, !tbaa !5
  %4028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4029 = load i32, ptr @test_count, align 4, !tbaa !5
  %4030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4031 = load i32, ptr %4030, align 4, !tbaa !5
  %4032 = call ptr @s2n_strerror(i32 noundef %4031, ptr noundef @.str.33)
  %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_debug(i32 noundef %4034, ptr noundef @.str.33)
  %4036 = call ptr @__errno_location() #12
  %4037 = load i32, ptr %4036, align 4, !tbaa !5
  %4038 = call ptr @strerror(i32 noundef %4037) #11
  %4039 = call ptr @__errno_location() #12
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4028, ptr noundef @.str.31, i32 noundef %4029, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 580, ptr noundef %4032, ptr noundef %4035, ptr noundef %4038, i32 noundef %4040) #11
  br label %4059

4042:                                             ; preds = %4020, %4013
  %4043 = load i32, ptr %187, align 4, !tbaa !5
  %4044 = call ptr @__errno_location() #12
  store i32 %4043, ptr %4044, align 4, !tbaa !5
  %4045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4046 = load i32, ptr @test_count, align 4, !tbaa !5
  %4047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @s2n_strerror(i32 noundef %4048, ptr noundef @.str.33)
  %4050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call ptr @s2n_strerror_debug(i32 noundef %4051, ptr noundef @.str.33)
  %4053 = call ptr @__errno_location() #12
  %4054 = load i32, ptr %4053, align 4, !tbaa !5
  %4055 = call ptr @strerror(i32 noundef %4054) #11
  %4056 = call ptr @__errno_location() #12
  %4057 = load i32, ptr %4056, align 4, !tbaa !5
  %4058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4045, ptr noundef @.str.34, i32 noundef %4046, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 580, ptr noundef %4049, ptr noundef %4052, ptr noundef %4055, i32 noundef %4057) #11
  br label %4059

4059:                                             ; preds = %4042, %4025
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %4060

4060:                                             ; preds = %4059
  br label %4061

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

4062:                                             ; No predecessors!
  br label %4063

4063:                                             ; preds = %4062
  br label %4064

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

4065:                                             ; preds = %4064
  br label %4066

4066:                                             ; preds = %4065
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

4069:                                             ; preds = %4068
  %4070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4070, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4071 = call ptr @__errno_location() #12
  store i32 0, ptr %4071, align 4, !tbaa !5
  br label %4072

4072:                                             ; preds = %4069
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074
  br label %4076

4076:                                             ; preds = %4075
  %4077 = load i32, ptr @test_count, align 4, !tbaa !5
  %4078 = add nsw i32 %4077, 1
  store i32 %4078, ptr @test_count, align 4, !tbaa !5
  %4079 = load ptr, ptr %172, align 8, !tbaa !9
  %4080 = getelementptr inbounds %struct.s2n_connection, ptr %4079, i32 0, i32 31
  %4081 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4080, i32 0, i32 1
  %4082 = call i32 @s2n_ecc_evp_params_free(ptr noundef %4081)
  %4083 = icmp eq i32 %4082, -1
  br i1 %4083, label %4084, label %4137

4084:                                             ; preds = %4076
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

4086:                                             ; preds = %4085
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %4087 = call ptr @__errno_location() #12
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  store i32 %4088, ptr %188, align 4, !tbaa !5
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = call i32 @s2n_print_stacktrace(ptr noundef %4089)
  %4091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4092 = trunc i8 %4091 to i1
  br i1 %4092, label %4093, label %4115

4093:                                             ; preds = %4086
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = call i32 @fileno(ptr noundef %4094) #11
  %4096 = call i32 @isatty(i32 noundef %4095) #11
  %4097 = icmp ne i32 %4096, 0
  br i1 %4097, label %4098, label %4115

4098:                                             ; preds = %4093
  %4099 = load i32, ptr %188, align 4, !tbaa !5
  %4100 = call ptr @__errno_location() #12
  store i32 %4099, ptr %4100, align 4, !tbaa !5
  %4101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4102 = load i32, ptr @test_count, align 4, !tbaa !5
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror(i32 noundef %4104, ptr noundef @.str.33)
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror_debug(i32 noundef %4107, ptr noundef @.str.33)
  %4109 = call ptr @__errno_location() #12
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @strerror(i32 noundef %4110) #11
  %4112 = call ptr @__errno_location() #12
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4101, ptr noundef @.str.31, i32 noundef %4102, ptr noundef @.str.130, ptr noundef @.str.30, i32 noundef 581, ptr noundef %4105, ptr noundef %4108, ptr noundef %4111, i32 noundef %4113) #11
  br label %4132

4115:                                             ; preds = %4093, %4086
  %4116 = load i32, ptr %188, align 4, !tbaa !5
  %4117 = call ptr @__errno_location() #12
  store i32 %4116, ptr %4117, align 4, !tbaa !5
  %4118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4119 = load i32, ptr @test_count, align 4, !tbaa !5
  %4120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @s2n_strerror(i32 noundef %4121, ptr noundef @.str.33)
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror_debug(i32 noundef %4124, ptr noundef @.str.33)
  %4126 = call ptr @__errno_location() #12
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @strerror(i32 noundef %4127) #11
  %4129 = call ptr @__errno_location() #12
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4118, ptr noundef @.str.34, i32 noundef %4119, ptr noundef @.str.130, ptr noundef @.str.30, i32 noundef 581, ptr noundef %4122, ptr noundef %4125, ptr noundef %4128, i32 noundef %4130) #11
  br label %4132

4132:                                             ; preds = %4115, %4098
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %4133

4133:                                             ; preds = %4132
  br label %4134

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

4135:                                             ; No predecessors!
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

4137:                                             ; preds = %4136, %4076
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139
  br label %4141

4141:                                             ; preds = %4140
  br label %4142

4142:                                             ; preds = %4141
  %4143 = load i32, ptr @test_count, align 4, !tbaa !5
  %4144 = add nsw i32 %4143, 1
  store i32 %4144, ptr @test_count, align 4, !tbaa !5
  %4145 = load ptr, ptr %172, align 8, !tbaa !9
  %4146 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %4145, ptr noundef %177)
  %4147 = icmp eq i32 %4146, -1
  br i1 %4147, label %4201, label %4148

4148:                                             ; preds = %4142
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %4151 = call ptr @__errno_location() #12
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  store i32 %4152, ptr %189, align 4, !tbaa !5
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = call i32 @s2n_print_stacktrace(ptr noundef %4153)
  %4155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4156 = trunc i8 %4155 to i1
  br i1 %4156, label %4157, label %4179

4157:                                             ; preds = %4150
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = call i32 @fileno(ptr noundef %4158) #11
  %4160 = call i32 @isatty(i32 noundef %4159) #11
  %4161 = icmp ne i32 %4160, 0
  br i1 %4161, label %4162, label %4179

4162:                                             ; preds = %4157
  %4163 = load i32, ptr %189, align 4, !tbaa !5
  %4164 = call ptr @__errno_location() #12
  store i32 %4163, ptr %4164, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = load i32, ptr @test_count, align 4, !tbaa !5
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror(i32 noundef %4168, ptr noundef @.str.33)
  %4170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @s2n_strerror_debug(i32 noundef %4171, ptr noundef @.str.33)
  %4173 = call ptr @__errno_location() #12
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @strerror(i32 noundef %4174) #11
  %4176 = call ptr @__errno_location() #12
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4165, ptr noundef @.str.31, i32 noundef %4166, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 584, ptr noundef %4169, ptr noundef %4172, ptr noundef %4175, i32 noundef %4177) #11
  br label %4196

4179:                                             ; preds = %4157, %4150
  %4180 = load i32, ptr %189, align 4, !tbaa !5
  %4181 = call ptr @__errno_location() #12
  store i32 %4180, ptr %4181, align 4, !tbaa !5
  %4182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror(i32 noundef %4185, ptr noundef @.str.33)
  %4187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror_debug(i32 noundef %4188, ptr noundef @.str.33)
  %4190 = call ptr @__errno_location() #12
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call ptr @strerror(i32 noundef %4191) #11
  %4193 = call ptr @__errno_location() #12
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4182, ptr noundef @.str.34, i32 noundef %4183, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 584, ptr noundef %4186, ptr noundef %4189, ptr noundef %4192, i32 noundef %4194) #11
  br label %4196

4196:                                             ; preds = %4179, %4162
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

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

4199:                                             ; No predecessors!
  br label %4200

4200:                                             ; preds = %4199
  br label %4201

4201:                                             ; preds = %4200, %4142
  br label %4202

4202:                                             ; preds = %4201
  br label %4203

4203:                                             ; preds = %4202
  br label %4204

4204:                                             ; preds = %4203
  %4205 = load i32, ptr @test_count, align 4, !tbaa !5
  %4206 = add nsw i32 %4205, 1
  store i32 %4206, ptr @test_count, align 4, !tbaa !5
  %4207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = icmp eq i32 %4208, 402653193
  br i1 %4209, label %4263, label %4210

4210:                                             ; preds = %4204
  br label %4211

4211:                                             ; preds = %4210
  br label %4212

4212:                                             ; preds = %4211
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %4213 = call ptr @__errno_location() #12
  %4214 = load i32, ptr %4213, align 4, !tbaa !5
  store i32 %4214, ptr %190, align 4, !tbaa !5
  %4215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4216 = call i32 @s2n_print_stacktrace(ptr noundef %4215)
  %4217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4218 = trunc i8 %4217 to i1
  br i1 %4218, label %4219, label %4241

4219:                                             ; preds = %4212
  %4220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4221 = call i32 @fileno(ptr noundef %4220) #11
  %4222 = call i32 @isatty(i32 noundef %4221) #11
  %4223 = icmp ne i32 %4222, 0
  br i1 %4223, label %4224, label %4241

4224:                                             ; preds = %4219
  %4225 = load i32, ptr %190, align 4, !tbaa !5
  %4226 = call ptr @__errno_location() #12
  store i32 %4225, ptr %4226, align 4, !tbaa !5
  %4227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4228 = load i32, ptr @test_count, align 4, !tbaa !5
  %4229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call ptr @s2n_strerror(i32 noundef %4230, ptr noundef @.str.33)
  %4232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror_debug(i32 noundef %4233, ptr noundef @.str.33)
  %4235 = call ptr @__errno_location() #12
  %4236 = load i32, ptr %4235, align 4, !tbaa !5
  %4237 = call ptr @strerror(i32 noundef %4236) #11
  %4238 = call ptr @__errno_location() #12
  %4239 = load i32, ptr %4238, align 4, !tbaa !5
  %4240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4227, ptr noundef @.str.31, i32 noundef %4228, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 584, ptr noundef %4231, ptr noundef %4234, ptr noundef %4237, i32 noundef %4239) #11
  br label %4258

4241:                                             ; preds = %4219, %4212
  %4242 = load i32, ptr %190, align 4, !tbaa !5
  %4243 = call ptr @__errno_location() #12
  store i32 %4242, ptr %4243, align 4, !tbaa !5
  %4244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4245 = load i32, ptr @test_count, align 4, !tbaa !5
  %4246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror(i32 noundef %4247, ptr noundef @.str.33)
  %4249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call ptr @s2n_strerror_debug(i32 noundef %4250, ptr noundef @.str.33)
  %4252 = call ptr @__errno_location() #12
  %4253 = load i32, ptr %4252, align 4, !tbaa !5
  %4254 = call ptr @strerror(i32 noundef %4253) #11
  %4255 = call ptr @__errno_location() #12
  %4256 = load i32, ptr %4255, align 4, !tbaa !5
  %4257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4244, ptr noundef @.str.34, i32 noundef %4245, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 584, ptr noundef %4248, ptr noundef %4251, ptr noundef %4254, i32 noundef %4256) #11
  br label %4258

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

4259:                                             ; preds = %4258
  br label %4260

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

4261:                                             ; No predecessors!
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

4263:                                             ; preds = %4262, %4204
  br label %4264

4264:                                             ; preds = %4263
  br label %4265

4265:                                             ; preds = %4264
  br label %4266

4266:                                             ; preds = %4265
  %4267 = load i32, ptr @test_count, align 4, !tbaa !5
  %4268 = add nsw i32 %4267, 1
  store i32 %4268, ptr @test_count, align 4, !tbaa !5
  %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.33)
  %4272 = icmp eq ptr %4271, null
  br i1 %4272, label %4273, label %4326

4273:                                             ; preds = %4266
  br label %4274

4274:                                             ; preds = %4273
  br label %4275

4275:                                             ; preds = %4274
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %4276 = call ptr @__errno_location() #12
  %4277 = load i32, ptr %4276, align 4, !tbaa !5
  store i32 %4277, ptr %191, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = call i32 @s2n_print_stacktrace(ptr noundef %4278)
  %4280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4281 = trunc i8 %4280 to i1
  br i1 %4281, label %4282, label %4304

4282:                                             ; preds = %4275
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @fileno(ptr noundef %4283) #11
  %4285 = call i32 @isatty(i32 noundef %4284) #11
  %4286 = icmp ne i32 %4285, 0
  br i1 %4286, label %4287, label %4304

4287:                                             ; preds = %4282
  %4288 = load i32, ptr %191, align 4, !tbaa !5
  %4289 = call ptr @__errno_location() #12
  store i32 %4288, ptr %4289, align 4, !tbaa !5
  %4290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4291 = load i32, ptr @test_count, align 4, !tbaa !5
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror(i32 noundef %4293, ptr noundef @.str.33)
  %4295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror_debug(i32 noundef %4296, ptr noundef @.str.33)
  %4298 = call ptr @__errno_location() #12
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @strerror(i32 noundef %4299) #11
  %4301 = call ptr @__errno_location() #12
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4290, ptr noundef @.str.31, i32 noundef %4291, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 584, ptr noundef %4294, ptr noundef %4297, ptr noundef %4300, i32 noundef %4302) #11
  br label %4321

4304:                                             ; preds = %4282, %4275
  %4305 = load i32, ptr %191, align 4, !tbaa !5
  %4306 = call ptr @__errno_location() #12
  store i32 %4305, ptr %4306, align 4, !tbaa !5
  %4307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4308 = load i32, ptr @test_count, align 4, !tbaa !5
  %4309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror(i32 noundef %4310, ptr noundef @.str.33)
  %4312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call ptr @s2n_strerror_debug(i32 noundef %4313, ptr noundef @.str.33)
  %4315 = call ptr @__errno_location() #12
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @strerror(i32 noundef %4316) #11
  %4318 = call ptr @__errno_location() #12
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4307, ptr noundef @.str.34, i32 noundef %4308, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 584, ptr noundef %4311, ptr noundef %4314, ptr noundef %4317, i32 noundef %4319) #11
  br label %4321

4321:                                             ; preds = %4304, %4287
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %4322

4322:                                             ; preds = %4321
  br label %4323

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

4324:                                             ; No predecessors!
  br label %4325

4325:                                             ; preds = %4324
  br label %4326

4326:                                             ; preds = %4325, %4266
  br label %4327

4327:                                             ; preds = %4326
  br label %4328

4328:                                             ; preds = %4327
  br label %4329

4329:                                             ; preds = %4328
  br label %4330

4330:                                             ; preds = %4329
  br label %4331

4331:                                             ; preds = %4330
  %4332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4332, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4333 = call ptr @__errno_location() #12
  store i32 0, ptr %4333, align 4, !tbaa !5
  br label %4334

4334:                                             ; preds = %4331
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

4336:                                             ; preds = %4335
  br label %4337

4337:                                             ; preds = %4336
  br label %4338

4338:                                             ; preds = %4337
  br label %4339

4339:                                             ; preds = %4338
  br label %4340

4340:                                             ; preds = %4339
  %4341 = load i32, ptr @test_count, align 4, !tbaa !5
  %4342 = add nsw i32 %4341, 1
  store i32 %4342, ptr @test_count, align 4, !tbaa !5
  %4343 = load ptr, ptr %172, align 8, !tbaa !9
  %4344 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %4343, ptr noundef %177)
  %4345 = icmp eq i32 %4344, -1
  br i1 %4345, label %4399, label %4346

4346:                                             ; preds = %4340
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

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

4355:                                             ; preds = %4348
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = call i32 @fileno(ptr noundef %4356) #11
  %4358 = call i32 @isatty(i32 noundef %4357) #11
  %4359 = icmp ne i32 %4358, 0
  br i1 %4359, label %4360, label %4377

4360:                                             ; preds = %4355
  %4361 = load i32, ptr %192, align 4, !tbaa !5
  %4362 = call ptr @__errno_location() #12
  store i32 %4361, ptr %4362, align 4, !tbaa !5
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = load i32, ptr @test_count, align 4, !tbaa !5
  %4365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @s2n_strerror(i32 noundef %4366, ptr noundef @.str.33)
  %4368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call ptr @s2n_strerror_debug(i32 noundef %4369, ptr noundef @.str.33)
  %4371 = call ptr @__errno_location() #12
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call ptr @strerror(i32 noundef %4372) #11
  %4374 = call ptr @__errno_location() #12
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4363, ptr noundef @.str.31, i32 noundef %4364, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 587, ptr noundef %4367, ptr noundef %4370, ptr noundef %4373, i32 noundef %4375) #11
  br label %4394

4377:                                             ; preds = %4355, %4348
  %4378 = load i32, ptr %192, align 4, !tbaa !5
  %4379 = call ptr @__errno_location() #12
  store i32 %4378, ptr %4379, align 4, !tbaa !5
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = load i32, ptr @test_count, align 4, !tbaa !5
  %4382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @s2n_strerror(i32 noundef %4383, ptr noundef @.str.33)
  %4385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @s2n_strerror_debug(i32 noundef %4386, ptr noundef @.str.33)
  %4388 = call ptr @__errno_location() #12
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call ptr @strerror(i32 noundef %4389) #11
  %4391 = call ptr @__errno_location() #12
  %4392 = load i32, ptr %4391, align 4, !tbaa !5
  %4393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4380, ptr noundef @.str.34, i32 noundef %4381, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 587, ptr noundef %4384, ptr noundef %4387, ptr noundef %4390, i32 noundef %4392) #11
  br label %4394

4394:                                             ; preds = %4377, %4360
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %4395

4395:                                             ; preds = %4394
  br label %4396

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

4397:                                             ; No predecessors!
  br label %4398

4398:                                             ; preds = %4397
  br label %4399

4399:                                             ; preds = %4398, %4340
  br label %4400

4400:                                             ; preds = %4399
  br label %4401

4401:                                             ; preds = %4400
  br label %4402

4402:                                             ; preds = %4401
  %4403 = load i32, ptr @test_count, align 4, !tbaa !5
  %4404 = add nsw i32 %4403, 1
  store i32 %4404, ptr @test_count, align 4, !tbaa !5
  %4405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = icmp eq i32 %4406, 402653193
  br i1 %4407, label %4461, label %4408

4408:                                             ; preds = %4402
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

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

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

4422:                                             ; preds = %4417
  %4423 = load i32, ptr %193, align 4, !tbaa !5
  %4424 = call ptr @__errno_location() #12
  store i32 %4423, ptr %4424, align 4, !tbaa !5
  %4425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4426 = load i32, ptr @test_count, align 4, !tbaa !5
  %4427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror(i32 noundef %4428, ptr noundef @.str.33)
  %4430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call ptr @s2n_strerror_debug(i32 noundef %4431, ptr noundef @.str.33)
  %4433 = call ptr @__errno_location() #12
  %4434 = load i32, ptr %4433, align 4, !tbaa !5
  %4435 = call ptr @strerror(i32 noundef %4434) #11
  %4436 = call ptr @__errno_location() #12
  %4437 = load i32, ptr %4436, align 4, !tbaa !5
  %4438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4425, ptr noundef @.str.31, i32 noundef %4426, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 587, ptr noundef %4429, ptr noundef %4432, ptr noundef %4435, i32 noundef %4437) #11
  br label %4456

4439:                                             ; preds = %4417, %4410
  %4440 = load i32, ptr %193, align 4, !tbaa !5
  %4441 = call ptr @__errno_location() #12
  store i32 %4440, ptr %4441, align 4, !tbaa !5
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = load i32, ptr @test_count, align 4, !tbaa !5
  %4444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @s2n_strerror(i32 noundef %4445, ptr noundef @.str.33)
  %4447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call ptr @s2n_strerror_debug(i32 noundef %4448, ptr noundef @.str.33)
  %4450 = call ptr @__errno_location() #12
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call ptr @strerror(i32 noundef %4451) #11
  %4453 = call ptr @__errno_location() #12
  %4454 = load i32, ptr %4453, align 4, !tbaa !5
  %4455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4442, ptr noundef @.str.34, i32 noundef %4443, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 587, ptr noundef %4446, ptr noundef %4449, ptr noundef %4452, i32 noundef %4454) #11
  br label %4456

4456:                                             ; preds = %4439, %4422
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

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

4459:                                             ; No predecessors!
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460, %4402
  br label %4462

4462:                                             ; preds = %4461
  br label %4463

4463:                                             ; preds = %4462
  br label %4464

4464:                                             ; preds = %4463
  %4465 = load i32, ptr @test_count, align 4, !tbaa !5
  %4466 = add nsw i32 %4465, 1
  store i32 %4466, ptr @test_count, align 4, !tbaa !5
  %4467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call ptr @s2n_strerror_debug(i32 noundef %4468, ptr noundef @.str.33)
  %4470 = icmp eq ptr %4469, null
  br i1 %4470, label %4471, label %4524

4471:                                             ; preds = %4464
  br label %4472

4472:                                             ; preds = %4471
  br label %4473

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

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

4485:                                             ; preds = %4480
  %4486 = load i32, ptr %194, align 4, !tbaa !5
  %4487 = call ptr @__errno_location() #12
  store i32 %4486, ptr %4487, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = load i32, ptr @test_count, align 4, !tbaa !5
  %4490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4491 = load i32, ptr %4490, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror(i32 noundef %4491, ptr noundef @.str.33)
  %4493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call ptr @s2n_strerror_debug(i32 noundef %4494, ptr noundef @.str.33)
  %4496 = call ptr @__errno_location() #12
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @strerror(i32 noundef %4497) #11
  %4499 = call ptr @__errno_location() #12
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4488, ptr noundef @.str.31, i32 noundef %4489, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 587, ptr noundef %4492, ptr noundef %4495, ptr noundef %4498, i32 noundef %4500) #11
  br label %4519

4502:                                             ; preds = %4480, %4473
  %4503 = load i32, ptr %194, align 4, !tbaa !5
  %4504 = call ptr @__errno_location() #12
  store i32 %4503, ptr %4504, align 4, !tbaa !5
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = load i32, ptr @test_count, align 4, !tbaa !5
  %4507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  %4509 = call ptr @s2n_strerror(i32 noundef %4508, ptr noundef @.str.33)
  %4510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4511 = load i32, ptr %4510, align 4, !tbaa !5
  %4512 = call ptr @s2n_strerror_debug(i32 noundef %4511, ptr noundef @.str.33)
  %4513 = call ptr @__errno_location() #12
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @strerror(i32 noundef %4514) #11
  %4516 = call ptr @__errno_location() #12
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4505, ptr noundef @.str.34, i32 noundef %4506, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 587, ptr noundef %4509, ptr noundef %4512, ptr noundef %4515, i32 noundef %4517) #11
  br label %4519

4519:                                             ; preds = %4502, %4485
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

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

4522:                                             ; No predecessors!
  br label %4523

4523:                                             ; preds = %4522
  br label %4524

4524:                                             ; preds = %4523, %4464
  br label %4525

4525:                                             ; preds = %4524
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

4527:                                             ; preds = %4526
  br label %4528

4528:                                             ; preds = %4527
  br label %4529

4529:                                             ; preds = %4528
  %4530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4530, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4531 = call ptr @__errno_location() #12
  store i32 0, ptr %4531, align 4, !tbaa !5
  br label %4532

4532:                                             ; preds = %4529
  br label %4533

4533:                                             ; preds = %4532
  br label %4534

4534:                                             ; preds = %4533
  br label %4535

4535:                                             ; preds = %4534
  %4536 = load ptr, ptr %166, align 8, !tbaa !9
  %4537 = getelementptr inbounds %struct.hybrid_test_vector, ptr %4536, i32 0, i32 0
  %4538 = load ptr, ptr %4537, align 8, !tbaa !15
  %4539 = getelementptr inbounds %struct.s2n_kem_group, ptr %4538, i32 0, i32 2
  %4540 = load ptr, ptr %4539, align 8, !tbaa !25
  %4541 = load ptr, ptr %172, align 8, !tbaa !9
  %4542 = getelementptr inbounds %struct.s2n_connection, ptr %4541, i32 0, i32 31
  %4543 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4542, i32 0, i32 4
  %4544 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4543, i32 0, i32 2
  %4545 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4544, i32 0, i32 0
  store ptr %4540, ptr %4545, align 8, !tbaa !79
  br label %4546

4546:                                             ; preds = %4535
  br label %4547

4547:                                             ; preds = %4546
  br label %4548

4548:                                             ; preds = %4547
  %4549 = load i32, ptr @test_count, align 4, !tbaa !5
  %4550 = add nsw i32 %4549, 1
  store i32 %4550, ptr @test_count, align 4, !tbaa !5
  %4551 = load ptr, ptr %172, align 8, !tbaa !9
  %4552 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %4551, ptr noundef %177)
  %4553 = icmp eq i32 %4552, -1
  br i1 %4553, label %4607, label %4554

4554:                                             ; preds = %4548
  br label %4555

4555:                                             ; preds = %4554
  br label %4556

4556:                                             ; preds = %4555
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %4557 = call ptr @__errno_location() #12
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  store i32 %4558, ptr %195, align 4, !tbaa !5
  %4559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4560 = call i32 @s2n_print_stacktrace(ptr noundef %4559)
  %4561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4562 = trunc i8 %4561 to i1
  br i1 %4562, label %4563, label %4585

4563:                                             ; preds = %4556
  %4564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4565 = call i32 @fileno(ptr noundef %4564) #11
  %4566 = call i32 @isatty(i32 noundef %4565) #11
  %4567 = icmp ne i32 %4566, 0
  br i1 %4567, label %4568, label %4585

4568:                                             ; preds = %4563
  %4569 = load i32, ptr %195, align 4, !tbaa !5
  %4570 = call ptr @__errno_location() #12
  store i32 %4569, ptr %4570, align 4, !tbaa !5
  %4571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4572 = load i32, ptr @test_count, align 4, !tbaa !5
  %4573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @s2n_strerror(i32 noundef %4574, ptr noundef @.str.33)
  %4576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror_debug(i32 noundef %4577, ptr noundef @.str.33)
  %4579 = call ptr @__errno_location() #12
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call ptr @strerror(i32 noundef %4580) #11
  %4582 = call ptr @__errno_location() #12
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4571, ptr noundef @.str.31, i32 noundef %4572, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 589, ptr noundef %4575, ptr noundef %4578, ptr noundef %4581, i32 noundef %4583) #11
  br label %4602

4585:                                             ; preds = %4563, %4556
  %4586 = load i32, ptr %195, align 4, !tbaa !5
  %4587 = call ptr @__errno_location() #12
  store i32 %4586, ptr %4587, align 4, !tbaa !5
  %4588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4589 = load i32, ptr @test_count, align 4, !tbaa !5
  %4590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = call ptr @s2n_strerror(i32 noundef %4591, ptr noundef @.str.33)
  %4593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4594 = load i32, ptr %4593, align 4, !tbaa !5
  %4595 = call ptr @s2n_strerror_debug(i32 noundef %4594, ptr noundef @.str.33)
  %4596 = call ptr @__errno_location() #12
  %4597 = load i32, ptr %4596, align 4, !tbaa !5
  %4598 = call ptr @strerror(i32 noundef %4597) #11
  %4599 = call ptr @__errno_location() #12
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  %4601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4588, ptr noundef @.str.34, i32 noundef %4589, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 589, ptr noundef %4592, ptr noundef %4595, ptr noundef %4598, i32 noundef %4600) #11
  br label %4602

4602:                                             ; preds = %4585, %4568
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

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

4605:                                             ; No predecessors!
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

4607:                                             ; preds = %4606, %4548
  br label %4608

4608:                                             ; preds = %4607
  br label %4609

4609:                                             ; preds = %4608
  br label %4610

4610:                                             ; preds = %4609
  %4611 = load i32, ptr @test_count, align 4, !tbaa !5
  %4612 = add nsw i32 %4611, 1
  store i32 %4612, ptr @test_count, align 4, !tbaa !5
  %4613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4614 = load i32, ptr %4613, align 4, !tbaa !5
  %4615 = icmp eq i32 %4614, 402653193
  br i1 %4615, label %4669, label %4616

4616:                                             ; preds = %4610
  br label %4617

4617:                                             ; preds = %4616
  br label %4618

4618:                                             ; preds = %4617
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %4619 = call ptr @__errno_location() #12
  %4620 = load i32, ptr %4619, align 4, !tbaa !5
  store i32 %4620, ptr %196, align 4, !tbaa !5
  %4621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4622 = call i32 @s2n_print_stacktrace(ptr noundef %4621)
  %4623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4624 = trunc i8 %4623 to i1
  br i1 %4624, label %4625, label %4647

4625:                                             ; preds = %4618
  %4626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4627 = call i32 @fileno(ptr noundef %4626) #11
  %4628 = call i32 @isatty(i32 noundef %4627) #11
  %4629 = icmp ne i32 %4628, 0
  br i1 %4629, label %4630, label %4647

4630:                                             ; preds = %4625
  %4631 = load i32, ptr %196, align 4, !tbaa !5
  %4632 = call ptr @__errno_location() #12
  store i32 %4631, ptr %4632, align 4, !tbaa !5
  %4633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4634 = load i32, ptr @test_count, align 4, !tbaa !5
  %4635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call ptr @s2n_strerror(i32 noundef %4636, ptr noundef @.str.33)
  %4638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call ptr @s2n_strerror_debug(i32 noundef %4639, ptr noundef @.str.33)
  %4641 = call ptr @__errno_location() #12
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call ptr @strerror(i32 noundef %4642) #11
  %4644 = call ptr @__errno_location() #12
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4633, ptr noundef @.str.31, i32 noundef %4634, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 589, ptr noundef %4637, ptr noundef %4640, ptr noundef %4643, i32 noundef %4645) #11
  br label %4664

4647:                                             ; preds = %4625, %4618
  %4648 = load i32, ptr %196, align 4, !tbaa !5
  %4649 = call ptr @__errno_location() #12
  store i32 %4648, ptr %4649, align 4, !tbaa !5
  %4650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4651 = load i32, ptr @test_count, align 4, !tbaa !5
  %4652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4653 = load i32, ptr %4652, align 4, !tbaa !5
  %4654 = call ptr @s2n_strerror(i32 noundef %4653, ptr noundef @.str.33)
  %4655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4656 = load i32, ptr %4655, align 4, !tbaa !5
  %4657 = call ptr @s2n_strerror_debug(i32 noundef %4656, ptr noundef @.str.33)
  %4658 = call ptr @__errno_location() #12
  %4659 = load i32, ptr %4658, align 4, !tbaa !5
  %4660 = call ptr @strerror(i32 noundef %4659) #11
  %4661 = call ptr @__errno_location() #12
  %4662 = load i32, ptr %4661, align 4, !tbaa !5
  %4663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4650, ptr noundef @.str.34, i32 noundef %4651, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 589, ptr noundef %4654, ptr noundef %4657, ptr noundef %4660, i32 noundef %4662) #11
  br label %4664

4664:                                             ; preds = %4647, %4630
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %4665

4665:                                             ; preds = %4664
  br label %4666

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

4667:                                             ; No predecessors!
  br label %4668

4668:                                             ; preds = %4667
  br label %4669

4669:                                             ; preds = %4668, %4610
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

4672:                                             ; preds = %4671
  %4673 = load i32, ptr @test_count, align 4, !tbaa !5
  %4674 = add nsw i32 %4673, 1
  store i32 %4674, ptr @test_count, align 4, !tbaa !5
  %4675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4676 = load i32, ptr %4675, align 4, !tbaa !5
  %4677 = call ptr @s2n_strerror_debug(i32 noundef %4676, ptr noundef @.str.33)
  %4678 = icmp eq ptr %4677, null
  br i1 %4678, label %4679, label %4732

4679:                                             ; preds = %4672
  br label %4680

4680:                                             ; preds = %4679
  br label %4681

4681:                                             ; preds = %4680
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %4682 = call ptr @__errno_location() #12
  %4683 = load i32, ptr %4682, align 4, !tbaa !5
  store i32 %4683, ptr %197, align 4, !tbaa !5
  %4684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4685 = call i32 @s2n_print_stacktrace(ptr noundef %4684)
  %4686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4687 = trunc i8 %4686 to i1
  br i1 %4687, label %4688, label %4710

4688:                                             ; preds = %4681
  %4689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4690 = call i32 @fileno(ptr noundef %4689) #11
  %4691 = call i32 @isatty(i32 noundef %4690) #11
  %4692 = icmp ne i32 %4691, 0
  br i1 %4692, label %4693, label %4710

4693:                                             ; preds = %4688
  %4694 = load i32, ptr %197, align 4, !tbaa !5
  %4695 = call ptr @__errno_location() #12
  store i32 %4694, ptr %4695, align 4, !tbaa !5
  %4696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4697 = load i32, ptr @test_count, align 4, !tbaa !5
  %4698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4699 = load i32, ptr %4698, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror(i32 noundef %4699, ptr noundef @.str.33)
  %4701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4702 = load i32, ptr %4701, align 4, !tbaa !5
  %4703 = call ptr @s2n_strerror_debug(i32 noundef %4702, ptr noundef @.str.33)
  %4704 = call ptr @__errno_location() #12
  %4705 = load i32, ptr %4704, align 4, !tbaa !5
  %4706 = call ptr @strerror(i32 noundef %4705) #11
  %4707 = call ptr @__errno_location() #12
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4696, ptr noundef @.str.31, i32 noundef %4697, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 589, ptr noundef %4700, ptr noundef %4703, ptr noundef %4706, i32 noundef %4708) #11
  br label %4727

4710:                                             ; preds = %4688, %4681
  %4711 = load i32, ptr %197, align 4, !tbaa !5
  %4712 = call ptr @__errno_location() #12
  store i32 %4711, ptr %4712, align 4, !tbaa !5
  %4713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4714 = load i32, ptr @test_count, align 4, !tbaa !5
  %4715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4716 = load i32, ptr %4715, align 4, !tbaa !5
  %4717 = call ptr @s2n_strerror(i32 noundef %4716, ptr noundef @.str.33)
  %4718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4719 = load i32, ptr %4718, align 4, !tbaa !5
  %4720 = call ptr @s2n_strerror_debug(i32 noundef %4719, ptr noundef @.str.33)
  %4721 = call ptr @__errno_location() #12
  %4722 = load i32, ptr %4721, align 4, !tbaa !5
  %4723 = call ptr @strerror(i32 noundef %4722) #11
  %4724 = call ptr @__errno_location() #12
  %4725 = load i32, ptr %4724, align 4, !tbaa !5
  %4726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4713, ptr noundef @.str.34, i32 noundef %4714, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 589, ptr noundef %4717, ptr noundef %4720, ptr noundef %4723, i32 noundef %4725) #11
  br label %4727

4727:                                             ; preds = %4710, %4693
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %4728

4728:                                             ; preds = %4727
  br label %4729

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

4730:                                             ; No predecessors!
  br label %4731

4731:                                             ; preds = %4730
  br label %4732

4732:                                             ; preds = %4731, %4672
  br label %4733

4733:                                             ; preds = %4732
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

4735:                                             ; preds = %4734
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

4737:                                             ; preds = %4736
  %4738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4738, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4739 = call ptr @__errno_location() #12
  store i32 0, ptr %4739, align 4, !tbaa !5
  br label %4740

4740:                                             ; preds = %4737
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

4742:                                             ; preds = %4741
  br label %4743

4743:                                             ; preds = %4742
  %4744 = load ptr, ptr %166, align 8, !tbaa !9
  %4745 = getelementptr inbounds %struct.hybrid_test_vector, ptr %4744, i32 0, i32 0
  %4746 = load ptr, ptr %4745, align 8, !tbaa !15
  %4747 = getelementptr inbounds %struct.s2n_kem_group, ptr %4746, i32 0, i32 2
  %4748 = load ptr, ptr %4747, align 8, !tbaa !25
  %4749 = load ptr, ptr %172, align 8, !tbaa !9
  %4750 = getelementptr inbounds %struct.s2n_connection, ptr %4749, i32 0, i32 31
  %4751 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4750, i32 0, i32 5
  %4752 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4751, i32 0, i32 2
  %4753 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4752, i32 0, i32 0
  store ptr %4748, ptr %4753, align 8, !tbaa !80
  br label %4754

4754:                                             ; preds = %4743
  br label %4755

4755:                                             ; preds = %4754
  br label %4756

4756:                                             ; preds = %4755
  %4757 = load i32, ptr @test_count, align 4, !tbaa !5
  %4758 = add nsw i32 %4757, 1
  store i32 %4758, ptr @test_count, align 4, !tbaa !5
  %4759 = load ptr, ptr %172, align 8, !tbaa !9
  %4760 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %4759, ptr noundef %177)
  %4761 = icmp eq i32 %4760, -1
  br i1 %4761, label %4815, label %4762

4762:                                             ; preds = %4756
  br label %4763

4763:                                             ; preds = %4762
  br label %4764

4764:                                             ; preds = %4763
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %4765 = call ptr @__errno_location() #12
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  store i32 %4766, ptr %198, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = call i32 @s2n_print_stacktrace(ptr noundef %4767)
  %4769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4770 = trunc i8 %4769 to i1
  br i1 %4770, label %4771, label %4793

4771:                                             ; preds = %4764
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @fileno(ptr noundef %4772) #11
  %4774 = call i32 @isatty(i32 noundef %4773) #11
  %4775 = icmp ne i32 %4774, 0
  br i1 %4775, label %4776, label %4793

4776:                                             ; preds = %4771
  %4777 = load i32, ptr %198, align 4, !tbaa !5
  %4778 = call ptr @__errno_location() #12
  store i32 %4777, ptr %4778, align 4, !tbaa !5
  %4779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4780 = load i32, ptr @test_count, align 4, !tbaa !5
  %4781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4782 = load i32, ptr %4781, align 4, !tbaa !5
  %4783 = call ptr @s2n_strerror(i32 noundef %4782, ptr noundef @.str.33)
  %4784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4785 = load i32, ptr %4784, align 4, !tbaa !5
  %4786 = call ptr @s2n_strerror_debug(i32 noundef %4785, ptr noundef @.str.33)
  %4787 = call ptr @__errno_location() #12
  %4788 = load i32, ptr %4787, align 4, !tbaa !5
  %4789 = call ptr @strerror(i32 noundef %4788) #11
  %4790 = call ptr @__errno_location() #12
  %4791 = load i32, ptr %4790, align 4, !tbaa !5
  %4792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4779, ptr noundef @.str.31, i32 noundef %4780, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 593, ptr noundef %4783, ptr noundef %4786, ptr noundef %4789, i32 noundef %4791) #11
  br label %4810

4793:                                             ; preds = %4771, %4764
  %4794 = load i32, ptr %198, align 4, !tbaa !5
  %4795 = call ptr @__errno_location() #12
  store i32 %4794, ptr %4795, align 4, !tbaa !5
  %4796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4797 = load i32, ptr @test_count, align 4, !tbaa !5
  %4798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4799 = load i32, ptr %4798, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror(i32 noundef %4799, ptr noundef @.str.33)
  %4801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call ptr @s2n_strerror_debug(i32 noundef %4802, ptr noundef @.str.33)
  %4804 = call ptr @__errno_location() #12
  %4805 = load i32, ptr %4804, align 4, !tbaa !5
  %4806 = call ptr @strerror(i32 noundef %4805) #11
  %4807 = call ptr @__errno_location() #12
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4796, ptr noundef @.str.34, i32 noundef %4797, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 593, ptr noundef %4800, ptr noundef %4803, ptr noundef %4806, i32 noundef %4808) #11
  br label %4810

4810:                                             ; preds = %4793, %4776
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

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

4813:                                             ; No predecessors!
  br label %4814

4814:                                             ; preds = %4813
  br label %4815

4815:                                             ; preds = %4814, %4756
  br label %4816

4816:                                             ; preds = %4815
  br label %4817

4817:                                             ; preds = %4816
  br label %4818

4818:                                             ; preds = %4817
  %4819 = load i32, ptr @test_count, align 4, !tbaa !5
  %4820 = add nsw i32 %4819, 1
  store i32 %4820, ptr @test_count, align 4, !tbaa !5
  %4821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = icmp eq i32 %4822, 402653193
  br i1 %4823, label %4877, label %4824

4824:                                             ; preds = %4818
  br label %4825

4825:                                             ; preds = %4824
  br label %4826

4826:                                             ; preds = %4825
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %4827 = call ptr @__errno_location() #12
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  store i32 %4828, ptr %199, align 4, !tbaa !5
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = call i32 @s2n_print_stacktrace(ptr noundef %4829)
  %4831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4832 = trunc i8 %4831 to i1
  br i1 %4832, label %4833, label %4855

4833:                                             ; preds = %4826
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = call i32 @fileno(ptr noundef %4834) #11
  %4836 = call i32 @isatty(i32 noundef %4835) #11
  %4837 = icmp ne i32 %4836, 0
  br i1 %4837, label %4838, label %4855

4838:                                             ; preds = %4833
  %4839 = load i32, ptr %199, align 4, !tbaa !5
  %4840 = call ptr @__errno_location() #12
  store i32 %4839, ptr %4840, align 4, !tbaa !5
  %4841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4842 = load i32, ptr @test_count, align 4, !tbaa !5
  %4843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4844 = load i32, ptr %4843, align 4, !tbaa !5
  %4845 = call ptr @s2n_strerror(i32 noundef %4844, ptr noundef @.str.33)
  %4846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4847 = load i32, ptr %4846, align 4, !tbaa !5
  %4848 = call ptr @s2n_strerror_debug(i32 noundef %4847, ptr noundef @.str.33)
  %4849 = call ptr @__errno_location() #12
  %4850 = load i32, ptr %4849, align 4, !tbaa !5
  %4851 = call ptr @strerror(i32 noundef %4850) #11
  %4852 = call ptr @__errno_location() #12
  %4853 = load i32, ptr %4852, align 4, !tbaa !5
  %4854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4841, ptr noundef @.str.31, i32 noundef %4842, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 593, ptr noundef %4845, ptr noundef %4848, ptr noundef %4851, i32 noundef %4853) #11
  br label %4872

4855:                                             ; preds = %4833, %4826
  %4856 = load i32, ptr %199, align 4, !tbaa !5
  %4857 = call ptr @__errno_location() #12
  store i32 %4856, ptr %4857, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = load i32, ptr @test_count, align 4, !tbaa !5
  %4860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  %4862 = call ptr @s2n_strerror(i32 noundef %4861, ptr noundef @.str.33)
  %4863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call ptr @s2n_strerror_debug(i32 noundef %4864, ptr noundef @.str.33)
  %4866 = call ptr @__errno_location() #12
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  %4868 = call ptr @strerror(i32 noundef %4867) #11
  %4869 = call ptr @__errno_location() #12
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4858, ptr noundef @.str.34, i32 noundef %4859, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 593, ptr noundef %4862, ptr noundef %4865, ptr noundef %4868, i32 noundef %4870) #11
  br label %4872

4872:                                             ; preds = %4855, %4838
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %4873

4873:                                             ; preds = %4872
  br label %4874

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

4875:                                             ; No predecessors!
  br label %4876

4876:                                             ; preds = %4875
  br label %4877

4877:                                             ; preds = %4876, %4818
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878
  br label %4880

4880:                                             ; preds = %4879
  %4881 = load i32, ptr @test_count, align 4, !tbaa !5
  %4882 = add nsw i32 %4881, 1
  store i32 %4882, ptr @test_count, align 4, !tbaa !5
  %4883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror_debug(i32 noundef %4884, ptr noundef @.str.33)
  %4886 = icmp eq ptr %4885, null
  br i1 %4886, label %4887, label %4940

4887:                                             ; preds = %4880
  br label %4888

4888:                                             ; preds = %4887
  br label %4889

4889:                                             ; preds = %4888
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %4890 = call ptr @__errno_location() #12
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  store i32 %4891, ptr %200, align 4, !tbaa !5
  %4892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4893 = call i32 @s2n_print_stacktrace(ptr noundef %4892)
  %4894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4895 = trunc i8 %4894 to i1
  br i1 %4895, label %4896, label %4918

4896:                                             ; preds = %4889
  %4897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4898 = call i32 @fileno(ptr noundef %4897) #11
  %4899 = call i32 @isatty(i32 noundef %4898) #11
  %4900 = icmp ne i32 %4899, 0
  br i1 %4900, label %4901, label %4918

4901:                                             ; preds = %4896
  %4902 = load i32, ptr %200, align 4, !tbaa !5
  %4903 = call ptr @__errno_location() #12
  store i32 %4902, ptr %4903, align 4, !tbaa !5
  %4904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4905 = load i32, ptr @test_count, align 4, !tbaa !5
  %4906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call ptr @s2n_strerror(i32 noundef %4907, ptr noundef @.str.33)
  %4909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @s2n_strerror_debug(i32 noundef %4910, ptr noundef @.str.33)
  %4912 = call ptr @__errno_location() #12
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call ptr @strerror(i32 noundef %4913) #11
  %4915 = call ptr @__errno_location() #12
  %4916 = load i32, ptr %4915, align 4, !tbaa !5
  %4917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4904, ptr noundef @.str.31, i32 noundef %4905, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 593, ptr noundef %4908, ptr noundef %4911, ptr noundef %4914, i32 noundef %4916) #11
  br label %4935

4918:                                             ; preds = %4896, %4889
  %4919 = load i32, ptr %200, align 4, !tbaa !5
  %4920 = call ptr @__errno_location() #12
  store i32 %4919, ptr %4920, align 4, !tbaa !5
  %4921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4922 = load i32, ptr @test_count, align 4, !tbaa !5
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror(i32 noundef %4924, ptr noundef @.str.33)
  %4926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @s2n_strerror_debug(i32 noundef %4927, ptr noundef @.str.33)
  %4929 = call ptr @__errno_location() #12
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call ptr @strerror(i32 noundef %4930) #11
  %4932 = call ptr @__errno_location() #12
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4921, ptr noundef @.str.34, i32 noundef %4922, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 593, ptr noundef %4925, ptr noundef %4928, ptr noundef %4931, i32 noundef %4933) #11
  br label %4935

4935:                                             ; preds = %4918, %4901
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

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

4938:                                             ; No predecessors!
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939, %4880
  br label %4941

4941:                                             ; preds = %4940
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942
  br label %4944

4944:                                             ; preds = %4943
  br label %4945

4945:                                             ; preds = %4944
  %4946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4946, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4947 = call ptr @__errno_location() #12
  store i32 0, ptr %4947, align 4, !tbaa !5
  br label %4948

4948:                                             ; preds = %4945
  br label %4949

4949:                                             ; preds = %4948
  br label %4950

4950:                                             ; preds = %4949
  br label %4951

4951:                                             ; preds = %4950
  br label %4952

4952:                                             ; preds = %4951
  %4953 = load i32, ptr @test_count, align 4, !tbaa !5
  %4954 = add nsw i32 %4953, 1
  store i32 %4954, ptr @test_count, align 4, !tbaa !5
  %4955 = load ptr, ptr %172, align 8, !tbaa !9
  %4956 = getelementptr inbounds %struct.s2n_connection, ptr %4955, i32 0, i32 31
  %4957 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4956, i32 0, i32 5
  %4958 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4957, i32 0, i32 2
  %4959 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4958, i32 0, i32 1
  %4960 = load ptr, ptr %166, align 8, !tbaa !9
  %4961 = getelementptr inbounds %struct.hybrid_test_vector, ptr %4960, i32 0, i32 3
  %4962 = load ptr, ptr %4961, align 8, !tbaa !19
  %4963 = call i32 @read_priv_ecc(ptr noundef %4959, ptr noundef %4962)
  %4964 = icmp eq i32 %4963, -1
  br i1 %4964, label %4965, label %5018

4965:                                             ; preds = %4952
  br label %4966

4966:                                             ; preds = %4965
  br label %4967

4967:                                             ; preds = %4966
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %4968 = call ptr @__errno_location() #12
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  store i32 %4969, ptr %201, align 4, !tbaa !5
  %4970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4971 = call i32 @s2n_print_stacktrace(ptr noundef %4970)
  %4972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4973 = trunc i8 %4972 to i1
  br i1 %4973, label %4974, label %4996

4974:                                             ; preds = %4967
  %4975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4976 = call i32 @fileno(ptr noundef %4975) #11
  %4977 = call i32 @isatty(i32 noundef %4976) #11
  %4978 = icmp ne i32 %4977, 0
  br i1 %4978, label %4979, label %4996

4979:                                             ; preds = %4974
  %4980 = load i32, ptr %201, align 4, !tbaa !5
  %4981 = call ptr @__errno_location() #12
  store i32 %4980, ptr %4981, align 4, !tbaa !5
  %4982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4983 = load i32, ptr @test_count, align 4, !tbaa !5
  %4984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4985 = load i32, ptr %4984, align 4, !tbaa !5
  %4986 = call ptr @s2n_strerror(i32 noundef %4985, ptr noundef @.str.33)
  %4987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4988 = load i32, ptr %4987, align 4, !tbaa !5
  %4989 = call ptr @s2n_strerror_debug(i32 noundef %4988, ptr noundef @.str.33)
  %4990 = call ptr @__errno_location() #12
  %4991 = load i32, ptr %4990, align 4, !tbaa !5
  %4992 = call ptr @strerror(i32 noundef %4991) #11
  %4993 = call ptr @__errno_location() #12
  %4994 = load i32, ptr %4993, align 4, !tbaa !5
  %4995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4982, ptr noundef @.str.31, i32 noundef %4983, ptr noundef @.str.131, ptr noundef @.str.30, i32 noundef 594, ptr noundef %4986, ptr noundef %4989, ptr noundef %4992, i32 noundef %4994) #11
  br label %5013

4996:                                             ; preds = %4974, %4967
  %4997 = load i32, ptr %201, align 4, !tbaa !5
  %4998 = call ptr @__errno_location() #12
  store i32 %4997, ptr %4998, align 4, !tbaa !5
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = load i32, ptr @test_count, align 4, !tbaa !5
  %5001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  %5003 = call ptr @s2n_strerror(i32 noundef %5002, ptr noundef @.str.33)
  %5004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5005 = load i32, ptr %5004, align 4, !tbaa !5
  %5006 = call ptr @s2n_strerror_debug(i32 noundef %5005, ptr noundef @.str.33)
  %5007 = call ptr @__errno_location() #12
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @strerror(i32 noundef %5008) #11
  %5010 = call ptr @__errno_location() #12
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4999, ptr noundef @.str.34, i32 noundef %5000, ptr noundef @.str.131, ptr noundef @.str.30, i32 noundef 594, ptr noundef %5003, ptr noundef %5006, ptr noundef %5009, i32 noundef %5011) #11
  br label %5013

5013:                                             ; preds = %4996, %4979
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %5014

5014:                                             ; preds = %5013
  br label %5015

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

5016:                                             ; No predecessors!
  br label %5017

5017:                                             ; preds = %5016
  br label %5018

5018:                                             ; preds = %5017, %4952
  br label %5019

5019:                                             ; preds = %5018
  br label %5020

5020:                                             ; preds = %5019
  br label %5021

5021:                                             ; preds = %5020
  br label %5022

5022:                                             ; preds = %5021
  br label %5023

5023:                                             ; preds = %5022
  %5024 = load i32, ptr @test_count, align 4, !tbaa !5
  %5025 = add nsw i32 %5024, 1
  store i32 %5025, ptr @test_count, align 4, !tbaa !5
  %5026 = load ptr, ptr %172, align 8, !tbaa !9
  %5027 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %5026, ptr noundef %177)
  %5028 = icmp eq i32 %5027, -1
  br i1 %5028, label %5082, label %5029

5029:                                             ; preds = %5023
  br label %5030

5030:                                             ; preds = %5029
  br label %5031

5031:                                             ; preds = %5030
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %5032 = call ptr @__errno_location() #12
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  store i32 %5033, ptr %202, align 4, !tbaa !5
  %5034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5035 = call i32 @s2n_print_stacktrace(ptr noundef %5034)
  %5036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5037 = trunc i8 %5036 to i1
  br i1 %5037, label %5038, label %5060

5038:                                             ; preds = %5031
  %5039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5040 = call i32 @fileno(ptr noundef %5039) #11
  %5041 = call i32 @isatty(i32 noundef %5040) #11
  %5042 = icmp ne i32 %5041, 0
  br i1 %5042, label %5043, label %5060

5043:                                             ; preds = %5038
  %5044 = load i32, ptr %202, align 4, !tbaa !5
  %5045 = call ptr @__errno_location() #12
  store i32 %5044, ptr %5045, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5049 = load i32, ptr %5048, align 4, !tbaa !5
  %5050 = call ptr @s2n_strerror(i32 noundef %5049, ptr noundef @.str.33)
  %5051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5052 = load i32, ptr %5051, align 4, !tbaa !5
  %5053 = call ptr @s2n_strerror_debug(i32 noundef %5052, ptr noundef @.str.33)
  %5054 = call ptr @__errno_location() #12
  %5055 = load i32, ptr %5054, align 4, !tbaa !5
  %5056 = call ptr @strerror(i32 noundef %5055) #11
  %5057 = call ptr @__errno_location() #12
  %5058 = load i32, ptr %5057, align 4, !tbaa !5
  %5059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5046, ptr noundef @.str.31, i32 noundef %5047, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 595, ptr noundef %5050, ptr noundef %5053, ptr noundef %5056, i32 noundef %5058) #11
  br label %5077

5060:                                             ; preds = %5038, %5031
  %5061 = load i32, ptr %202, align 4, !tbaa !5
  %5062 = call ptr @__errno_location() #12
  store i32 %5061, ptr %5062, align 4, !tbaa !5
  %5063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5064 = load i32, ptr @test_count, align 4, !tbaa !5
  %5065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5066 = load i32, ptr %5065, align 4, !tbaa !5
  %5067 = call ptr @s2n_strerror(i32 noundef %5066, ptr noundef @.str.33)
  %5068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call ptr @s2n_strerror_debug(i32 noundef %5069, ptr noundef @.str.33)
  %5071 = call ptr @__errno_location() #12
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @strerror(i32 noundef %5072) #11
  %5074 = call ptr @__errno_location() #12
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5063, ptr noundef @.str.34, i32 noundef %5064, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 595, ptr noundef %5067, ptr noundef %5070, ptr noundef %5073, i32 noundef %5075) #11
  br label %5077

5077:                                             ; preds = %5060, %5043
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %5078

5078:                                             ; preds = %5077
  br label %5079

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

5080:                                             ; No predecessors!
  br label %5081

5081:                                             ; preds = %5080
  br label %5082

5082:                                             ; preds = %5081, %5023
  br label %5083

5083:                                             ; preds = %5082
  br label %5084

5084:                                             ; preds = %5083
  br label %5085

5085:                                             ; preds = %5084
  %5086 = load i32, ptr @test_count, align 4, !tbaa !5
  %5087 = add nsw i32 %5086, 1
  store i32 %5087, ptr @test_count, align 4, !tbaa !5
  %5088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = icmp eq i32 %5089, 402653193
  br i1 %5090, label %5144, label %5091

5091:                                             ; preds = %5085
  br label %5092

5092:                                             ; preds = %5091
  br label %5093

5093:                                             ; preds = %5092
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %5094 = call ptr @__errno_location() #12
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  store i32 %5095, ptr %203, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = call i32 @s2n_print_stacktrace(ptr noundef %5096)
  %5098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5099 = trunc i8 %5098 to i1
  br i1 %5099, label %5100, label %5122

5100:                                             ; preds = %5093
  %5101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5102 = call i32 @fileno(ptr noundef %5101) #11
  %5103 = call i32 @isatty(i32 noundef %5102) #11
  %5104 = icmp ne i32 %5103, 0
  br i1 %5104, label %5105, label %5122

5105:                                             ; preds = %5100
  %5106 = load i32, ptr %203, align 4, !tbaa !5
  %5107 = call ptr @__errno_location() #12
  store i32 %5106, ptr %5107, align 4, !tbaa !5
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = load i32, ptr @test_count, align 4, !tbaa !5
  %5110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5111 = load i32, ptr %5110, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror(i32 noundef %5111, ptr noundef @.str.33)
  %5113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror_debug(i32 noundef %5114, ptr noundef @.str.33)
  %5116 = call ptr @__errno_location() #12
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  %5118 = call ptr @strerror(i32 noundef %5117) #11
  %5119 = call ptr @__errno_location() #12
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  %5121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5108, ptr noundef @.str.31, i32 noundef %5109, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 595, ptr noundef %5112, ptr noundef %5115, ptr noundef %5118, i32 noundef %5120) #11
  br label %5139

5122:                                             ; preds = %5100, %5093
  %5123 = load i32, ptr %203, align 4, !tbaa !5
  %5124 = call ptr @__errno_location() #12
  store i32 %5123, ptr %5124, align 4, !tbaa !5
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = load i32, ptr @test_count, align 4, !tbaa !5
  %5127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror(i32 noundef %5128, ptr noundef @.str.33)
  %5130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @s2n_strerror_debug(i32 noundef %5131, ptr noundef @.str.33)
  %5133 = call ptr @__errno_location() #12
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @strerror(i32 noundef %5134) #11
  %5136 = call ptr @__errno_location() #12
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5125, ptr noundef @.str.34, i32 noundef %5126, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 595, ptr noundef %5129, ptr noundef %5132, ptr noundef %5135, i32 noundef %5137) #11
  br label %5139

5139:                                             ; preds = %5122, %5105
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %5140

5140:                                             ; preds = %5139
  br label %5141

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

5142:                                             ; No predecessors!
  br label %5143

5143:                                             ; preds = %5142
  br label %5144

5144:                                             ; preds = %5143, %5085
  br label %5145

5145:                                             ; preds = %5144
  br label %5146

5146:                                             ; preds = %5145
  br label %5147

5147:                                             ; preds = %5146
  %5148 = load i32, ptr @test_count, align 4, !tbaa !5
  %5149 = add nsw i32 %5148, 1
  store i32 %5149, ptr @test_count, align 4, !tbaa !5
  %5150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call ptr @s2n_strerror_debug(i32 noundef %5151, ptr noundef @.str.33)
  %5153 = icmp eq ptr %5152, null
  br i1 %5153, label %5154, label %5207

5154:                                             ; preds = %5147
  br label %5155

5155:                                             ; preds = %5154
  br label %5156

5156:                                             ; preds = %5155
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %5157 = call ptr @__errno_location() #12
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  store i32 %5158, ptr %204, align 4, !tbaa !5
  %5159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5160 = call i32 @s2n_print_stacktrace(ptr noundef %5159)
  %5161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5162 = trunc i8 %5161 to i1
  br i1 %5162, label %5163, label %5185

5163:                                             ; preds = %5156
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = call i32 @fileno(ptr noundef %5164) #11
  %5166 = call i32 @isatty(i32 noundef %5165) #11
  %5167 = icmp ne i32 %5166, 0
  br i1 %5167, label %5168, label %5185

5168:                                             ; preds = %5163
  %5169 = load i32, ptr %204, align 4, !tbaa !5
  %5170 = call ptr @__errno_location() #12
  store i32 %5169, ptr %5170, align 4, !tbaa !5
  %5171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5172 = load i32, ptr @test_count, align 4, !tbaa !5
  %5173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5174 = load i32, ptr %5173, align 4, !tbaa !5
  %5175 = call ptr @s2n_strerror(i32 noundef %5174, ptr noundef @.str.33)
  %5176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5177 = load i32, ptr %5176, align 4, !tbaa !5
  %5178 = call ptr @s2n_strerror_debug(i32 noundef %5177, ptr noundef @.str.33)
  %5179 = call ptr @__errno_location() #12
  %5180 = load i32, ptr %5179, align 4, !tbaa !5
  %5181 = call ptr @strerror(i32 noundef %5180) #11
  %5182 = call ptr @__errno_location() #12
  %5183 = load i32, ptr %5182, align 4, !tbaa !5
  %5184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5171, ptr noundef @.str.31, i32 noundef %5172, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 595, ptr noundef %5175, ptr noundef %5178, ptr noundef %5181, i32 noundef %5183) #11
  br label %5202

5185:                                             ; preds = %5163, %5156
  %5186 = load i32, ptr %204, align 4, !tbaa !5
  %5187 = call ptr @__errno_location() #12
  store i32 %5186, ptr %5187, align 4, !tbaa !5
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = load i32, ptr @test_count, align 4, !tbaa !5
  %5190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror(i32 noundef %5191, ptr noundef @.str.33)
  %5193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror_debug(i32 noundef %5194, ptr noundef @.str.33)
  %5196 = call ptr @__errno_location() #12
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call ptr @strerror(i32 noundef %5197) #11
  %5199 = call ptr @__errno_location() #12
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5188, ptr noundef @.str.34, i32 noundef %5189, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 595, ptr noundef %5192, ptr noundef %5195, ptr noundef %5198, i32 noundef %5200) #11
  br label %5202

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

5203:                                             ; preds = %5202
  br label %5204

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

5205:                                             ; No predecessors!
  br label %5206

5206:                                             ; preds = %5205
  br label %5207

5207:                                             ; preds = %5206, %5147
  br label %5208

5208:                                             ; preds = %5207
  br label %5209

5209:                                             ; preds = %5208
  br label %5210

5210:                                             ; preds = %5209
  br label %5211

5211:                                             ; preds = %5210
  br label %5212

5212:                                             ; preds = %5211
  %5213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5213, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5214 = call ptr @__errno_location() #12
  store i32 0, ptr %5214, align 4, !tbaa !5
  br label %5215

5215:                                             ; preds = %5212
  br label %5216

5216:                                             ; preds = %5215
  br label %5217

5217:                                             ; preds = %5216
  br label %5218

5218:                                             ; preds = %5217
  br label %5219

5219:                                             ; preds = %5218
  %5220 = load i32, ptr @test_count, align 4, !tbaa !5
  %5221 = add nsw i32 %5220, 1
  store i32 %5221, ptr @test_count, align 4, !tbaa !5
  %5222 = load ptr, ptr %172, align 8, !tbaa !9
  %5223 = getelementptr inbounds %struct.s2n_connection, ptr %5222, i32 0, i32 31
  %5224 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5223, i32 0, i32 4
  %5225 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5224, i32 0, i32 2
  %5226 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5225, i32 0, i32 1
  %5227 = load ptr, ptr %166, align 8, !tbaa !9
  %5228 = getelementptr inbounds %struct.hybrid_test_vector, ptr %5227, i32 0, i32 4
  %5229 = load ptr, ptr %5228, align 8, !tbaa !20
  %5230 = call i32 @read_priv_ecc(ptr noundef %5226, ptr noundef %5229)
  %5231 = icmp eq i32 %5230, -1
  br i1 %5231, label %5232, label %5285

5232:                                             ; preds = %5219
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

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

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

5246:                                             ; preds = %5241
  %5247 = load i32, ptr %205, align 4, !tbaa !5
  %5248 = call ptr @__errno_location() #12
  store i32 %5247, ptr %5248, align 4, !tbaa !5
  %5249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @s2n_strerror(i32 noundef %5252, ptr noundef @.str.33)
  %5254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call ptr @s2n_strerror_debug(i32 noundef %5255, ptr noundef @.str.33)
  %5257 = call ptr @__errno_location() #12
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call ptr @strerror(i32 noundef %5258) #11
  %5260 = call ptr @__errno_location() #12
  %5261 = load i32, ptr %5260, align 4, !tbaa !5
  %5262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5249, ptr noundef @.str.31, i32 noundef %5250, ptr noundef @.str.132, ptr noundef @.str.30, i32 noundef 596, ptr noundef %5253, ptr noundef %5256, ptr noundef %5259, i32 noundef %5261) #11
  br label %5280

5263:                                             ; preds = %5241, %5234
  %5264 = load i32, ptr %205, align 4, !tbaa !5
  %5265 = call ptr @__errno_location() #12
  store i32 %5264, ptr %5265, align 4, !tbaa !5
  %5266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5267 = load i32, ptr @test_count, align 4, !tbaa !5
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror(i32 noundef %5269, ptr noundef @.str.33)
  %5271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @s2n_strerror_debug(i32 noundef %5272, ptr noundef @.str.33)
  %5274 = call ptr @__errno_location() #12
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call ptr @strerror(i32 noundef %5275) #11
  %5277 = call ptr @__errno_location() #12
  %5278 = load i32, ptr %5277, align 4, !tbaa !5
  %5279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5266, ptr noundef @.str.34, i32 noundef %5267, ptr noundef @.str.132, ptr noundef @.str.30, i32 noundef 596, ptr noundef %5270, ptr noundef %5273, ptr noundef %5276, i32 noundef %5278) #11
  br label %5280

5280:                                             ; preds = %5263, %5246
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %5281

5281:                                             ; preds = %5280
  br label %5282

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

5283:                                             ; No predecessors!
  br label %5284

5284:                                             ; preds = %5283
  br label %5285

5285:                                             ; preds = %5284, %5219
  br label %5286

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286
  br label %5288

5288:                                             ; preds = %5287
  br label %5289

5289:                                             ; preds = %5288
  br label %5290

5290:                                             ; preds = %5289
  %5291 = load i32, ptr @test_count, align 4, !tbaa !5
  %5292 = add nsw i32 %5291, 1
  store i32 %5292, ptr @test_count, align 4, !tbaa !5
  %5293 = load ptr, ptr %172, align 8, !tbaa !9
  %5294 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %5293, ptr noundef %177)
  %5295 = icmp eq i32 %5294, -1
  br i1 %5295, label %5349, label %5296

5296:                                             ; preds = %5290
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

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

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

5310:                                             ; preds = %5305
  %5311 = load i32, ptr %206, align 4, !tbaa !5
  %5312 = call ptr @__errno_location() #12
  store i32 %5311, ptr %5312, align 4, !tbaa !5
  %5313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5314 = load i32, ptr @test_count, align 4, !tbaa !5
  %5315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5316 = load i32, ptr %5315, align 4, !tbaa !5
  %5317 = call ptr @s2n_strerror(i32 noundef %5316, ptr noundef @.str.33)
  %5318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5319 = load i32, ptr %5318, align 4, !tbaa !5
  %5320 = call ptr @s2n_strerror_debug(i32 noundef %5319, ptr noundef @.str.33)
  %5321 = call ptr @__errno_location() #12
  %5322 = load i32, ptr %5321, align 4, !tbaa !5
  %5323 = call ptr @strerror(i32 noundef %5322) #11
  %5324 = call ptr @__errno_location() #12
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5313, ptr noundef @.str.31, i32 noundef %5314, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 599, ptr noundef %5317, ptr noundef %5320, ptr noundef %5323, i32 noundef %5325) #11
  br label %5344

5327:                                             ; preds = %5305, %5298
  %5328 = load i32, ptr %206, align 4, !tbaa !5
  %5329 = call ptr @__errno_location() #12
  store i32 %5328, ptr %5329, align 4, !tbaa !5
  %5330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5331 = load i32, ptr @test_count, align 4, !tbaa !5
  %5332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror(i32 noundef %5333, ptr noundef @.str.33)
  %5335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @s2n_strerror_debug(i32 noundef %5336, ptr noundef @.str.33)
  %5338 = call ptr @__errno_location() #12
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call ptr @strerror(i32 noundef %5339) #11
  %5341 = call ptr @__errno_location() #12
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5330, ptr noundef @.str.34, i32 noundef %5331, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 599, ptr noundef %5334, ptr noundef %5337, ptr noundef %5340, i32 noundef %5342) #11
  br label %5344

5344:                                             ; preds = %5327, %5310
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %5345

5345:                                             ; preds = %5344
  br label %5346

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

5347:                                             ; No predecessors!
  br label %5348

5348:                                             ; preds = %5347
  br label %5349

5349:                                             ; preds = %5348, %5290
  br label %5350

5350:                                             ; preds = %5349
  br label %5351

5351:                                             ; preds = %5350
  br label %5352

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

5358:                                             ; preds = %5352
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

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

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

5372:                                             ; preds = %5367
  %5373 = load i32, ptr %207, align 4, !tbaa !5
  %5374 = call ptr @__errno_location() #12
  store i32 %5373, ptr %5374, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = load i32, ptr @test_count, align 4, !tbaa !5
  %5377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5378 = load i32, ptr %5377, align 4, !tbaa !5
  %5379 = call ptr @s2n_strerror(i32 noundef %5378, ptr noundef @.str.33)
  %5380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  %5382 = call ptr @s2n_strerror_debug(i32 noundef %5381, ptr noundef @.str.33)
  %5383 = call ptr @__errno_location() #12
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call ptr @strerror(i32 noundef %5384) #11
  %5386 = call ptr @__errno_location() #12
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5375, ptr noundef @.str.31, i32 noundef %5376, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 599, ptr noundef %5379, ptr noundef %5382, ptr noundef %5385, i32 noundef %5387) #11
  br label %5406

5389:                                             ; preds = %5367, %5360
  %5390 = load i32, ptr %207, align 4, !tbaa !5
  %5391 = call ptr @__errno_location() #12
  store i32 %5390, ptr %5391, align 4, !tbaa !5
  %5392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5393 = load i32, ptr @test_count, align 4, !tbaa !5
  %5394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror(i32 noundef %5395, ptr noundef @.str.33)
  %5397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @s2n_strerror_debug(i32 noundef %5398, ptr noundef @.str.33)
  %5400 = call ptr @__errno_location() #12
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @strerror(i32 noundef %5401) #11
  %5403 = call ptr @__errno_location() #12
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5392, ptr noundef @.str.34, i32 noundef %5393, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 599, ptr noundef %5396, ptr noundef %5399, ptr noundef %5402, i32 noundef %5404) #11
  br label %5406

5406:                                             ; preds = %5389, %5372
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %5407

5407:                                             ; preds = %5406
  br label %5408

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

5409:                                             ; No predecessors!
  br label %5410

5410:                                             ; preds = %5409
  br label %5411

5411:                                             ; preds = %5410, %5352
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

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

5421:                                             ; preds = %5414
  br label %5422

5422:                                             ; preds = %5421
  br label %5423

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

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

5435:                                             ; preds = %5430
  %5436 = load i32, ptr %208, align 4, !tbaa !5
  %5437 = call ptr @__errno_location() #12
  store i32 %5436, ptr %5437, align 4, !tbaa !5
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = load i32, ptr @test_count, align 4, !tbaa !5
  %5440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5441 = load i32, ptr %5440, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror(i32 noundef %5441, ptr noundef @.str.33)
  %5443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5444 = load i32, ptr %5443, align 4, !tbaa !5
  %5445 = call ptr @s2n_strerror_debug(i32 noundef %5444, ptr noundef @.str.33)
  %5446 = call ptr @__errno_location() #12
  %5447 = load i32, ptr %5446, align 4, !tbaa !5
  %5448 = call ptr @strerror(i32 noundef %5447) #11
  %5449 = call ptr @__errno_location() #12
  %5450 = load i32, ptr %5449, align 4, !tbaa !5
  %5451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5438, ptr noundef @.str.31, i32 noundef %5439, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 599, ptr noundef %5442, ptr noundef %5445, ptr noundef %5448, i32 noundef %5450) #11
  br label %5469

5452:                                             ; preds = %5430, %5423
  %5453 = load i32, ptr %208, align 4, !tbaa !5
  %5454 = call ptr @__errno_location() #12
  store i32 %5453, ptr %5454, align 4, !tbaa !5
  %5455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5456 = load i32, ptr @test_count, align 4, !tbaa !5
  %5457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5458 = load i32, ptr %5457, align 4, !tbaa !5
  %5459 = call ptr @s2n_strerror(i32 noundef %5458, ptr noundef @.str.33)
  %5460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5461 = load i32, ptr %5460, align 4, !tbaa !5
  %5462 = call ptr @s2n_strerror_debug(i32 noundef %5461, ptr noundef @.str.33)
  %5463 = call ptr @__errno_location() #12
  %5464 = load i32, ptr %5463, align 4, !tbaa !5
  %5465 = call ptr @strerror(i32 noundef %5464) #11
  %5466 = call ptr @__errno_location() #12
  %5467 = load i32, ptr %5466, align 4, !tbaa !5
  %5468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5455, ptr noundef @.str.34, i32 noundef %5456, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 599, ptr noundef %5459, ptr noundef %5462, ptr noundef %5465, i32 noundef %5467) #11
  br label %5469

5469:                                             ; preds = %5452, %5435
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %5470

5470:                                             ; preds = %5469
  br label %5471

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

5472:                                             ; No predecessors!
  br label %5473

5473:                                             ; preds = %5472
  br label %5474

5474:                                             ; preds = %5473, %5414
  br label %5475

5475:                                             ; preds = %5474
  br label %5476

5476:                                             ; preds = %5475
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

5478:                                             ; preds = %5477
  br label %5479

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

5482:                                             ; preds = %5479
  br label %5483

5483:                                             ; preds = %5482
  br label %5484

5484:                                             ; preds = %5483
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485
  %5487 = load i32, ptr @test_count, align 4, !tbaa !5
  %5488 = add nsw i32 %5487, 1
  store i32 %5488, ptr @test_count, align 4, !tbaa !5
  %5489 = load ptr, ptr %166, align 8, !tbaa !9
  %5490 = getelementptr inbounds %struct.hybrid_test_vector, ptr %5489, i32 0, i32 5
  %5491 = load ptr, ptr %5490, align 8, !tbaa !21
  %5492 = load ptr, ptr %172, align 8, !tbaa !9
  %5493 = getelementptr inbounds %struct.s2n_connection, ptr %5492, i32 0, i32 31
  %5494 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5493, i32 0, i32 5
  %5495 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5494, i32 0, i32 1
  %5496 = getelementptr inbounds %struct.s2n_kem_params, ptr %5495, i32 0, i32 3
  %5497 = call i32 @s2n_dup(ptr noundef %5491, ptr noundef %5496)
  %5498 = icmp eq i32 %5497, -1
  br i1 %5498, label %5499, label %5552

5499:                                             ; preds = %5486
  br label %5500

5500:                                             ; preds = %5499
  br label %5501

5501:                                             ; preds = %5500
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %5502 = call ptr @__errno_location() #12
  %5503 = load i32, ptr %5502, align 4, !tbaa !5
  store i32 %5503, ptr %209, align 4, !tbaa !5
  %5504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5505 = call i32 @s2n_print_stacktrace(ptr noundef %5504)
  %5506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5507 = trunc i8 %5506 to i1
  br i1 %5507, label %5508, label %5530

5508:                                             ; preds = %5501
  %5509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5510 = call i32 @fileno(ptr noundef %5509) #11
  %5511 = call i32 @isatty(i32 noundef %5510) #11
  %5512 = icmp ne i32 %5511, 0
  br i1 %5512, label %5513, label %5530

5513:                                             ; preds = %5508
  %5514 = load i32, ptr %209, align 4, !tbaa !5
  %5515 = call ptr @__errno_location() #12
  store i32 %5514, ptr %5515, align 4, !tbaa !5
  %5516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5517 = load i32, ptr @test_count, align 4, !tbaa !5
  %5518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5519 = load i32, ptr %5518, align 4, !tbaa !5
  %5520 = call ptr @s2n_strerror(i32 noundef %5519, ptr noundef @.str.33)
  %5521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5522 = load i32, ptr %5521, align 4, !tbaa !5
  %5523 = call ptr @s2n_strerror_debug(i32 noundef %5522, ptr noundef @.str.33)
  %5524 = call ptr @__errno_location() #12
  %5525 = load i32, ptr %5524, align 4, !tbaa !5
  %5526 = call ptr @strerror(i32 noundef %5525) #11
  %5527 = call ptr @__errno_location() #12
  %5528 = load i32, ptr %5527, align 4, !tbaa !5
  %5529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5516, ptr noundef @.str.31, i32 noundef %5517, ptr noundef @.str.133, ptr noundef @.str.30, i32 noundef 600, ptr noundef %5520, ptr noundef %5523, ptr noundef %5526, i32 noundef %5528) #11
  br label %5547

5530:                                             ; preds = %5508, %5501
  %5531 = load i32, ptr %209, align 4, !tbaa !5
  %5532 = call ptr @__errno_location() #12
  store i32 %5531, ptr %5532, align 4, !tbaa !5
  %5533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5534 = load i32, ptr @test_count, align 4, !tbaa !5
  %5535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5536 = load i32, ptr %5535, align 4, !tbaa !5
  %5537 = call ptr @s2n_strerror(i32 noundef %5536, ptr noundef @.str.33)
  %5538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5539 = load i32, ptr %5538, align 4, !tbaa !5
  %5540 = call ptr @s2n_strerror_debug(i32 noundef %5539, ptr noundef @.str.33)
  %5541 = call ptr @__errno_location() #12
  %5542 = load i32, ptr %5541, align 4, !tbaa !5
  %5543 = call ptr @strerror(i32 noundef %5542) #11
  %5544 = call ptr @__errno_location() #12
  %5545 = load i32, ptr %5544, align 4, !tbaa !5
  %5546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5533, ptr noundef @.str.34, i32 noundef %5534, ptr noundef @.str.133, ptr noundef @.str.30, i32 noundef 600, ptr noundef %5537, ptr noundef %5540, ptr noundef %5543, i32 noundef %5545) #11
  br label %5547

5547:                                             ; preds = %5530, %5513
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

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

5550:                                             ; No predecessors!
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551, %5486
  br label %5553

5553:                                             ; preds = %5552
  br label %5554

5554:                                             ; preds = %5553
  br label %5555

5555:                                             ; preds = %5554
  br label %5556

5556:                                             ; preds = %5555
  br label %5557

5557:                                             ; preds = %5556
  %5558 = load i32, ptr @test_count, align 4, !tbaa !5
  %5559 = add nsw i32 %5558, 1
  store i32 %5559, ptr @test_count, align 4, !tbaa !5
  %5560 = load ptr, ptr %172, align 8, !tbaa !9
  %5561 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %5560, ptr noundef %177)
  %5562 = icmp eq i32 %5561, -1
  br i1 %5562, label %5616, label %5563

5563:                                             ; preds = %5557
  br label %5564

5564:                                             ; preds = %5563
  br label %5565

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

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

5577:                                             ; preds = %5572
  %5578 = load i32, ptr %210, align 4, !tbaa !5
  %5579 = call ptr @__errno_location() #12
  store i32 %5578, ptr %5579, align 4, !tbaa !5
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = load i32, ptr @test_count, align 4, !tbaa !5
  %5582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call ptr @s2n_strerror(i32 noundef %5583, ptr noundef @.str.33)
  %5585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call ptr @s2n_strerror_debug(i32 noundef %5586, ptr noundef @.str.33)
  %5588 = call ptr @__errno_location() #12
  %5589 = load i32, ptr %5588, align 4, !tbaa !5
  %5590 = call ptr @strerror(i32 noundef %5589) #11
  %5591 = call ptr @__errno_location() #12
  %5592 = load i32, ptr %5591, align 4, !tbaa !5
  %5593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5580, ptr noundef @.str.31, i32 noundef %5581, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 603, ptr noundef %5584, ptr noundef %5587, ptr noundef %5590, i32 noundef %5592) #11
  br label %5611

5594:                                             ; preds = %5572, %5565
  %5595 = load i32, ptr %210, align 4, !tbaa !5
  %5596 = call ptr @__errno_location() #12
  store i32 %5595, ptr %5596, align 4, !tbaa !5
  %5597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5598 = load i32, ptr @test_count, align 4, !tbaa !5
  %5599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call ptr @s2n_strerror(i32 noundef %5600, ptr noundef @.str.33)
  %5602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5603 = load i32, ptr %5602, align 4, !tbaa !5
  %5604 = call ptr @s2n_strerror_debug(i32 noundef %5603, ptr noundef @.str.33)
  %5605 = call ptr @__errno_location() #12
  %5606 = load i32, ptr %5605, align 4, !tbaa !5
  %5607 = call ptr @strerror(i32 noundef %5606) #11
  %5608 = call ptr @__errno_location() #12
  %5609 = load i32, ptr %5608, align 4, !tbaa !5
  %5610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5597, ptr noundef @.str.34, i32 noundef %5598, ptr noundef @.str.127, ptr noundef @.str.30, i32 noundef 603, ptr noundef %5601, ptr noundef %5604, ptr noundef %5607, i32 noundef %5609) #11
  br label %5611

5611:                                             ; preds = %5594, %5577
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

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

5614:                                             ; No predecessors!
  br label %5615

5615:                                             ; preds = %5614
  br label %5616

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

5617:                                             ; preds = %5616
  br label %5618

5618:                                             ; preds = %5617
  br label %5619

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

5625:                                             ; preds = %5619
  br label %5626

5626:                                             ; preds = %5625
  br label %5627

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

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

5639:                                             ; preds = %5634
  %5640 = load i32, ptr %211, align 4, !tbaa !5
  %5641 = call ptr @__errno_location() #12
  store i32 %5640, ptr %5641, align 4, !tbaa !5
  %5642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5643 = load i32, ptr @test_count, align 4, !tbaa !5
  %5644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  %5646 = call ptr @s2n_strerror(i32 noundef %5645, ptr noundef @.str.33)
  %5647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @s2n_strerror_debug(i32 noundef %5648, ptr noundef @.str.33)
  %5650 = call ptr @__errno_location() #12
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @strerror(i32 noundef %5651) #11
  %5653 = call ptr @__errno_location() #12
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5642, ptr noundef @.str.31, i32 noundef %5643, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 603, ptr noundef %5646, ptr noundef %5649, ptr noundef %5652, i32 noundef %5654) #11
  br label %5673

5656:                                             ; preds = %5634, %5627
  %5657 = load i32, ptr %211, align 4, !tbaa !5
  %5658 = call ptr @__errno_location() #12
  store i32 %5657, ptr %5658, align 4, !tbaa !5
  %5659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5660 = load i32, ptr @test_count, align 4, !tbaa !5
  %5661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @s2n_strerror(i32 noundef %5662, ptr noundef @.str.33)
  %5664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call ptr @s2n_strerror_debug(i32 noundef %5665, ptr noundef @.str.33)
  %5667 = call ptr @__errno_location() #12
  %5668 = load i32, ptr %5667, align 4, !tbaa !5
  %5669 = call ptr @strerror(i32 noundef %5668) #11
  %5670 = call ptr @__errno_location() #12
  %5671 = load i32, ptr %5670, align 4, !tbaa !5
  %5672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5659, ptr noundef @.str.34, i32 noundef %5660, ptr noundef @.str.122, ptr noundef @.str.30, i32 noundef 603, ptr noundef %5663, ptr noundef %5666, ptr noundef %5669, i32 noundef %5671) #11
  br label %5673

5673:                                             ; preds = %5656, %5639
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %5674

5674:                                             ; preds = %5673
  br label %5675

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

5676:                                             ; No predecessors!
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

5678:                                             ; preds = %5677, %5619
  br label %5679

5679:                                             ; preds = %5678
  br label %5680

5680:                                             ; preds = %5679
  br label %5681

5681:                                             ; preds = %5680
  %5682 = load i32, ptr @test_count, align 4, !tbaa !5
  %5683 = add nsw i32 %5682, 1
  store i32 %5683, ptr @test_count, align 4, !tbaa !5
  %5684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5685 = load i32, ptr %5684, align 4, !tbaa !5
  %5686 = call ptr @s2n_strerror_debug(i32 noundef %5685, ptr noundef @.str.33)
  %5687 = icmp eq ptr %5686, null
  br i1 %5687, label %5688, label %5741

5688:                                             ; preds = %5681
  br label %5689

5689:                                             ; preds = %5688
  br label %5690

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

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

5702:                                             ; preds = %5697
  %5703 = load i32, ptr %212, align 4, !tbaa !5
  %5704 = call ptr @__errno_location() #12
  store i32 %5703, ptr %5704, align 4, !tbaa !5
  %5705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5706 = load i32, ptr @test_count, align 4, !tbaa !5
  %5707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5708 = load i32, ptr %5707, align 4, !tbaa !5
  %5709 = call ptr @s2n_strerror(i32 noundef %5708, ptr noundef @.str.33)
  %5710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call ptr @s2n_strerror_debug(i32 noundef %5711, ptr noundef @.str.33)
  %5713 = call ptr @__errno_location() #12
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call ptr @strerror(i32 noundef %5714) #11
  %5716 = call ptr @__errno_location() #12
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5705, ptr noundef @.str.31, i32 noundef %5706, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 603, ptr noundef %5709, ptr noundef %5712, ptr noundef %5715, i32 noundef %5717) #11
  br label %5736

5719:                                             ; preds = %5697, %5690
  %5720 = load i32, ptr %212, align 4, !tbaa !5
  %5721 = call ptr @__errno_location() #12
  store i32 %5720, ptr %5721, align 4, !tbaa !5
  %5722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5723 = load i32, ptr @test_count, align 4, !tbaa !5
  %5724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  %5726 = call ptr @s2n_strerror(i32 noundef %5725, ptr noundef @.str.33)
  %5727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call ptr @s2n_strerror_debug(i32 noundef %5728, ptr noundef @.str.33)
  %5730 = call ptr @__errno_location() #12
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call ptr @strerror(i32 noundef %5731) #11
  %5733 = call ptr @__errno_location() #12
  %5734 = load i32, ptr %5733, align 4, !tbaa !5
  %5735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5722, ptr noundef @.str.34, i32 noundef %5723, ptr noundef @.str.123, ptr noundef @.str.30, i32 noundef 603, ptr noundef %5726, ptr noundef %5729, ptr noundef %5732, i32 noundef %5734) #11
  br label %5736

5736:                                             ; preds = %5719, %5702
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %5737

5737:                                             ; preds = %5736
  br label %5738

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

5739:                                             ; No predecessors!
  br label %5740

5740:                                             ; preds = %5739
  br label %5741

5741:                                             ; preds = %5740, %5681
  br label %5742

5742:                                             ; preds = %5741
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

5744:                                             ; preds = %5743
  br label %5745

5745:                                             ; preds = %5744
  br label %5746

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

5749:                                             ; preds = %5746
  br label %5750

5750:                                             ; preds = %5749
  br label %5751

5751:                                             ; preds = %5750
  br label %5752

5752:                                             ; preds = %5751
  %5753 = load ptr, ptr %166, align 8, !tbaa !9
  %5754 = getelementptr inbounds %struct.hybrid_test_vector, ptr %5753, i32 0, i32 0
  %5755 = load ptr, ptr %5754, align 8, !tbaa !15
  %5756 = load ptr, ptr %172, align 8, !tbaa !9
  %5757 = getelementptr inbounds %struct.s2n_connection, ptr %5756, i32 0, i32 31
  %5758 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5757, i32 0, i32 4
  %5759 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5758, i32 0, i32 0
  store ptr %5755, ptr %5759, align 8, !tbaa !81
  br label %5760

5760:                                             ; preds = %5752
  %5761 = load i32, ptr @test_count, align 4, !tbaa !5
  %5762 = add nsw i32 %5761, 1
  store i32 %5762, ptr @test_count, align 4, !tbaa !5
  %5763 = load ptr, ptr %172, align 8, !tbaa !9
  %5764 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef %5763, ptr noundef %177)
  %5765 = icmp eq i32 %5764, -1
  br i1 %5765, label %5766, label %5819

5766:                                             ; preds = %5760
  br label %5767

5767:                                             ; preds = %5766
  br label %5768

5768:                                             ; preds = %5767
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %5769 = call ptr @__errno_location() #12
  %5770 = load i32, ptr %5769, align 4, !tbaa !5
  store i32 %5770, ptr %213, align 4, !tbaa !5
  %5771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5772 = call i32 @s2n_print_stacktrace(ptr noundef %5771)
  %5773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5774 = trunc i8 %5773 to i1
  br i1 %5774, label %5775, label %5797

5775:                                             ; preds = %5768
  %5776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5777 = call i32 @fileno(ptr noundef %5776) #11
  %5778 = call i32 @isatty(i32 noundef %5777) #11
  %5779 = icmp ne i32 %5778, 0
  br i1 %5779, label %5780, label %5797

5780:                                             ; preds = %5775
  %5781 = load i32, ptr %213, align 4, !tbaa !5
  %5782 = call ptr @__errno_location() #12
  store i32 %5781, ptr %5782, align 4, !tbaa !5
  %5783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5784 = load i32, ptr @test_count, align 4, !tbaa !5
  %5785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call ptr @s2n_strerror(i32 noundef %5786, ptr noundef @.str.33)
  %5788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  %5790 = call ptr @s2n_strerror_debug(i32 noundef %5789, ptr noundef @.str.33)
  %5791 = call ptr @__errno_location() #12
  %5792 = load i32, ptr %5791, align 4, !tbaa !5
  %5793 = call ptr @strerror(i32 noundef %5792) #11
  %5794 = call ptr @__errno_location() #12
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  %5796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5783, ptr noundef @.str.31, i32 noundef %5784, ptr noundef @.str.134, ptr noundef @.str.30, i32 noundef 607, ptr noundef %5787, ptr noundef %5790, ptr noundef %5793, i32 noundef %5795) #11
  br label %5814

5797:                                             ; preds = %5775, %5768
  %5798 = load i32, ptr %213, align 4, !tbaa !5
  %5799 = call ptr @__errno_location() #12
  store i32 %5798, ptr %5799, align 4, !tbaa !5
  %5800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5801 = load i32, ptr @test_count, align 4, !tbaa !5
  %5802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call ptr @s2n_strerror(i32 noundef %5803, ptr noundef @.str.33)
  %5805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  %5807 = call ptr @s2n_strerror_debug(i32 noundef %5806, ptr noundef @.str.33)
  %5808 = call ptr @__errno_location() #12
  %5809 = load i32, ptr %5808, align 4, !tbaa !5
  %5810 = call ptr @strerror(i32 noundef %5809) #11
  %5811 = call ptr @__errno_location() #12
  %5812 = load i32, ptr %5811, align 4, !tbaa !5
  %5813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5800, ptr noundef @.str.34, i32 noundef %5801, ptr noundef @.str.134, ptr noundef @.str.30, i32 noundef 607, ptr noundef %5804, ptr noundef %5807, ptr noundef %5810, i32 noundef %5812) #11
  br label %5814

5814:                                             ; preds = %5797, %5780
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

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

5817:                                             ; No predecessors!
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

5819:                                             ; preds = %5818, %5760
  br label %5820

5820:                                             ; preds = %5819
  br label %5821

5821:                                             ; preds = %5820
  br label %5822

5822:                                             ; preds = %5821
  %5823 = load i32, ptr @test_count, align 4, !tbaa !5
  %5824 = add nsw i32 %5823, 1
  store i32 %5824, ptr @test_count, align 4, !tbaa !5
  %5825 = load ptr, ptr %172, align 8, !tbaa !9
  %5826 = call i32 @s2n_connection_free(ptr noundef %5825)
  %5827 = icmp eq i32 %5826, -1
  br i1 %5827, label %5828, label %5881

5828:                                             ; preds = %5822
  br label %5829

5829:                                             ; preds = %5828
  br label %5830

5830:                                             ; preds = %5829
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %5831 = call ptr @__errno_location() #12
  %5832 = load i32, ptr %5831, align 4, !tbaa !5
  store i32 %5832, ptr %214, align 4, !tbaa !5
  %5833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5834 = call i32 @s2n_print_stacktrace(ptr noundef %5833)
  %5835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5836 = trunc i8 %5835 to i1
  br i1 %5836, label %5837, label %5859

5837:                                             ; preds = %5830
  %5838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5839 = call i32 @fileno(ptr noundef %5838) #11
  %5840 = call i32 @isatty(i32 noundef %5839) #11
  %5841 = icmp ne i32 %5840, 0
  br i1 %5841, label %5842, label %5859

5842:                                             ; preds = %5837
  %5843 = load i32, ptr %214, align 4, !tbaa !5
  %5844 = call ptr @__errno_location() #12
  store i32 %5843, ptr %5844, align 4, !tbaa !5
  %5845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5846 = load i32, ptr @test_count, align 4, !tbaa !5
  %5847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call ptr @s2n_strerror(i32 noundef %5848, ptr noundef @.str.33)
  %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_debug(i32 noundef %5851, ptr noundef @.str.33)
  %5853 = call ptr @__errno_location() #12
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call ptr @strerror(i32 noundef %5854) #11
  %5856 = call ptr @__errno_location() #12
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5845, ptr noundef @.str.31, i32 noundef %5846, ptr noundef @.str.135, ptr noundef @.str.30, i32 noundef 609, ptr noundef %5849, ptr noundef %5852, ptr noundef %5855, i32 noundef %5857) #11
  br label %5876

5859:                                             ; preds = %5837, %5830
  %5860 = load i32, ptr %214, align 4, !tbaa !5
  %5861 = call ptr @__errno_location() #12
  store i32 %5860, ptr %5861, align 4, !tbaa !5
  %5862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5863 = load i32, ptr @test_count, align 4, !tbaa !5
  %5864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  %5866 = call ptr @s2n_strerror(i32 noundef %5865, ptr noundef @.str.33)
  %5867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call ptr @s2n_strerror_debug(i32 noundef %5868, ptr noundef @.str.33)
  %5870 = call ptr @__errno_location() #12
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call ptr @strerror(i32 noundef %5871) #11
  %5873 = call ptr @__errno_location() #12
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5862, ptr noundef @.str.34, i32 noundef %5863, ptr noundef @.str.135, ptr noundef @.str.30, i32 noundef 609, ptr noundef %5866, ptr noundef %5869, ptr noundef %5872, i32 noundef %5874) #11
  br label %5876

5876:                                             ; preds = %5859, %5842
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

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

5879:                                             ; No predecessors!
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

5881:                                             ; preds = %5880, %5822
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

5883:                                             ; preds = %5882
  %5884 = call i32 @s2n_free(ptr noundef %177)
  call void @llvm.lifetime.end.p0(i64 24, ptr %177) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  br label %5885

5885:                                             ; preds = %5883
  %5886 = load i64, ptr %168, align 8, !tbaa !73
  %5887 = add i64 %5886, 1
  store i64 %5887, ptr %168, align 8, !tbaa !73
  br label %2943, !llvm.loop !82

5888:                                             ; preds = %2946
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #11
  br label %5889

5889:                                             ; preds = %5888
  br label %5890

5890:                                             ; preds = %5889
  %5891 = call i32 @s2n_cleanup()
  %5892 = icmp eq i32 %5891, -1
  br i1 %5892, label %5893, label %5946

5893:                                             ; preds = %5890
  br label %5894

5894:                                             ; preds = %5893
  br label %5895

5895:                                             ; preds = %5894
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %5896 = call ptr @__errno_location() #12
  %5897 = load i32, ptr %5896, align 4, !tbaa !5
  store i32 %5897, ptr %215, align 4, !tbaa !5
  %5898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5899 = call i32 @s2n_print_stacktrace(ptr noundef %5898)
  %5900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5901 = trunc i8 %5900 to i1
  br i1 %5901, label %5902, label %5924

5902:                                             ; preds = %5895
  %5903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5904 = call i32 @fileno(ptr noundef %5903) #11
  %5905 = call i32 @isatty(i32 noundef %5904) #11
  %5906 = icmp ne i32 %5905, 0
  br i1 %5906, label %5907, label %5924

5907:                                             ; preds = %5902
  %5908 = load i32, ptr %215, align 4, !tbaa !5
  %5909 = call ptr @__errno_location() #12
  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.33)
  %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.33)
  %5918 = call ptr @__errno_location() #12
  %5919 = load i32, ptr %5918, align 4, !tbaa !5
  %5920 = call ptr @strerror(i32 noundef %5919) #11
  %5921 = call ptr @__errno_location() #12
  %5922 = load i32, ptr %5921, align 4, !tbaa !5
  %5923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5910, ptr noundef @.str.31, i32 noundef %5911, ptr noundef @.str.136, ptr noundef @.str.30, i32 noundef 613, ptr noundef %5914, ptr noundef %5917, ptr noundef %5920, i32 noundef %5922) #11
  br label %5941

5924:                                             ; preds = %5902, %5895
  %5925 = load i32, ptr %215, align 4, !tbaa !5
  %5926 = call ptr @__errno_location() #12
  store i32 %5925, ptr %5926, align 4, !tbaa !5
  %5927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5928 = load i32, ptr @test_count, align 4, !tbaa !5
  %5929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @s2n_strerror(i32 noundef %5930, ptr noundef @.str.33)
  %5932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call ptr @s2n_strerror_debug(i32 noundef %5933, ptr noundef @.str.33)
  %5935 = call ptr @__errno_location() #12
  %5936 = load i32, ptr %5935, align 4, !tbaa !5
  %5937 = call ptr @strerror(i32 noundef %5936) #11
  %5938 = call ptr @__errno_location() #12
  %5939 = load i32, ptr %5938, align 4, !tbaa !5
  %5940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5927, ptr noundef @.str.34, i32 noundef %5928, ptr noundef @.str.136, ptr noundef @.str.30, i32 noundef 613, ptr noundef %5931, ptr noundef %5934, ptr noundef %5937, i32 noundef %5939) #11
  br label %5941

5941:                                             ; preds = %5924, %5907
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %5942

5942:                                             ; preds = %5941
  br label %5943

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

5944:                                             ; No predecessors!
  br label %5945

5945:                                             ; preds = %5944
  br label %5946

5946:                                             ; preds = %5945, %5890
  br label %5947

5947:                                             ; preds = %5946
  br label %5948

5948:                                             ; preds = %5947
  br label %5949

5949:                                             ; preds = %5948
  br label %5950

5950:                                             ; preds = %5949
  %5951 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5952 = icmp eq i32 %5951, -1
  br i1 %5952, label %5953, label %6006

5953:                                             ; preds = %5950
  br label %5954

5954:                                             ; preds = %5953
  br label %5955

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

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

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

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

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

6002:                                             ; preds = %6001
  br label %6003

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

6004:                                             ; No predecessors!
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

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

6007:                                             ; preds = %6006
  br label %6008

6008:                                             ; preds = %6007
  %6009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6010 = trunc i8 %6009 to i1
  br i1 %6010, label %6011, label %6027

6011:                                             ; preds = %6008
  %6012 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6013 = call i32 @fileno(ptr noundef %6012) #11
  %6014 = call i32 @isatty(i32 noundef %6013) #11
  %6015 = icmp ne i32 %6014, 0
  br i1 %6015, label %6016, label %6027

6016:                                             ; preds = %6011
  %6017 = load i32, ptr @test_count, align 4, !tbaa !5
  %6018 = icmp ne i32 %6017, 0
  br i1 %6018, label %6019, label %6023

6019:                                             ; preds = %6016
  %6020 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6021 = load i32, ptr @test_count, align 4, !tbaa !5
  %6022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6020, ptr noundef @.str.138, i32 noundef %6021) #11
  br label %6026

6023:                                             ; preds = %6016
  %6024 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6024, ptr noundef @.str.139) #11
  br label %6026

6026:                                             ; preds = %6023, %6019
  br label %6038

6027:                                             ; preds = %6011, %6008
  %6028 = load i32, ptr @test_count, align 4, !tbaa !5
  %6029 = icmp ne i32 %6028, 0
  br i1 %6029, label %6030, label %6034

6030:                                             ; preds = %6027
  %6031 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6032 = load i32, ptr @test_count, align 4, !tbaa !5
  %6033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6031, ptr noundef @.str.140, i32 noundef %6032) #11
  br label %6037

6034:                                             ; preds = %6027
  %6035 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6035, ptr noundef @.str.141) #11
  br label %6037

6037:                                             ; preds = %6034, %6030
  br label %6038

6038:                                             ; preds = %6037, %6026
  store i32 0, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6043

6039:                                             ; No predecessors!
  br label %6040

6040:                                             ; preds = %6039
  br label %6041

6041:                                             ; preds = %6040
  br label %6042

6042:                                             ; preds = %6041
  store i32 0, ptr %12, align 4
  br label %6043

6043:                                             ; preds = %6042, %6038, %2940
  call void @llvm.lifetime.end.p0(i64 128, ptr %123) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %122) #11
  br label %6044

6044:                                             ; preds = %6043, %1064
  %6045 = call i32 @s2n_free(ptr noundef %120)
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #11
  br label %6046

6046:                                             ; preds = %6044, %1054
  %6047 = call i32 @s2n_free(ptr noundef %118)
  call void @llvm.lifetime.end.p0(i64 24, ptr %118) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %117) #11
  br label %6048

6048:                                             ; preds = %6046, %1035
  %6049 = call i32 @s2n_free(ptr noundef %115)
  call void @llvm.lifetime.end.p0(i64 24, ptr %115) #11
  br label %6050

6050:                                             ; preds = %6048, %1025
  %6051 = call i32 @s2n_free(ptr noundef %113)
  call void @llvm.lifetime.end.p0(i64 24, ptr %113) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %112) #11
  br label %6052

6052:                                             ; preds = %6050, %1006
  %6053 = call i32 @s2n_free(ptr noundef %110)
  call void @llvm.lifetime.end.p0(i64 24, ptr %110) #11
  br label %6054

6054:                                             ; preds = %6052, %996
  %6055 = call i32 @s2n_free(ptr noundef %108)
  call void @llvm.lifetime.end.p0(i64 24, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %107) #11
  br label %6056

6056:                                             ; preds = %6054, %977
  %6057 = call i32 @s2n_free(ptr noundef %105)
  call void @llvm.lifetime.end.p0(i64 24, ptr %105) #11
  br label %6058

6058:                                             ; preds = %6056, %967
  %6059 = call i32 @s2n_free(ptr noundef %103)
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #11
  br label %6060

6060:                                             ; preds = %6058, %957
  %6061 = call i32 @s2n_free(ptr noundef %101)
  call void @llvm.lifetime.end.p0(i64 24, ptr %101) #11
  br label %6062

6062:                                             ; preds = %6060, %947
  %6063 = call i32 @s2n_free(ptr noundef %99)
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #11
  br label %6064

6064:                                             ; preds = %6062, %937
  %6065 = call i32 @s2n_free(ptr noundef %97)
  call void @llvm.lifetime.end.p0(i64 24, ptr %97) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %96) #11
  br label %6066

6066:                                             ; preds = %6064, %918
  %6067 = call i32 @s2n_free(ptr noundef %94)
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #11
  br label %6068

6068:                                             ; preds = %6066, %908
  %6069 = call i32 @s2n_free(ptr noundef %92)
  call void @llvm.lifetime.end.p0(i64 24, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %91) #11
  br label %6070

6070:                                             ; preds = %6068, %889
  %6071 = call i32 @s2n_free(ptr noundef %89)
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #11
  br label %6072

6072:                                             ; preds = %6070, %879
  %6073 = call i32 @s2n_free(ptr noundef %87)
  call void @llvm.lifetime.end.p0(i64 24, ptr %87) #11
  br label %6074

6074:                                             ; preds = %6072, %869
  %6075 = call i32 @s2n_free(ptr noundef %85)
  call void @llvm.lifetime.end.p0(i64 24, ptr %85) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %84) #11
  br label %6076

6076:                                             ; preds = %6074, %850
  %6077 = call i32 @s2n_free(ptr noundef %82)
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #11
  br label %6078

6078:                                             ; preds = %6076, %840
  %6079 = call i32 @s2n_free(ptr noundef %80)
  call void @llvm.lifetime.end.p0(i64 24, ptr %80) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %79) #11
  br label %6080

6080:                                             ; preds = %6078, %821
  %6081 = call i32 @s2n_free(ptr noundef %77)
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #11
  br label %6082

6082:                                             ; preds = %6080, %811
  %6083 = call i32 @s2n_free(ptr noundef %75)
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %74) #11
  br label %6084

6084:                                             ; preds = %6082, %792
  %6085 = call i32 @s2n_free(ptr noundef %72)
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #11
  br label %6086

6086:                                             ; preds = %6084, %782
  %6087 = call i32 @s2n_free(ptr noundef %70)
  call void @llvm.lifetime.end.p0(i64 24, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %69) #11
  br label %6088

6088:                                             ; preds = %6086, %763
  %6089 = call i32 @s2n_free(ptr noundef %67)
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #11
  br label %6090

6090:                                             ; preds = %6088, %753
  %6091 = call i32 @s2n_free(ptr noundef %65)
  call void @llvm.lifetime.end.p0(i64 24, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %64) #11
  br label %6092

6092:                                             ; preds = %6090, %734
  %6093 = call i32 @s2n_free(ptr noundef %62)
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #11
  br label %6094

6094:                                             ; preds = %6092, %724
  %6095 = call i32 @s2n_free(ptr noundef %60)
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %59) #11
  br label %6096

6096:                                             ; preds = %6094, %705
  %6097 = call i32 @s2n_free(ptr noundef %57)
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #11
  br label %6098

6098:                                             ; preds = %6096, %695
  %6099 = call i32 @s2n_free(ptr noundef %55)
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #11
  br label %6100

6100:                                             ; preds = %6098, %685
  %6101 = call i32 @s2n_free(ptr noundef %53)
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #11
  br label %6102

6102:                                             ; preds = %6100, %675
  %6103 = call i32 @s2n_free(ptr noundef %51)
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #11
  br label %6104

6104:                                             ; preds = %6102, %665
  %6105 = call i32 @s2n_free(ptr noundef %49)
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #11
  br label %6106

6106:                                             ; preds = %6104, %655
  %6107 = call i32 @s2n_free(ptr noundef %47)
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #11
  br label %6108

6108:                                             ; preds = %6106, %645
  %6109 = call i32 @s2n_free(ptr noundef %45)
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #11
  br label %6110

6110:                                             ; preds = %6108, %635
  %6111 = call i32 @s2n_free(ptr noundef %43)
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #11
  br label %6112

6112:                                             ; preds = %6110, %625
  %6113 = call i32 @s2n_free(ptr noundef %41)
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %40) #11
  br label %6114

6114:                                             ; preds = %6112, %606
  %6115 = call i32 @s2n_free(ptr noundef %38)
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #11
  br label %6116

6116:                                             ; preds = %6114, %596
  %6117 = call i32 @s2n_free(ptr noundef %36)
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %35) #11
  br label %6118

6118:                                             ; preds = %6116, %577
  %6119 = call i32 @s2n_free(ptr noundef %33)
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #11
  br label %6120

6120:                                             ; preds = %6118, %567
  %6121 = call i32 @s2n_free(ptr noundef %31)
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #11
  br label %6122

6122:                                             ; preds = %6120, %557
  %6123 = call i32 @s2n_free(ptr noundef %29)
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #11
  br label %6124

6124:                                             ; preds = %6122, %547
  %6125 = call i32 @s2n_free(ptr noundef %27)
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %26) #11
  br label %6126

6126:                                             ; preds = %6124, %528
  %6127 = call i32 @s2n_free(ptr noundef %24)
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #11
  br label %6128

6128:                                             ; preds = %6126, %518
  %6129 = call i32 @s2n_free(ptr noundef %22)
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %21) #11
  br label %6130

6130:                                             ; preds = %6128, %499
  %6131 = call i32 @s2n_free(ptr noundef %19)
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #11
  br label %6132

6132:                                             ; preds = %6130, %489
  %6133 = call i32 @s2n_free(ptr noundef %17)
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #11
  br label %6134

6134:                                             ; preds = %6132, %479
  %6135 = call i32 @s2n_free(ptr noundef %15)
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #11
  br label %6136

6136:                                             ; preds = %6134, %469
  %6137 = call i32 @s2n_free(ptr noundef %13)
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #11
  br label %6138

6138:                                             ; preds = %6136, %459
  %6139 = call i32 @s2n_free(ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #11
  %6140 = load i32, ptr %12, align 4
  switch i32 %6140, label %6143 [
    i32 0, label %6141
    i32 1, label %6141
  ]

6141:                                             ; preds = %6138, %6138
  %6142 = load i32, ptr %3, align 4
  ret i32 %6142

6143:                                             ; preds = %6138
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #7

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #8

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #7

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #7

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #7

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #9

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare i32 @s2n_free(ptr noundef) #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @set_up_conns(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden i32 @assert_kem_group_params_freed(ptr noundef) #4

declare i32 @s2n_hash_free(ptr noundef) #2

declare i32 @s2n_hash_new(ptr noundef) #2

declare i32 @s2n_hash_init(ptr noundef, i32 noundef) #2

declare i32 @s2n_hash_update(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #1

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_conn_get_current_message_type(ptr noundef) #2

declare i32 @s2n_tls13_derive_secret(ptr noundef, i32 noundef, i32 noundef, ptr noundef) #2

declare i32 @s2n_connection_free(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) #10

declare void @s2n_debug_info_reset() #2

; Function Attrs: nounwind uwtable
declare hidden i32 @read_priv_ecc(ptr noundef, ptr noundef) #4

declare i32 @s2n_ecc_evp_params_free(ptr noundef) #2

declare i32 @s2n_dup(ptr noundef, ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { 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 #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 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 #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 = { 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 #9 = { 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 #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 0}
!16 = !{!"hybrid_test_vector", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64}
!17 = !{!16, !10, i64 8}
!18 = !{!16, !10, i64 16}
!19 = !{!16, !10, i64 24}
!20 = !{!16, !10, i64 32}
!21 = !{!16, !10, i64 40}
!22 = !{!16, !10, i64 48}
!23 = !{!16, !10, i64 56}
!24 = !{!16, !10, i64 64}
!25 = !{!26, !10, i64 16}
!26 = !{!"s2n_kem_group", !10, i64 0, !27, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!27 = !{!"short", !7, i64 0}
!28 = !{!29, !10, i64 8}
!29 = !{!"s2n_ecc_named_curve", !27, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!30 = !{!31, !6, i64 8}
!31 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!32 = !{!31, !10, i64 0}
!33 = !{!34, !6, i64 96}
!34 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!35 = !{!36, !10, i64 232}
!36 = !{!"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, !37, i64 160, !38, i64 168, !38, 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, !39, i64 240, !10, i64 632, !10, i64 640, !40, i64 648, !45, i64 1144, !48, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !50, i64 1776, !50, i64 1816, !50, i64 1856, !50, i64 1896, !6, i64 1936, !38, i64 1944, !7, i64 1952, !50, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !51, i64 2004, !51, i64 2008, !52, i64 2016, !27, i64 2208, !6, i64 2212, !27, i64 2216, !38, i64 2224, !7, i64 2232, !38, i64 2240, !38, i64 2248, !38, i64 2256, !51, i64 2264, !51, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !31, i64 2792, !6, i64 2816, !31, i64 2824, !31, i64 2848, !31, i64 2872, !54, i64 2896, !56, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !31, i64 3784, !6, i64 3808, !58, i64 3816, !7, i64 3848, !50, i64 3992, !31, i64 4032, !31, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !27, i64 4084, !27, i64 4086, !6, i64 4088, !6, i64 4092, !31, i64 4096, !6, i64 4120, !59, i64 4128, !51, i64 4176, !7, i64 4180, !7, i64 4181}
!37 = !{!"s2n_timer", !38, i64 0}
!38 = !{!"long", !7, i64 0}
!39 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!40 = !{!"s2n_kex_parameters", !41, i64 0, !42, i64 8, !7, i64 24, !42, i64 56, !43, i64 72, !43, i64 184, !7, i64 296, !44, i64 360, !31, i64 448, !31, i64 472}
!41 = !{!"s2n_dh_params", !10, i64 0}
!42 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!43 = !{!"s2n_kem_group_params", !10, i64 0, !44, i64 8, !42, i64 96}
!44 = !{!"s2n_kem_params", !10, i64 0, !31, i64 8, !31, i64 32, !31, i64 56, !12, i64 80}
!45 = !{!"s2n_handshake_parameters", !46, i64 0, !46, i64 48, !31, i64 96, !6, i64 120, !47, 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}
!46 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!47 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!48 = !{!"s2n_psk_parameters", !6, i64 0, !49, i64 8, !27, i64 40, !27, i64 42, !10, i64 48, !6, i64 56}
!49 = !{!"s2n_array", !31, i64 0, !6, i64 24, !6, i64 28}
!50 = !{!"s2n_stuffer", !31, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!51 = !{!"", !6, i64 0}
!52 = !{!"s2n_handshake", !50, 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, !53, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!53 = !{!"s2n_offered_early_data", !10, i64 0}
!54 = !{!"s2n_client_hello", !31, i64 0, !55, i64 24, !31, i64 728, !31, i64 752, !31, 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}
!55 = !{!"", !7, i64 0, !31, i64 672, !27, i64 696}
!56 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !27, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !57, i64 48, !12, i64 52}
!57 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!58 = !{!"s2n_ticket_fields", !31, i64 0, !6, i64 24}
!59 = !{!"s2n_post_handshake", !50, i64 0, !7, i64 40}
!60 = !{!61, !10, i64 0}
!61 = !{!"s2n_crypto_parameters", !10, i64 0, !62, i64 8, !62, i64 16, !63, i64 24, !63, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!62 = !{!"s2n_session_key", !10, i64 0}
!63 = !{!"s2n_hmac_state", !6, i64 0, !27, i64 4, !6, i64 8, !27, i64 12, !7, i64 14, !64, i64 16, !64, i64 72, !64, i64 128, !64, i64 184, !7, i64 240, !7, i64 368}
!64 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !38, i64 16, !7, i64 24}
!65 = !{!66, !6, i64 4}
!66 = !{!"s2n_tls13_keys", !6, i64 0, !6, i64 4, !7, i64 8, !31, i64 16, !31, i64 40, !7, i64 64, !7, i64 112, !63, i64 160}
!67 = !{!36, !10, i64 2056}
!68 = !{!66, !7, i64 8}
!69 = !{!36, !6, i64 2172}
!70 = !{!36, !6, i64 2176}
!71 = distinct !{!71, !72}
!72 = !{!"llvm.loop.mustprogress"}
!73 = !{!38, !38, i64 0}
!74 = !{!75, !10, i64 0}
!75 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!76 = !{!75, !10, i64 8}
!77 = distinct !{!77, !72}
!78 = !{!36, !10, i64 656}
!79 = !{!36, !10, i64 816}
!80 = !{!36, !10, i64 928}
!81 = !{!36, !10, i64 720}
!82 = distinct !{!82, !72}


; 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_debug_info = type { ptr, ptr }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.hybrid_test_vector = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_tls13_keys = type { i32, i32, i8, %struct.s2n_blob, %struct.s2n_blob, [48 x i8], [48 x i8], %struct.s2n_hmac_state }
%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 }
%union.anon = 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 local_unnamed_addr global i8, align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [94 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.31 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp256r1_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.43 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [302 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.48 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_x25519_kyber_512_r3 = external constant %struct.s2n_kem_group, align 8
@.str.52 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [197 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp256r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.65 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp384r1_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.69 = external hidden unnamed_addr constant [360 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [360 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp521r1_kyber_1024_r3 = external constant %struct.s2n_kem_group, align 8
@.str.75 = external hidden unnamed_addr constant [437 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [437 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_x25519_kyber_768_r3 = external constant %struct.s2n_kem_group, align 8
@.str.82 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_secp256r1_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.89 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_x25519_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.93 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [61 x i8], align 1
@__const.main.modes = external hidden unnamed_addr constant [2 x i32], align 4
@.str.121 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [106 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.127 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #2

declare i32 @s2n_tls13_keys_init(ptr noundef, i32 noundef) 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_tls13_compute_shared_secret(ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #6

declare i32 @s2n_tls13_keys_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #4 {
  %3 = alloca %struct.s2n_blob, align 8
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca %struct.s2n_blob, align 8
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca %struct.hybrid_test_vector, align 8
  %9 = alloca %struct.s2n_blob, align 8
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca %struct.hybrid_test_vector, align 8
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_blob, align 8
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca %struct.hybrid_test_vector, align 8
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca %struct.s2n_blob, align 8
  %19 = alloca %struct.hybrid_test_vector, align 8
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca %struct.s2n_blob, align 8
  %22 = alloca %struct.s2n_blob, align 8
  %23 = alloca %struct.s2n_blob, align 8
  %24 = alloca %struct.s2n_blob, align 8
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca %struct.s2n_blob, align 8
  %27 = alloca %struct.s2n_blob, align 8
  %28 = alloca %struct.s2n_blob, align 8
  %29 = alloca %struct.hybrid_test_vector, align 8
  %30 = alloca %struct.s2n_blob, align 8
  %31 = alloca %struct.s2n_blob, align 8
  %32 = alloca %struct.hybrid_test_vector, align 8
  %33 = alloca %struct.s2n_blob, align 8
  %34 = alloca %struct.s2n_blob, align 8
  %35 = alloca %struct.hybrid_test_vector, align 8
  %36 = alloca %struct.s2n_blob, align 8
  %37 = alloca %struct.s2n_blob, align 8
  %38 = alloca %struct.hybrid_test_vector, align 8
  %39 = alloca %struct.s2n_blob, align 8
  %40 = alloca %struct.s2n_blob, align 8
  %41 = alloca %struct.hybrid_test_vector, align 8
  %42 = alloca %struct.s2n_blob, align 8
  %43 = alloca %struct.s2n_blob, align 8
  %44 = alloca %struct.hybrid_test_vector, align 8
  %45 = alloca %struct.s2n_blob, align 8
  %46 = alloca %struct.s2n_blob, align 8
  %47 = alloca %struct.s2n_blob, align 8
  %48 = alloca %struct.hybrid_test_vector, align 8
  %49 = alloca %struct.s2n_blob, align 8
  %50 = alloca %struct.s2n_blob, align 8
  %51 = alloca %struct.hybrid_test_vector, align 8
  %52 = alloca %struct.s2n_blob, align 8
  %53 = alloca %struct.s2n_blob, align 8
  %54 = alloca %struct.s2n_blob, align 8
  %55 = alloca %struct.s2n_blob, align 8
  %56 = alloca %struct.s2n_blob, align 8
  %57 = alloca %struct.hybrid_test_vector, align 8
  %58 = alloca %struct.s2n_blob, align 8
  %59 = alloca %struct.s2n_blob, align 8
  %60 = alloca %struct.hybrid_test_vector, align 8
  %61 = alloca %struct.s2n_blob, align 8
  %62 = alloca %struct.s2n_blob, align 8
  %63 = alloca %struct.hybrid_test_vector, align 8
  %64 = alloca %struct.s2n_blob, align 8
  %65 = alloca %struct.s2n_blob, align 8
  %66 = alloca %struct.hybrid_test_vector, align 8
  %67 = alloca [16 x ptr], align 16
  %68 = alloca %struct.s2n_blob, align 8
  %69 = alloca %struct.s2n_blob, align 8
  %70 = alloca %struct.s2n_tls13_keys, align 8
  %71 = alloca %struct.s2n_hash_state, align 8
  %72 = alloca [48 x i8], align 16
  %73 = alloca %struct.s2n_blob, align 8
  %74 = alloca [48 x i8], align 16
  %75 = alloca %struct.s2n_blob, align 8
  %76 = alloca %struct.s2n_blob, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %77 = load ptr, ptr @stdout, align 8, !tbaa !9
  %78 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %77, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.30) #12
  %79 = load ptr, ptr @stdout, align 8, !tbaa !9
  %80 = tail call i32 @fflush(ptr noundef %79)
  %81 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %82 = icmp eq i32 %81, -1
  br i1 %82, label %83, label %107

83:                                               ; preds = %2
  %84 = tail call ptr @__errno_location() #13
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = tail call i32 @s2n_print_stacktrace(ptr noundef %86) #12
  %88 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %89 = trunc nuw i8 %88 to i1
  br i1 %89, label %90, label %94

90:                                               ; preds = %83
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = tail call i32 @fileno(ptr noundef %91) #12
  %93 = tail call i32 @isatty(i32 noundef %92) #12
  %.not386 = icmp eq i32 %93, 0
  br i1 %.not386, label %94, label %95

94:                                               ; preds = %90, %83
  br label %95

95:                                               ; preds = %90, %94
  %.str.34.sink = phi ptr [ @.str.34, %94 ], [ @.str.31, %90 ]
  store i32 %85, ptr %84, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = tail call ptr @s2n_strerror(i32 noundef %99, ptr noundef nonnull @.str.33) #12
  %101 = load i32, ptr %98, align 4, !tbaa !5
  %102 = tail call ptr @s2n_strerror_debug(i32 noundef %101, ptr noundef nonnull @.str.33) #12
  %103 = load i32, ptr %84, align 4, !tbaa !5
  %104 = tail call ptr @strerror(i32 noundef %103) #12
  %105 = load i32, ptr %84, align 4, !tbaa !5
  %106 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef nonnull %.str.34.sink, i32 noundef %97, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.30, i32 noundef 198, ptr noundef %100, ptr noundef %102, ptr noundef %104, i32 noundef %105) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

107:                                              ; preds = %2
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = add nsw i32 %108, 1
  store i32 %109, ptr @test_count, align 4, !tbaa !5
  %110 = tail call i32 @s2n_enable_atexit() #12
  %111 = icmp eq i32 %110, -1
  br i1 %111, label %112, label %136

112:                                              ; preds = %107
  %113 = tail call ptr @__errno_location() #13
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = tail call i32 @s2n_print_stacktrace(ptr noundef %115) #12
  %117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %118 = trunc nuw i8 %117 to i1
  br i1 %118, label %119, label %123

119:                                              ; preds = %112
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = tail call i32 @fileno(ptr noundef %120) #12
  %122 = tail call i32 @isatty(i32 noundef %121) #12
  %.not385 = icmp eq i32 %122, 0
  br i1 %.not385, label %123, label %124

123:                                              ; preds = %119, %112
  br label %124

124:                                              ; preds = %119, %123
  %.str.34.sink576 = phi ptr [ @.str.34, %123 ], [ @.str.31, %119 ]
  store i32 %114, ptr %113, align 4, !tbaa !5
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = tail call ptr @s2n_strerror(i32 noundef %128, ptr noundef nonnull @.str.33) #12
  %130 = load i32, ptr %127, align 4, !tbaa !5
  %131 = tail call ptr @s2n_strerror_debug(i32 noundef %130, ptr noundef nonnull @.str.33) #12
  %132 = load i32, ptr %113, align 4, !tbaa !5
  %133 = tail call ptr @strerror(i32 noundef %132) #12
  %134 = load i32, ptr %113, align 4, !tbaa !5
  %135 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %125, ptr noundef nonnull %.str.34.sink576, i32 noundef %126, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.30, i32 noundef 198, ptr noundef %129, ptr noundef %131, ptr noundef %133, i32 noundef %134) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

136:                                              ; preds = %107
  %137 = tail call i32 @s2n_init() #12
  %138 = icmp eq i32 %137, -1
  br i1 %138, label %139, label %163

139:                                              ; preds = %136
  %140 = tail call ptr @__errno_location() #13
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = tail call i32 @s2n_print_stacktrace(ptr noundef %142) #12
  %144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %145 = trunc nuw i8 %144 to i1
  br i1 %145, label %146, label %150

146:                                              ; preds = %139
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = tail call i32 @fileno(ptr noundef %147) #12
  %149 = tail call i32 @isatty(i32 noundef %148) #12
  %.not384 = icmp eq i32 %149, 0
  br i1 %.not384, label %150, label %151

150:                                              ; preds = %146, %139
  br label %151

151:                                              ; preds = %146, %150
  %.str.34.sink587 = phi ptr [ @.str.34, %150 ], [ @.str.31, %146 ]
  store i32 %141, ptr %140, align 4, !tbaa !5
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = load i32, ptr @test_count, align 4, !tbaa !5
  %154 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = tail call ptr @s2n_strerror(i32 noundef %155, ptr noundef nonnull @.str.33) #12
  %157 = load i32, ptr %154, align 4, !tbaa !5
  %158 = tail call ptr @s2n_strerror_debug(i32 noundef %157, ptr noundef nonnull @.str.33) #12
  %159 = load i32, ptr %140, align 4, !tbaa !5
  %160 = tail call ptr @strerror(i32 noundef %159) #12
  %161 = load i32, ptr %140, align 4, !tbaa !5
  %162 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %152, ptr noundef nonnull %.str.34.sink587, i32 noundef %153, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.30, i32 noundef 198, ptr noundef %156, ptr noundef %158, ptr noundef %160, i32 noundef %161) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

163:                                              ; preds = %136
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr @test_count, align 4, !tbaa !5
  %166 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %167 = icmp eq i32 %166, -1
  br i1 %167, label %168, label %192

168:                                              ; preds = %163
  %169 = tail call ptr @__errno_location() #13
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = tail call i32 @s2n_print_stacktrace(ptr noundef %171) #12
  %173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %174 = trunc nuw i8 %173 to i1
  br i1 %174, label %175, label %179

175:                                              ; preds = %168
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = tail call i32 @fileno(ptr noundef %176) #12
  %178 = tail call i32 @isatty(i32 noundef %177) #12
  %.not383 = icmp eq i32 %178, 0
  br i1 %.not383, label %179, label %180

179:                                              ; preds = %175, %168
  br label %180

180:                                              ; preds = %175, %179
  %.str.34.sink598 = phi ptr [ @.str.34, %179 ], [ @.str.31, %175 ]
  store i32 %170, ptr %169, align 4, !tbaa !5
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = load i32, ptr @test_count, align 4, !tbaa !5
  %183 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = tail call ptr @s2n_strerror(i32 noundef %184, ptr noundef nonnull @.str.33) #12
  %186 = load i32, ptr %183, align 4, !tbaa !5
  %187 = tail call ptr @s2n_strerror_debug(i32 noundef %186, ptr noundef nonnull @.str.33) #12
  %188 = load i32, ptr %169, align 4, !tbaa !5
  %189 = tail call ptr @strerror(i32 noundef %188) #12
  %190 = load i32, ptr %169, align 4, !tbaa !5
  %191 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %181, ptr noundef nonnull %.str.34.sink598, i32 noundef %182, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.30, i32 noundef 199, ptr noundef %185, ptr noundef %187, ptr noundef %189, i32 noundef %190) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

192:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false)
  %193 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %3, ptr noundef nonnull @.str.38) #12
  %194 = call zeroext i1 @s2n_result_is_ok(i32 %193)
  br i1 %194, label %195, label %2656

195:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %196 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %4, ptr noundef nonnull @.str.39) #12
  %197 = call zeroext i1 @s2n_result_is_ok(i32 %196)
  br i1 %197, label %198, label %2654

198:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %199 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %5, ptr noundef nonnull @.str.40) #12
  %200 = call zeroext i1 @s2n_result_is_ok(i32 %199)
  br i1 %200, label %201, label %2652

201:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  %202 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %6, ptr noundef nonnull @.str.41) #12
  %203 = call zeroext i1 @s2n_result_is_ok(i32 %202)
  br i1 %203, label %204, label %2650

204:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %205 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %7, ptr noundef nonnull @.str.42) #12
  %206 = call zeroext i1 @s2n_result_is_ok(i32 %205)
  br i1 %206, label %207, label %2648

207:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %8) #12
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %8, align 8, !tbaa !15
  %208 = getelementptr inbounds i8, ptr %8, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %208, align 8, !tbaa !17
  %209 = getelementptr inbounds i8, ptr %8, i64 16
  store ptr @.str.43, ptr %209, align 8, !tbaa !18
  %210 = getelementptr inbounds i8, ptr %8, i64 24
  store ptr @.str.44, ptr %210, align 8, !tbaa !19
  %211 = getelementptr inbounds i8, ptr %8, i64 32
  store ptr @.str.45, ptr %211, align 8, !tbaa !20
  %212 = getelementptr inbounds i8, ptr %8, i64 40
  store ptr %4, ptr %212, align 8, !tbaa !21
  %213 = getelementptr inbounds i8, ptr %8, i64 48
  store ptr %5, ptr %213, align 8, !tbaa !22
  %214 = getelementptr inbounds i8, ptr %8, i64 56
  store ptr %6, ptr %214, align 8, !tbaa !23
  %215 = getelementptr inbounds i8, ptr %8, i64 64
  store ptr %7, ptr %215, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false)
  %216 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %9, ptr noundef nonnull @.str.46) #12
  %217 = call zeroext i1 @s2n_result_is_ok(i32 %216)
  br i1 %217, label %218, label %2646

218:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %219 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %10, ptr noundef nonnull @.str.47) #12
  %220 = call zeroext i1 @s2n_result_is_ok(i32 %219)
  br i1 %220, label %221, label %2644

221:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %11) #12
  store ptr @s2n_secp256r1_kyber_512_r3, ptr %11, align 8, !tbaa !15
  %222 = getelementptr inbounds i8, ptr %11, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %222, align 8, !tbaa !17
  %223 = getelementptr inbounds i8, ptr %11, i64 16
  store ptr @.str.43, ptr %223, align 8, !tbaa !18
  %224 = getelementptr inbounds i8, ptr %11, i64 24
  store ptr @.str.44, ptr %224, align 8, !tbaa !19
  %225 = getelementptr inbounds i8, ptr %11, i64 32
  store ptr @.str.45, ptr %225, align 8, !tbaa !20
  %226 = getelementptr inbounds i8, ptr %11, i64 40
  store ptr %4, ptr %226, align 8, !tbaa !21
  %227 = getelementptr inbounds i8, ptr %11, i64 48
  store ptr %5, ptr %227, align 8, !tbaa !22
  %228 = getelementptr inbounds i8, ptr %11, i64 56
  store ptr %9, ptr %228, align 8, !tbaa !23
  %229 = getelementptr inbounds i8, ptr %11, i64 64
  store ptr %10, ptr %229, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false)
  %230 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %12, ptr noundef nonnull @.str.48) #12
  %231 = call zeroext i1 @s2n_result_is_ok(i32 %230)
  br i1 %231, label %232, label %2642

232:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, i8 0, i64 24, i1 false)
  %233 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %13, ptr noundef nonnull @.str.49) #12
  %234 = call zeroext i1 @s2n_result_is_ok(i32 %233)
  br i1 %234, label %235, label %2640

235:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false)
  %236 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %14, ptr noundef nonnull @.str.50) #12
  %237 = call zeroext i1 @s2n_result_is_ok(i32 %236)
  br i1 %237, label %238, label %2638

238:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  %239 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %15, ptr noundef nonnull @.str.51) #12
  %240 = call zeroext i1 @s2n_result_is_ok(i32 %239)
  br i1 %240, label %241, label %2636

241:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %16) #12
  store ptr @s2n_x25519_kyber_512_r3, ptr %16, align 8, !tbaa !15
  %242 = getelementptr inbounds i8, ptr %16, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %242, align 8, !tbaa !17
  %243 = getelementptr inbounds i8, ptr %16, i64 16
  store ptr @.str.43, ptr %243, align 8, !tbaa !18
  %244 = getelementptr inbounds i8, ptr %16, i64 24
  store ptr @.str.52, ptr %244, align 8, !tbaa !19
  %245 = getelementptr inbounds i8, ptr %16, i64 32
  store ptr @.str.53, ptr %245, align 8, !tbaa !20
  %246 = getelementptr inbounds i8, ptr %16, i64 40
  store ptr %4, ptr %246, align 8, !tbaa !21
  %247 = getelementptr inbounds i8, ptr %16, i64 48
  store ptr %13, ptr %247, align 8, !tbaa !22
  %248 = getelementptr inbounds i8, ptr %16, i64 56
  store ptr %14, ptr %248, align 8, !tbaa !23
  %249 = getelementptr inbounds i8, ptr %16, i64 64
  store ptr %15, ptr %249, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %17, i8 0, i64 24, i1 false)
  %250 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %17, ptr noundef nonnull @.str.54) #12
  %251 = call zeroext i1 @s2n_result_is_ok(i32 %250)
  br i1 %251, label %252, label %2634

252:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %18, i8 0, i64 24, i1 false)
  %253 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %18, ptr noundef nonnull @.str.55) #12
  %254 = call zeroext i1 @s2n_result_is_ok(i32 %253)
  br i1 %254, label %255, label %2632

255:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %19) #12
  store ptr @s2n_x25519_kyber_512_r3, ptr %19, align 8, !tbaa !15
  %256 = getelementptr inbounds i8, ptr %19, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %256, align 8, !tbaa !17
  %257 = getelementptr inbounds i8, ptr %19, i64 16
  store ptr @.str.43, ptr %257, align 8, !tbaa !18
  %258 = getelementptr inbounds i8, ptr %19, i64 24
  store ptr @.str.52, ptr %258, align 8, !tbaa !19
  %259 = getelementptr inbounds i8, ptr %19, i64 32
  store ptr @.str.53, ptr %259, align 8, !tbaa !20
  %260 = getelementptr inbounds i8, ptr %19, i64 40
  store ptr %4, ptr %260, align 8, !tbaa !21
  %261 = getelementptr inbounds i8, ptr %19, i64 48
  store ptr %13, ptr %261, align 8, !tbaa !22
  %262 = getelementptr inbounds i8, ptr %19, i64 56
  store ptr %17, ptr %262, align 8, !tbaa !23
  %263 = getelementptr inbounds i8, ptr %19, i64 64
  store ptr %18, ptr %263, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %20, i8 0, i64 24, i1 false)
  %264 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %20, ptr noundef nonnull @.str.56) #12
  %265 = call zeroext i1 @s2n_result_is_ok(i32 %264)
  br i1 %265, label %266, label %2630

266:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  %267 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %21, ptr noundef nonnull @.str.57) #12
  %268 = call zeroext i1 @s2n_result_is_ok(i32 %267)
  br i1 %268, label %269, label %2628

269:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false)
  %270 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %22, ptr noundef nonnull @.str.58) #12
  %271 = call zeroext i1 @s2n_result_is_ok(i32 %270)
  br i1 %271, label %272, label %2626

272:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %23, i8 0, i64 24, i1 false)
  %273 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %23, ptr noundef nonnull @.str.59) #12
  %274 = call zeroext i1 @s2n_result_is_ok(i32 %273)
  br i1 %274, label %275, label %2624

275:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %24, i8 0, i64 24, i1 false)
  %276 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %24, ptr noundef nonnull @.str.60) #12
  %277 = call zeroext i1 @s2n_result_is_ok(i32 %276)
  br i1 %277, label %278, label %2622

278:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %25, i8 0, i64 24, i1 false)
  %279 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %25, ptr noundef nonnull @.str.61) #12
  %280 = call zeroext i1 @s2n_result_is_ok(i32 %279)
  br i1 %280, label %281, label %2620

281:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %26, i8 0, i64 24, i1 false)
  %282 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %26, ptr noundef nonnull @.str.62) #12
  %283 = call zeroext i1 @s2n_result_is_ok(i32 %282)
  br i1 %283, label %284, label %2618

284:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %27, i8 0, i64 24, i1 false)
  %285 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %27, ptr noundef nonnull @.str.63) #12
  %286 = call zeroext i1 @s2n_result_is_ok(i32 %285)
  br i1 %286, label %287, label %2616

287:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %28, i8 0, i64 24, i1 false)
  %288 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %28, ptr noundef nonnull @.str.64) #12
  %289 = call zeroext i1 @s2n_result_is_ok(i32 %288)
  br i1 %289, label %290, label %2614

290:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %29) #12
  store ptr @s2n_secp256r1_kyber_768_r3, ptr %29, align 8, !tbaa !15
  %291 = getelementptr inbounds i8, ptr %29, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %291, align 8, !tbaa !17
  %292 = getelementptr inbounds i8, ptr %29, i64 16
  store ptr @.str.43, ptr %292, align 8, !tbaa !18
  %293 = getelementptr inbounds i8, ptr %29, i64 24
  store ptr @.str.44, ptr %293, align 8, !tbaa !19
  %294 = getelementptr inbounds i8, ptr %29, i64 32
  store ptr @.str.45, ptr %294, align 8, !tbaa !20
  %295 = getelementptr inbounds i8, ptr %29, i64 40
  store ptr %22, ptr %295, align 8, !tbaa !21
  %296 = getelementptr inbounds i8, ptr %29, i64 48
  store ptr %20, ptr %296, align 8, !tbaa !22
  %297 = getelementptr inbounds i8, ptr %29, i64 56
  store ptr %27, ptr %297, align 8, !tbaa !23
  %298 = getelementptr inbounds i8, ptr %29, i64 64
  store ptr %28, ptr %298, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %30, i8 0, i64 24, i1 false)
  %299 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %30, ptr noundef nonnull @.str.65) #12
  %300 = call zeroext i1 @s2n_result_is_ok(i32 %299)
  br i1 %300, label %301, label %2612

301:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %31, i8 0, i64 24, i1 false)
  %302 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %31, ptr noundef nonnull @.str.66) #12
  %303 = call zeroext i1 @s2n_result_is_ok(i32 %302)
  br i1 %303, label %304, label %2610

304:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %32) #12
  store ptr @s2n_secp256r1_kyber_768_r3, ptr %32, align 8, !tbaa !15
  %305 = getelementptr inbounds i8, ptr %32, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %305, align 8, !tbaa !17
  %306 = getelementptr inbounds i8, ptr %32, i64 16
  store ptr @.str.43, ptr %306, align 8, !tbaa !18
  %307 = getelementptr inbounds i8, ptr %32, i64 24
  store ptr @.str.44, ptr %307, align 8, !tbaa !19
  %308 = getelementptr inbounds i8, ptr %32, i64 32
  store ptr @.str.45, ptr %308, align 8, !tbaa !20
  %309 = getelementptr inbounds i8, ptr %32, i64 40
  store ptr %22, ptr %309, align 8, !tbaa !21
  %310 = getelementptr inbounds i8, ptr %32, i64 48
  store ptr %20, ptr %310, align 8, !tbaa !22
  %311 = getelementptr inbounds i8, ptr %32, i64 56
  store ptr %30, ptr %311, align 8, !tbaa !23
  %312 = getelementptr inbounds i8, ptr %32, i64 64
  store ptr %31, ptr %312, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %33, i8 0, i64 24, i1 false)
  %313 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %33, ptr noundef nonnull @.str.67) #12
  %314 = call zeroext i1 @s2n_result_is_ok(i32 %313)
  br i1 %314, label %315, label %2608

315:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %34, i8 0, i64 24, i1 false)
  %316 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %34, ptr noundef nonnull @.str.68) #12
  %317 = call zeroext i1 @s2n_result_is_ok(i32 %316)
  br i1 %317, label %318, label %2606

318:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %35) #12
  store ptr @s2n_secp384r1_kyber_768_r3, ptr %35, align 8, !tbaa !15
  %319 = getelementptr inbounds i8, ptr %35, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %319, align 8, !tbaa !17
  %320 = getelementptr inbounds i8, ptr %35, i64 16
  store ptr @.str.43, ptr %320, align 8, !tbaa !18
  %321 = getelementptr inbounds i8, ptr %35, i64 24
  store ptr @.str.69, ptr %321, align 8, !tbaa !19
  %322 = getelementptr inbounds i8, ptr %35, i64 32
  store ptr @.str.70, ptr %322, align 8, !tbaa !20
  %323 = getelementptr inbounds i8, ptr %35, i64 40
  store ptr %22, ptr %323, align 8, !tbaa !21
  %324 = getelementptr inbounds i8, ptr %35, i64 48
  store ptr %23, ptr %324, align 8, !tbaa !22
  %325 = getelementptr inbounds i8, ptr %35, i64 56
  store ptr %33, ptr %325, align 8, !tbaa !23
  %326 = getelementptr inbounds i8, ptr %35, i64 64
  store ptr %34, ptr %326, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %36, i8 0, i64 24, i1 false)
  %327 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %36, ptr noundef nonnull @.str.71) #12
  %328 = call zeroext i1 @s2n_result_is_ok(i32 %327)
  br i1 %328, label %329, label %2604

329:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, i8 0, i64 24, i1 false)
  %330 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %37, ptr noundef nonnull @.str.72) #12
  %331 = call zeroext i1 @s2n_result_is_ok(i32 %330)
  br i1 %331, label %332, label %2602

332:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %38) #12
  store ptr @s2n_secp384r1_kyber_768_r3, ptr %38, align 8, !tbaa !15
  %333 = getelementptr inbounds i8, ptr %38, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %333, align 8, !tbaa !17
  %334 = getelementptr inbounds i8, ptr %38, i64 16
  store ptr @.str.43, ptr %334, align 8, !tbaa !18
  %335 = getelementptr inbounds i8, ptr %38, i64 24
  store ptr @.str.69, ptr %335, align 8, !tbaa !19
  %336 = getelementptr inbounds i8, ptr %38, i64 32
  store ptr @.str.70, ptr %336, align 8, !tbaa !20
  %337 = getelementptr inbounds i8, ptr %38, i64 40
  store ptr %22, ptr %337, align 8, !tbaa !21
  %338 = getelementptr inbounds i8, ptr %38, i64 48
  store ptr %23, ptr %338, align 8, !tbaa !22
  %339 = getelementptr inbounds i8, ptr %38, i64 56
  store ptr %36, ptr %339, align 8, !tbaa !23
  %340 = getelementptr inbounds i8, ptr %38, i64 64
  store ptr %37, ptr %340, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %39) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %39, i8 0, i64 24, i1 false)
  %341 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %39, ptr noundef nonnull @.str.73) #12
  %342 = call zeroext i1 @s2n_result_is_ok(i32 %341)
  br i1 %342, label %343, label %2600

343:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %40, i8 0, i64 24, i1 false)
  %344 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %40, ptr noundef nonnull @.str.74) #12
  %345 = call zeroext i1 @s2n_result_is_ok(i32 %344)
  br i1 %345, label %346, label %2598

346:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %41) #12
  store ptr @s2n_secp521r1_kyber_1024_r3, ptr %41, align 8, !tbaa !15
  %347 = getelementptr inbounds i8, ptr %41, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %347, align 8, !tbaa !17
  %348 = getelementptr inbounds i8, ptr %41, i64 16
  store ptr @.str.43, ptr %348, align 8, !tbaa !18
  %349 = getelementptr inbounds i8, ptr %41, i64 24
  store ptr @.str.75, ptr %349, align 8, !tbaa !19
  %350 = getelementptr inbounds i8, ptr %41, i64 32
  store ptr @.str.76, ptr %350, align 8, !tbaa !20
  %351 = getelementptr inbounds i8, ptr %41, i64 40
  store ptr %25, ptr %351, align 8, !tbaa !21
  %352 = getelementptr inbounds i8, ptr %41, i64 48
  store ptr %26, ptr %352, align 8, !tbaa !22
  %353 = getelementptr inbounds i8, ptr %41, i64 56
  store ptr %39, ptr %353, align 8, !tbaa !23
  %354 = getelementptr inbounds i8, ptr %41, i64 64
  store ptr %40, ptr %354, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %42, i8 0, i64 24, i1 false)
  %355 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %42, ptr noundef nonnull @.str.77) #12
  %356 = call zeroext i1 @s2n_result_is_ok(i32 %355)
  br i1 %356, label %357, label %2596

357:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %43, i8 0, i64 24, i1 false)
  %358 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %43, ptr noundef nonnull @.str.78) #12
  %359 = call zeroext i1 @s2n_result_is_ok(i32 %358)
  br i1 %359, label %360, label %2594

360:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %44) #12
  store ptr @s2n_secp521r1_kyber_1024_r3, ptr %44, align 8, !tbaa !15
  %361 = getelementptr inbounds i8, ptr %44, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %361, align 8, !tbaa !17
  %362 = getelementptr inbounds i8, ptr %44, i64 16
  store ptr @.str.43, ptr %362, align 8, !tbaa !18
  %363 = getelementptr inbounds i8, ptr %44, i64 24
  store ptr @.str.75, ptr %363, align 8, !tbaa !19
  %364 = getelementptr inbounds i8, ptr %44, i64 32
  store ptr @.str.76, ptr %364, align 8, !tbaa !20
  %365 = getelementptr inbounds i8, ptr %44, i64 40
  store ptr %25, ptr %365, align 8, !tbaa !21
  %366 = getelementptr inbounds i8, ptr %44, i64 48
  store ptr %26, ptr %366, align 8, !tbaa !22
  %367 = getelementptr inbounds i8, ptr %44, i64 56
  store ptr %42, ptr %367, align 8, !tbaa !23
  %368 = getelementptr inbounds i8, ptr %44, i64 64
  store ptr %43, ptr %368, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %45, i8 0, i64 24, i1 false)
  %369 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %45, ptr noundef nonnull @.str.79) #12
  %370 = call zeroext i1 @s2n_result_is_ok(i32 %369)
  br i1 %370, label %371, label %2592

371:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %46) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %46, i8 0, i64 24, i1 false)
  %372 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %46, ptr noundef nonnull @.str.80) #12
  %373 = call zeroext i1 @s2n_result_is_ok(i32 %372)
  br i1 %373, label %374, label %2590

374:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %47) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %47, i8 0, i64 24, i1 false)
  %375 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %47, ptr noundef nonnull @.str.81) #12
  %376 = call zeroext i1 @s2n_result_is_ok(i32 %375)
  br i1 %376, label %377, label %2588

377:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %48) #12
  store ptr @s2n_x25519_kyber_768_r3, ptr %48, align 8, !tbaa !15
  %378 = getelementptr inbounds i8, ptr %48, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %378, align 8, !tbaa !17
  %379 = getelementptr inbounds i8, ptr %48, i64 16
  store ptr @.str.43, ptr %379, align 8, !tbaa !18
  %380 = getelementptr inbounds i8, ptr %48, i64 24
  store ptr @.str.52, ptr %380, align 8, !tbaa !19
  %381 = getelementptr inbounds i8, ptr %48, i64 32
  store ptr @.str.53, ptr %381, align 8, !tbaa !20
  %382 = getelementptr inbounds i8, ptr %48, i64 40
  store ptr %22, ptr %382, align 8, !tbaa !21
  %383 = getelementptr inbounds i8, ptr %48, i64 48
  store ptr %45, ptr %383, align 8, !tbaa !22
  %384 = getelementptr inbounds i8, ptr %48, i64 56
  store ptr %46, ptr %384, align 8, !tbaa !23
  %385 = getelementptr inbounds i8, ptr %48, i64 64
  store ptr %47, ptr %385, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %49) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %49, i8 0, i64 24, i1 false)
  %386 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %49, ptr noundef nonnull @.str.82) #12
  %387 = call zeroext i1 @s2n_result_is_ok(i32 %386)
  br i1 %387, label %388, label %2586

388:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %50) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %50, i8 0, i64 24, i1 false)
  %389 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %50, ptr noundef nonnull @.str.83) #12
  %390 = call zeroext i1 @s2n_result_is_ok(i32 %389)
  br i1 %390, label %391, label %2584

391:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %51) #12
  store ptr @s2n_x25519_kyber_768_r3, ptr %51, align 8, !tbaa !15
  %392 = getelementptr inbounds i8, ptr %51, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %392, align 8, !tbaa !17
  %393 = getelementptr inbounds i8, ptr %51, i64 16
  store ptr @.str.43, ptr %393, align 8, !tbaa !18
  %394 = getelementptr inbounds i8, ptr %51, i64 24
  store ptr @.str.52, ptr %394, align 8, !tbaa !19
  %395 = getelementptr inbounds i8, ptr %51, i64 32
  store ptr @.str.53, ptr %395, align 8, !tbaa !20
  %396 = getelementptr inbounds i8, ptr %51, i64 40
  store ptr %22, ptr %396, align 8, !tbaa !21
  %397 = getelementptr inbounds i8, ptr %51, i64 48
  store ptr %45, ptr %397, align 8, !tbaa !22
  %398 = getelementptr inbounds i8, ptr %51, i64 56
  store ptr %49, ptr %398, align 8, !tbaa !23
  %399 = getelementptr inbounds i8, ptr %51, i64 64
  store ptr %50, ptr %399, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %52) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %52, i8 0, i64 24, i1 false)
  %400 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %52, ptr noundef nonnull @.str.84) #12
  %401 = call zeroext i1 @s2n_result_is_ok(i32 %400)
  br i1 %401, label %402, label %2582

402:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %53, i8 0, i64 24, i1 false)
  %403 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %53, ptr noundef nonnull @.str.85) #12
  %404 = call zeroext i1 @s2n_result_is_ok(i32 %403)
  br i1 %404, label %405, label %2580

405:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %54) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %54, i8 0, i64 24, i1 false)
  %406 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %54, ptr noundef nonnull @.str.86) #12
  %407 = call zeroext i1 @s2n_result_is_ok(i32 %406)
  br i1 %407, label %408, label %2578

408:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false)
  %409 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %55, ptr noundef nonnull @.str.87) #12
  %410 = call zeroext i1 @s2n_result_is_ok(i32 %409)
  br i1 %410, label %411, label %2576

411:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %56, i8 0, i64 24, i1 false)
  %412 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %56, ptr noundef nonnull @.str.88) #12
  %413 = call zeroext i1 @s2n_result_is_ok(i32 %412)
  br i1 %413, label %414, label %2574

414:                                              ; preds = %411
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %57) #12
  store ptr @s2n_secp256r1_mlkem_768, ptr %57, align 8, !tbaa !15
  %415 = getelementptr inbounds i8, ptr %57, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %415, align 8, !tbaa !17
  %416 = getelementptr inbounds i8, ptr %57, i64 16
  store ptr @.str.43, ptr %416, align 8, !tbaa !18
  %417 = getelementptr inbounds i8, ptr %57, i64 24
  store ptr @.str.44, ptr %417, align 8, !tbaa !19
  %418 = getelementptr inbounds i8, ptr %57, i64 32
  store ptr @.str.45, ptr %418, align 8, !tbaa !20
  %419 = getelementptr inbounds i8, ptr %57, i64 40
  store ptr %52, ptr %419, align 8, !tbaa !21
  %420 = getelementptr inbounds i8, ptr %57, i64 48
  store ptr %53, ptr %420, align 8, !tbaa !22
  %421 = getelementptr inbounds i8, ptr %57, i64 56
  store ptr %55, ptr %421, align 8, !tbaa !23
  %422 = getelementptr inbounds i8, ptr %57, i64 64
  store ptr %56, ptr %422, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %58) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %58, i8 0, i64 24, i1 false)
  %423 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %58, ptr noundef nonnull @.str.89) #12
  %424 = call zeroext i1 @s2n_result_is_ok(i32 %423)
  br i1 %424, label %425, label %2572

425:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %59, i8 0, i64 24, i1 false)
  %426 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %59, ptr noundef nonnull @.str.90) #12
  %427 = call zeroext i1 @s2n_result_is_ok(i32 %426)
  br i1 %427, label %428, label %2570

428:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %60) #12
  store ptr @s2n_secp256r1_mlkem_768, ptr %60, align 8, !tbaa !15
  %429 = getelementptr inbounds i8, ptr %60, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %429, align 8, !tbaa !17
  %430 = getelementptr inbounds i8, ptr %60, i64 16
  store ptr @.str.43, ptr %430, align 8, !tbaa !18
  %431 = getelementptr inbounds i8, ptr %60, i64 24
  store ptr @.str.44, ptr %431, align 8, !tbaa !19
  %432 = getelementptr inbounds i8, ptr %60, i64 32
  store ptr @.str.45, ptr %432, align 8, !tbaa !20
  %433 = getelementptr inbounds i8, ptr %60, i64 40
  store ptr %52, ptr %433, align 8, !tbaa !21
  %434 = getelementptr inbounds i8, ptr %60, i64 48
  store ptr %53, ptr %434, align 8, !tbaa !22
  %435 = getelementptr inbounds i8, ptr %60, i64 56
  store ptr %58, ptr %435, align 8, !tbaa !23
  %436 = getelementptr inbounds i8, ptr %60, i64 64
  store ptr %59, ptr %436, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %61) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %61, i8 0, i64 24, i1 false)
  %437 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %61, ptr noundef nonnull @.str.91) #12
  %438 = call zeroext i1 @s2n_result_is_ok(i32 %437)
  br i1 %438, label %439, label %2568

439:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %62) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %62, i8 0, i64 24, i1 false)
  %440 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %62, ptr noundef nonnull @.str.92) #12
  %441 = call zeroext i1 @s2n_result_is_ok(i32 %440)
  br i1 %441, label %442, label %2566

442:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %63) #12
  store ptr @s2n_x25519_mlkem_768, ptr %63, align 8, !tbaa !15
  %443 = getelementptr inbounds i8, ptr %63, i64 8
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %443, align 8, !tbaa !17
  %444 = getelementptr inbounds i8, ptr %63, i64 16
  store ptr @.str.43, ptr %444, align 8, !tbaa !18
  %445 = getelementptr inbounds i8, ptr %63, i64 24
  store ptr @.str.52, ptr %445, align 8, !tbaa !19
  %446 = getelementptr inbounds i8, ptr %63, i64 32
  store ptr @.str.53, ptr %446, align 8, !tbaa !20
  %447 = getelementptr inbounds i8, ptr %63, i64 40
  store ptr %52, ptr %447, align 8, !tbaa !21
  %448 = getelementptr inbounds i8, ptr %63, i64 48
  store ptr %54, ptr %448, align 8, !tbaa !22
  %449 = getelementptr inbounds i8, ptr %63, i64 56
  store ptr %61, ptr %449, align 8, !tbaa !23
  %450 = getelementptr inbounds i8, ptr %63, i64 64
  store ptr %62, ptr %450, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %64) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %64, i8 0, i64 24, i1 false)
  %451 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %64, ptr noundef nonnull @.str.93) #12
  %452 = call zeroext i1 @s2n_result_is_ok(i32 %451)
  br i1 %452, label %453, label %2564

453:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %65) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %65, i8 0, i64 24, i1 false)
  %454 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %65, ptr noundef nonnull @.str.94) #12
  %455 = call zeroext i1 @s2n_result_is_ok(i32 %454)
  br i1 %455, label %456, label %2562

456:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %66) #12
  store ptr @s2n_x25519_mlkem_768, ptr %66, align 8, !tbaa !15
  %457 = getelementptr inbounds i8, ptr %66, i64 8
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %457, align 8, !tbaa !17
  %458 = getelementptr inbounds i8, ptr %66, i64 16
  store ptr @.str.43, ptr %458, align 8, !tbaa !18
  %459 = getelementptr inbounds i8, ptr %66, i64 24
  store ptr @.str.52, ptr %459, align 8, !tbaa !19
  %460 = getelementptr inbounds i8, ptr %66, i64 32
  store ptr @.str.53, ptr %460, align 8, !tbaa !20
  %461 = getelementptr inbounds i8, ptr %66, i64 40
  store ptr %52, ptr %461, align 8, !tbaa !21
  %462 = getelementptr inbounds i8, ptr %66, i64 48
  store ptr %54, ptr %462, align 8, !tbaa !22
  %463 = getelementptr inbounds i8, ptr %66, i64 56
  store ptr %64, ptr %463, align 8, !tbaa !23
  %464 = getelementptr inbounds i8, ptr %66, i64 64
  store ptr %65, ptr %464, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %67) #12
  store ptr %8, ptr %67, align 16, !tbaa !9
  %465 = getelementptr inbounds i8, ptr %67, i64 8
  store ptr %11, ptr %465, align 8, !tbaa !9
  %466 = getelementptr inbounds i8, ptr %67, i64 16
  store ptr %16, ptr %466, align 16, !tbaa !9
  %467 = getelementptr inbounds i8, ptr %67, i64 24
  store ptr %19, ptr %467, align 8, !tbaa !9
  %468 = getelementptr inbounds i8, ptr %67, i64 32
  store ptr %29, ptr %468, align 16, !tbaa !9
  %469 = getelementptr inbounds i8, ptr %67, i64 40
  store ptr %32, ptr %469, align 8, !tbaa !9
  %470 = getelementptr inbounds i8, ptr %67, i64 48
  store ptr %35, ptr %470, align 16, !tbaa !9
  %471 = getelementptr inbounds i8, ptr %67, i64 56
  store ptr %38, ptr %471, align 8, !tbaa !9
  %472 = getelementptr inbounds i8, ptr %67, i64 64
  store ptr %41, ptr %472, align 16, !tbaa !9
  %473 = getelementptr inbounds i8, ptr %67, i64 72
  store ptr %44, ptr %473, align 8, !tbaa !9
  %474 = getelementptr inbounds i8, ptr %67, i64 80
  store ptr %48, ptr %474, align 16, !tbaa !9
  %475 = getelementptr inbounds i8, ptr %67, i64 88
  store ptr %51, ptr %475, align 8, !tbaa !9
  %476 = getelementptr inbounds i8, ptr %67, i64 96
  store ptr %57, ptr %476, align 16, !tbaa !9
  %477 = getelementptr inbounds i8, ptr %67, i64 104
  store ptr %60, ptr %477, align 8, !tbaa !9
  %478 = getelementptr inbounds i8, ptr %67, i64 112
  store ptr %63, ptr %478, align 16, !tbaa !9
  %479 = getelementptr inbounds i8, ptr %67, i64 120
  store ptr %66, ptr %479, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = getelementptr inbounds i8, ptr %68, i64 8
  %483 = getelementptr inbounds i8, ptr %69, i64 8
  %484 = getelementptr inbounds i8, ptr %70, i64 4
  %485 = getelementptr inbounds i8, ptr %70, i64 8
  %486 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %487 = getelementptr inbounds i8, ptr %486, i64 8
  %488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = getelementptr inbounds i8, ptr %73, i64 8
  %490 = getelementptr inbounds i8, ptr %75, i64 8
  br label %491

491:                                              ; preds = %456, %.thread388
  %indvars.iv = phi i64 [ 0, %456 ], [ %indvars.iv.next, %.thread388 ]
  %.0481 = phi i32 [ 0, %456 ], [ %.5391, %.thread388 ]
  %492 = getelementptr inbounds [16 x ptr], ptr %67, i64 0, i64 %indvars.iv
  %493 = load ptr, ptr %492, align 8, !tbaa !9
  %494 = load ptr, ptr %493, align 8, !tbaa !15
  %495 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %494) #12
  br i1 %495, label %502, label %496

496:                                              ; preds = %491
  %497 = getelementptr inbounds i8, ptr %494, i64 16
  %498 = load ptr, ptr %497, align 8, !tbaa !25
  %499 = getelementptr inbounds i8, ptr %498, i64 8
  %500 = load ptr, ptr %499, align 8, !tbaa !28
  %501 = icmp eq ptr %500, null
  br i1 %501, label %.thread388, label %502

502:                                              ; preds = %496, %491
  %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 ptr @s2n_connection_new(i32 noundef 1) #12
  %506 = icmp eq ptr %505, null
  br i1 %506, label %507, label %530

507:                                              ; preds = %502
  %508 = tail call ptr @__errno_location() #13
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = call i32 @s2n_print_stacktrace(ptr noundef %510) #12
  %512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %513 = trunc nuw i8 %512 to i1
  br i1 %513, label %514, label %518

514:                                              ; preds = %507
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @fileno(ptr noundef %515) #12
  %517 = call i32 @isatty(i32 noundef %516) #12
  %.not382 = icmp eq i32 %517, 0
  br i1 %.not382, label %518, label %519

518:                                              ; preds = %514, %507
  br label %519

519:                                              ; preds = %514, %518
  %.str.34.sink609 = phi ptr [ @.str.34, %518 ], [ @.str.31, %514 ]
  store i32 %509, ptr %508, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = load i32, ptr %488, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef nonnull @.str.33) #12
  %524 = load i32, ptr %488, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror_debug(i32 noundef %524, ptr noundef nonnull @.str.33) #12
  %526 = load i32, ptr %508, align 4, !tbaa !5
  %527 = call ptr @strerror(i32 noundef %526) #12
  %528 = load i32, ptr %508, align 4, !tbaa !5
  %529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %520, ptr noundef nonnull %.str.34.sink609, i32 noundef %521, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.30, i32 noundef 498, ptr noundef %523, ptr noundef %525, ptr noundef %527, i32 noundef %528) #14
  call void @exit(i32 noundef 1) #15
  unreachable

530:                                              ; preds = %502
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = add nsw i32 %531, 1
  store i32 %532, ptr @test_count, align 4, !tbaa !5
  %533 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %534 = icmp eq ptr %533, null
  br i1 %534, label %535, label %558

535:                                              ; preds = %530
  %536 = tail call ptr @__errno_location() #13
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = call i32 @s2n_print_stacktrace(ptr noundef %538) #12
  %540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %541 = trunc nuw i8 %540 to i1
  br i1 %541, label %542, label %546

542:                                              ; preds = %535
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @fileno(ptr noundef %543) #12
  %545 = call i32 @isatty(i32 noundef %544) #12
  %.not381 = icmp eq i32 %545, 0
  br i1 %.not381, label %546, label %547

546:                                              ; preds = %542, %535
  br label %547

547:                                              ; preds = %542, %546
  %.str.34.sink618 = phi ptr [ @.str.34, %546 ], [ @.str.31, %542 ]
  store i32 %537, ptr %536, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = load i32, ptr %488, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror(i32 noundef %550, ptr noundef nonnull @.str.33) #12
  %552 = load i32, ptr %488, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef nonnull @.str.33) #12
  %554 = load i32, ptr %536, align 4, !tbaa !5
  %555 = call ptr @strerror(i32 noundef %554) #12
  %556 = load i32, ptr %536, align 4, !tbaa !5
  %557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef nonnull %.str.34.sink618, i32 noundef %549, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.30, i32 noundef 499, ptr noundef %551, ptr noundef %553, ptr noundef %555, i32 noundef %556) #14
  call void @exit(i32 noundef 1) #15
  unreachable

558:                                              ; preds = %530
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = add nsw i32 %559, 1
  store i32 %560, ptr @test_count, align 4, !tbaa !5
  %561 = getelementptr inbounds i8, ptr %493, i64 24
  %562 = load ptr, ptr %561, align 8, !tbaa !19
  %563 = getelementptr inbounds i8, ptr %493, i64 32
  %564 = load ptr, ptr %563, align 8, !tbaa !20
  %565 = getelementptr inbounds i8, ptr %493, i64 40
  %566 = load ptr, ptr %565, align 8, !tbaa !21
  %567 = call i32 @set_up_conns(ptr noundef nonnull %505, ptr noundef nonnull %533, ptr noundef %562, ptr noundef %564, ptr noundef %494, ptr noundef %566)
  %568 = icmp eq i32 %567, -1
  br i1 %568, label %569, label %592

569:                                              ; preds = %558
  %570 = tail call ptr @__errno_location() #13
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @s2n_print_stacktrace(ptr noundef %572) #12
  %574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %575 = trunc nuw i8 %574 to i1
  br i1 %575, label %576, label %580

576:                                              ; preds = %569
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #12
  %579 = call i32 @isatty(i32 noundef %578) #12
  %.not380 = icmp eq i32 %579, 0
  br i1 %.not380, label %580, label %581

580:                                              ; preds = %576, %569
  br label %581

581:                                              ; preds = %576, %580
  %.str.34.sink627 = phi ptr [ @.str.34, %580 ], [ @.str.31, %576 ]
  store i32 %571, ptr %570, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = load i32, ptr %488, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef nonnull @.str.33) #12
  %586 = load i32, ptr %488, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef nonnull @.str.33) #12
  %588 = load i32, ptr %570, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #12
  %590 = load i32, ptr %570, align 4, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.34.sink627, i32 noundef %583, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.30, i32 noundef 505, ptr noundef %585, ptr noundef %587, ptr noundef %589, i32 noundef %590) #14
  call void @exit(i32 noundef 1) #15
  unreachable

592:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %68) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %68, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %69) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %69, i8 0, i64 24, i1 false)
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = add nsw i32 %593, 1
  store i32 %594, ptr @test_count, align 4, !tbaa !5
  %595 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %505, ptr noundef nonnull %68)
  %596 = icmp eq i32 %595, -1
  br i1 %596, label %597, label %620

597:                                              ; preds = %592
  %598 = tail call ptr @__errno_location() #13
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @s2n_print_stacktrace(ptr noundef %600) #12
  %602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %603 = trunc nuw i8 %602 to i1
  br i1 %603, label %604, label %608

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

608:                                              ; preds = %604, %597
  br label %609

609:                                              ; preds = %604, %608
  %.str.34.sink636 = phi ptr [ @.str.34, %608 ], [ @.str.31, %604 ]
  store i32 %599, ptr %598, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = load i32, ptr %488, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.33) #12
  %614 = load i32, ptr %488, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.33) #12
  %616 = load i32, ptr %598, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #12
  %618 = load i32, ptr %598, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull %.str.34.sink636, i32 noundef %611, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.30, i32 noundef 510, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #14
  call void @exit(i32 noundef 1) #15
  unreachable

620:                                              ; preds = %592
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %533, ptr noundef nonnull %69)
  %624 = icmp eq i32 %623, -1
  br i1 %624, label %625, label %648

625:                                              ; preds = %620
  %626 = tail call ptr @__errno_location() #13
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @s2n_print_stacktrace(ptr noundef %628) #12
  %630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %636

632:                                              ; preds = %625
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @fileno(ptr noundef %633) #12
  %635 = call i32 @isatty(i32 noundef %634) #12
  %.not378 = icmp eq i32 %635, 0
  br i1 %.not378, label %636, label %637

636:                                              ; preds = %632, %625
  br label %637

637:                                              ; preds = %632, %636
  %.str.34.sink645 = phi ptr [ @.str.34, %636 ], [ @.str.31, %632 ]
  store i32 %627, ptr %626, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %488, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef nonnull @.str.33) #12
  %642 = load i32, ptr %488, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror_debug(i32 noundef %642, ptr noundef nonnull @.str.33) #12
  %644 = load i32, ptr %626, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #12
  %646 = load i32, ptr %626, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.34.sink645, i32 noundef %639, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.30, i32 noundef 511, ptr noundef %641, ptr noundef %643, ptr noundef %645, i32 noundef %646) #14
  call void @exit(i32 noundef 1) #15
  unreachable

648:                                              ; preds = %620
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr @test_count, align 4, !tbaa !5
  %651 = load i32, ptr %482, align 8, !tbaa !30
  %652 = load i32, ptr %483, align 8, !tbaa !30
  %653 = icmp eq i32 %651, %652
  br i1 %653, label %677, label %654

654:                                              ; preds = %648
  %655 = tail call ptr @__errno_location() #13
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @s2n_print_stacktrace(ptr noundef %657) #12
  %659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %660 = trunc nuw i8 %659 to i1
  br i1 %660, label %661, label %665

661:                                              ; preds = %654
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = call i32 @fileno(ptr noundef %662) #12
  %664 = call i32 @isatty(i32 noundef %663) #12
  %.not = icmp eq i32 %664, 0
  br i1 %.not, label %665, label %666

665:                                              ; preds = %661, %654
  br label %666

666:                                              ; preds = %661, %665
  %.str.34.sink654 = phi ptr [ @.str.34, %665 ], [ @.str.31, %661 ]
  store i32 %656, ptr %655, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = load i32, ptr %488, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror(i32 noundef %669, ptr noundef nonnull @.str.33) #12
  %671 = load i32, ptr %488, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror_debug(i32 noundef %671, ptr noundef nonnull @.str.33) #12
  %673 = load i32, ptr %655, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #12
  %675 = load i32, ptr %655, align 4, !tbaa !5
  %676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef nonnull %.str.34.sink654, i32 noundef %668, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.30, i32 noundef 514, ptr noundef %670, ptr noundef %672, ptr noundef %674, i32 noundef %675) #14
  call void @exit(i32 noundef 1) #15
  unreachable

677:                                              ; preds = %648
  %.not300 = icmp eq i32 %651, 0
  %678 = add nsw i32 %649, 2
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  br i1 %.not300, label %707, label %679

679:                                              ; preds = %677
  %680 = load ptr, ptr %68, align 8, !tbaa !32
  %681 = load ptr, ptr %69, align 8, !tbaa !32
  %682 = zext i32 %651 to i64
  %bcmp = call i32 @bcmp(ptr %680, ptr %681, i64 %682)
  %683 = icmp eq i32 %bcmp, 0
  br i1 %683, label %.thread, label %684

684:                                              ; preds = %679
  %685 = tail call ptr @__errno_location() #13
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @s2n_print_stacktrace(ptr noundef %687) #12
  %689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %690 = trunc nuw i8 %689 to i1
  br i1 %690, label %691, label %695

691:                                              ; preds = %684
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #12
  %694 = call i32 @isatty(i32 noundef %693) #12
  %.not301 = icmp eq i32 %694, 0
  br i1 %.not301, label %695, label %696

695:                                              ; preds = %691, %684
  br label %696

696:                                              ; preds = %691, %695
  %.str.34.sink663 = phi ptr [ @.str.34, %695 ], [ @.str.31, %691 ]
  store i32 %686, ptr %685, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = load i32, ptr %488, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror(i32 noundef %699, ptr noundef nonnull @.str.33) #12
  %701 = load i32, ptr %488, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror_debug(i32 noundef %701, ptr noundef nonnull @.str.33) #12
  %703 = load i32, ptr %685, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #12
  %705 = load i32, ptr %685, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.34.sink663, i32 noundef %698, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.30, i32 noundef 514, ptr noundef %700, ptr noundef %702, ptr noundef %704, i32 noundef %705) #14
  call void @exit(i32 noundef 1) #15
  unreachable

707:                                              ; preds = %677
  %708 = getelementptr inbounds i8, ptr %493, i64 48
  %709 = load ptr, ptr %708, align 8, !tbaa !22
  %710 = getelementptr inbounds i8, ptr %709, i64 8
  %711 = load i32, ptr %710, align 8, !tbaa !30
  %712 = icmp eq i32 %711, 0
  br i1 %712, label %769, label %719

.thread:                                          ; preds = %679
  %713 = add nsw i32 %649, 3
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = getelementptr inbounds i8, ptr %493, i64 48
  %715 = load ptr, ptr %714, align 8, !tbaa !22
  %716 = getelementptr inbounds i8, ptr %715, i64 8
  %717 = load i32, ptr %716, align 8, !tbaa !30
  %718 = icmp eq i32 %717, %651
  br i1 %718, label %742, label %719

719:                                              ; preds = %.thread, %707
  %720 = tail call ptr @__errno_location() #13
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @s2n_print_stacktrace(ptr noundef %722) #12
  %724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %725 = trunc nuw i8 %724 to i1
  br i1 %725, label %726, label %730

726:                                              ; preds = %719
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = call i32 @fileno(ptr noundef %727) #12
  %729 = call i32 @isatty(i32 noundef %728) #12
  %.not302 = icmp eq i32 %729, 0
  br i1 %.not302, label %730, label %731

730:                                              ; preds = %726, %719
  br label %731

731:                                              ; preds = %726, %730
  %.str.34.sink672 = phi ptr [ @.str.34, %730 ], [ @.str.31, %726 ]
  store i32 %721, ptr %720, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = load i32, ptr %488, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror(i32 noundef %734, ptr noundef nonnull @.str.33) #12
  %736 = load i32, ptr %488, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef nonnull @.str.33) #12
  %738 = load i32, ptr %720, align 4, !tbaa !5
  %739 = call ptr @strerror(i32 noundef %738) #12
  %740 = load i32, ptr %720, align 4, !tbaa !5
  %741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %732, ptr noundef nonnull %.str.34.sink672, i32 noundef %733, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.30, i32 noundef 515, ptr noundef %735, ptr noundef %737, ptr noundef %739, i32 noundef %740) #14
  call void @exit(i32 noundef 1) #15
  unreachable

742:                                              ; preds = %.thread
  %743 = add nsw i32 %649, 4
  store i32 %743, ptr @test_count, align 4, !tbaa !5
  %744 = load ptr, ptr %715, align 8, !tbaa !32
  %bcmp304 = call i32 @bcmp(ptr %744, ptr %680, i64 %682)
  %745 = icmp eq i32 %bcmp304, 0
  br i1 %745, label %769, label %746

746:                                              ; preds = %742
  %747 = tail call ptr @__errno_location() #13
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @s2n_print_stacktrace(ptr noundef %749) #12
  %751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %752 = trunc nuw i8 %751 to i1
  br i1 %752, label %753, label %757

753:                                              ; preds = %746
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = call i32 @fileno(ptr noundef %754) #12
  %756 = call i32 @isatty(i32 noundef %755) #12
  %.not305 = icmp eq i32 %756, 0
  br i1 %.not305, label %757, label %758

757:                                              ; preds = %753, %746
  br label %758

758:                                              ; preds = %753, %757
  %.str.34.sink681 = phi ptr [ @.str.34, %757 ], [ @.str.31, %753 ]
  store i32 %748, ptr %747, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = load i32, ptr %488, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror(i32 noundef %761, ptr noundef nonnull @.str.33) #12
  %763 = load i32, ptr %488, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror_debug(i32 noundef %763, ptr noundef nonnull @.str.33) #12
  %765 = load i32, ptr %747, align 4, !tbaa !5
  %766 = call ptr @strerror(i32 noundef %765) #12
  %767 = load i32, ptr %747, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef nonnull %.str.34.sink681, i32 noundef %760, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.30, i32 noundef 517, ptr noundef %762, ptr noundef %764, ptr noundef %766, i32 noundef %767) #14
  call void @exit(i32 noundef 1) #15
  unreachable

769:                                              ; preds = %707, %742
  %770 = phi i32 [ %678, %707 ], [ %743, %742 ]
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = call i32 @assert_kem_group_params_freed(ptr noundef nonnull %505)
  %773 = icmp eq i32 %772, -1
  br i1 %773, label %774, label %797

774:                                              ; preds = %769
  %775 = tail call ptr @__errno_location() #13
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @s2n_print_stacktrace(ptr noundef %777) #12
  %779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %780 = trunc nuw i8 %779 to i1
  br i1 %780, label %781, label %785

781:                                              ; preds = %774
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = call i32 @fileno(ptr noundef %782) #12
  %784 = call i32 @isatty(i32 noundef %783) #12
  %.not377 = icmp eq i32 %784, 0
  br i1 %.not377, label %785, label %786

785:                                              ; preds = %781, %774
  br label %786

786:                                              ; preds = %781, %785
  %.str.34.sink690 = phi ptr [ @.str.34, %785 ], [ @.str.31, %781 ]
  store i32 %776, ptr %775, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = load i32, ptr %488, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef nonnull @.str.33) #12
  %791 = load i32, ptr %488, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef nonnull @.str.33) #12
  %793 = load i32, ptr %775, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #12
  %795 = load i32, ptr %775, align 4, !tbaa !5
  %796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef nonnull %.str.34.sink690, i32 noundef %788, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.30, i32 noundef 519, ptr noundef %790, ptr noundef %792, ptr noundef %794, i32 noundef %795) #14
  call void @exit(i32 noundef 1) #15
  unreachable

797:                                              ; preds = %769
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = call i32 @assert_kem_group_params_freed(ptr noundef nonnull %533)
  %801 = icmp eq i32 %800, -1
  br i1 %801, label %802, label %825

802:                                              ; preds = %797
  %803 = tail call ptr @__errno_location() #13
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @s2n_print_stacktrace(ptr noundef %805) #12
  %807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %808 = trunc nuw i8 %807 to i1
  br i1 %808, label %809, label %813

809:                                              ; preds = %802
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #12
  %812 = call i32 @isatty(i32 noundef %811) #12
  %.not376 = icmp eq i32 %812, 0
  br i1 %.not376, label %813, label %814

813:                                              ; preds = %809, %802
  br label %814

814:                                              ; preds = %809, %813
  %.str.34.sink699 = phi ptr [ @.str.34, %813 ], [ @.str.31, %809 ]
  store i32 %804, ptr %803, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = load i32, ptr %488, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror(i32 noundef %817, ptr noundef nonnull @.str.33) #12
  %819 = load i32, ptr %488, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror_debug(i32 noundef %819, ptr noundef nonnull @.str.33) #12
  %821 = load i32, ptr %803, align 4, !tbaa !5
  %822 = call ptr @strerror(i32 noundef %821) #12
  %823 = load i32, ptr %803, align 4, !tbaa !5
  %824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef nonnull %.str.34.sink699, i32 noundef %816, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.30, i32 noundef 520, ptr noundef %818, ptr noundef %820, ptr noundef %822, i32 noundef %823) #14
  call void @exit(i32 noundef 1) #15
  unreachable

825:                                              ; preds = %797
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = add nsw i32 %826, 1
  store i32 %827, ptr @test_count, align 4, !tbaa !5
  %828 = load ptr, ptr %561, align 8, !tbaa !19
  %829 = load ptr, ptr %563, align 8, !tbaa !20
  %830 = load ptr, ptr %565, align 8, !tbaa !21
  %831 = call i32 @set_up_conns(ptr noundef nonnull %505, ptr noundef nonnull %533, ptr noundef %828, ptr noundef %829, ptr noundef %494, ptr noundef %830)
  %832 = icmp eq i32 %831, -1
  br i1 %832, label %833, label %856

833:                                              ; preds = %825
  %834 = tail call ptr @__errno_location() #13
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = call i32 @s2n_print_stacktrace(ptr noundef %836) #12
  %838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %839 = trunc nuw i8 %838 to i1
  br i1 %839, label %840, label %844

840:                                              ; preds = %833
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @fileno(ptr noundef %841) #12
  %843 = call i32 @isatty(i32 noundef %842) #12
  %.not375 = icmp eq i32 %843, 0
  br i1 %.not375, label %844, label %845

844:                                              ; preds = %840, %833
  br label %845

845:                                              ; preds = %840, %844
  %.str.34.sink708 = phi ptr [ @.str.34, %844 ], [ @.str.31, %840 ]
  store i32 %835, ptr %834, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = load i32, ptr %488, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror(i32 noundef %848, ptr noundef nonnull @.str.33) #12
  %850 = load i32, ptr %488, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror_debug(i32 noundef %850, ptr noundef nonnull @.str.33) #12
  %852 = load i32, ptr %834, align 4, !tbaa !5
  %853 = call ptr @strerror(i32 noundef %852) #12
  %854 = load i32, ptr %834, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef nonnull %.str.34.sink708, i32 noundef %847, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.30, i32 noundef 524, ptr noundef %849, ptr noundef %851, ptr noundef %853, i32 noundef %854) #14
  call void @exit(i32 noundef 1) #15
  unreachable

856:                                              ; preds = %825
  call void @llvm.lifetime.start.p0(i64 592, ptr nonnull %70) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(592) %70, i8 0, i64 592, i1 false)
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = getelementptr inbounds i8, ptr %493, i64 8
  %860 = load ptr, ptr %859, align 8, !tbaa !17
  %861 = getelementptr inbounds i8, ptr %860, i64 96
  %862 = load i32, ptr %861, align 8, !tbaa !33
  %863 = call i32 @s2n_tls13_keys_init(ptr noundef nonnull %70, i32 noundef %862) #12
  %864 = icmp eq i32 %863, -1
  br i1 %864, label %865, label %888

865:                                              ; preds = %856
  %866 = tail call ptr @__errno_location() #13
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868) #12
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc nuw i8 %870 to i1
  br i1 %871, label %872, label %876

872:                                              ; preds = %865
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #12
  %875 = call i32 @isatty(i32 noundef %874) #12
  %.not374 = icmp eq i32 %875, 0
  br i1 %.not374, label %876, label %877

876:                                              ; preds = %872, %865
  br label %877

877:                                              ; preds = %872, %876
  %.str.34.sink717 = phi ptr [ @.str.34, %876 ], [ @.str.31, %872 ]
  store i32 %867, ptr %866, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = load i32, ptr %488, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef nonnull @.str.33) #12
  %882 = load i32, ptr %488, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror_debug(i32 noundef %882, ptr noundef nonnull @.str.33) #12
  %884 = load i32, ptr %866, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #12
  %886 = load i32, ptr %866, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef nonnull %.str.34.sink717, i32 noundef %879, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.30, i32 noundef 529, ptr noundef %881, ptr noundef %883, ptr noundef %885, i32 noundef %886) #14
  call void @exit(i32 noundef 1) #15
  unreachable

888:                                              ; preds = %856
  %889 = load ptr, ptr %859, align 8, !tbaa !17
  %890 = getelementptr inbounds i8, ptr %505, i64 232
  %891 = load ptr, ptr %890, align 8, !tbaa !35
  store ptr %889, ptr %891, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %71) #12
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = add nsw i32 %892, 1
  store i32 %893, ptr @test_count, align 4, !tbaa !5
  %894 = call i32 @s2n_hash_new(ptr noundef nonnull %71) #12
  %895 = icmp eq i32 %894, -1
  br i1 %895, label %896, label %919

896:                                              ; preds = %888
  %897 = tail call ptr @__errno_location() #13
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = call i32 @s2n_print_stacktrace(ptr noundef %899) #12
  %901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %902 = trunc nuw i8 %901 to i1
  br i1 %902, label %903, label %907

903:                                              ; preds = %896
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @fileno(ptr noundef %904) #12
  %906 = call i32 @isatty(i32 noundef %905) #12
  %.not373 = icmp eq i32 %906, 0
  br i1 %.not373, label %907, label %908

907:                                              ; preds = %903, %896
  br label %908

908:                                              ; preds = %903, %907
  %.str.34.sink726 = phi ptr [ @.str.34, %907 ], [ @.str.31, %903 ]
  store i32 %898, ptr %897, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = load i32, ptr @test_count, align 4, !tbaa !5
  %911 = load i32, ptr %488, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror(i32 noundef %911, ptr noundef nonnull @.str.33) #12
  %913 = load i32, ptr %488, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror_debug(i32 noundef %913, ptr noundef nonnull @.str.33) #12
  %915 = load i32, ptr %897, align 4, !tbaa !5
  %916 = call ptr @strerror(i32 noundef %915) #12
  %917 = load i32, ptr %897, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %909, ptr noundef nonnull %.str.34.sink726, i32 noundef %910, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.30, i32 noundef 533, ptr noundef %912, ptr noundef %914, ptr noundef %916, i32 noundef %917) #14
  call void @exit(i32 noundef 1) #15
  unreachable

919:                                              ; preds = %888
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = load i32, ptr %484, align 4, !tbaa !65
  %923 = call i32 @s2n_hash_init(ptr noundef nonnull %71, i32 noundef %922) #12
  %924 = icmp eq i32 %923, -1
  br i1 %924, label %925, label %948

925:                                              ; preds = %919
  %926 = tail call ptr @__errno_location() #13
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = call i32 @s2n_print_stacktrace(ptr noundef %928) #12
  %930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %931 = trunc nuw i8 %930 to i1
  br i1 %931, label %932, label %936

932:                                              ; preds = %925
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @fileno(ptr noundef %933) #12
  %935 = call i32 @isatty(i32 noundef %934) #12
  %.not372 = icmp eq i32 %935, 0
  br i1 %.not372, label %936, label %937

936:                                              ; preds = %932, %925
  br label %937

937:                                              ; preds = %932, %936
  %.str.34.sink735 = phi ptr [ @.str.34, %936 ], [ @.str.31, %932 ]
  store i32 %927, ptr %926, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = load i32, ptr %488, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef nonnull @.str.33) #12
  %942 = load i32, ptr %488, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef nonnull @.str.33) #12
  %944 = load i32, ptr %926, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #12
  %946 = load i32, ptr %926, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef nonnull %.str.34.sink735, i32 noundef %939, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.30, i32 noundef 534, ptr noundef %941, ptr noundef %943, ptr noundef %945, i32 noundef %946) #14
  call void @exit(i32 noundef 1) #15
  unreachable

948:                                              ; preds = %919
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr @test_count, align 4, !tbaa !5
  %951 = getelementptr inbounds i8, ptr %493, i64 16
  %952 = load ptr, ptr %951, align 8, !tbaa !18
  %953 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %952) #16
  %954 = trunc i64 %953 to i32
  %955 = call i32 @s2n_hash_update(ptr noundef nonnull %71, ptr noundef %952, i32 noundef %954) #12
  %956 = icmp eq i32 %955, -1
  br i1 %956, label %957, label %980

957:                                              ; preds = %948
  %958 = tail call ptr @__errno_location() #13
  %959 = load i32, ptr %958, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @s2n_print_stacktrace(ptr noundef %960) #12
  %962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %964, label %968

964:                                              ; preds = %957
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @fileno(ptr noundef %965) #12
  %967 = call i32 @isatty(i32 noundef %966) #12
  %.not371 = icmp eq i32 %967, 0
  br i1 %.not371, label %968, label %969

968:                                              ; preds = %964, %957
  br label %969

969:                                              ; preds = %964, %968
  %.str.34.sink744 = phi ptr [ @.str.34, %968 ], [ @.str.31, %964 ]
  store i32 %959, ptr %958, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = load i32, ptr %488, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef nonnull @.str.33) #12
  %974 = load i32, ptr %488, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef nonnull @.str.33) #12
  %976 = load i32, ptr %958, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #12
  %978 = load i32, ptr %958, align 4, !tbaa !5
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %970, ptr noundef nonnull %.str.34.sink744, i32 noundef %971, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.30, i32 noundef 535, ptr noundef %973, ptr noundef %975, ptr noundef %977, i32 noundef %978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

980:                                              ; preds = %948
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = getelementptr inbounds i8, ptr %505, i64 2056
  %984 = load ptr, ptr %983, align 8, !tbaa !67
  %985 = getelementptr inbounds i8, ptr %984, i64 392
  %986 = load i8, ptr %485, align 8, !tbaa !68
  %987 = zext i8 %986 to i32
  %988 = call i32 @s2n_hash_digest(ptr noundef nonnull %71, ptr noundef nonnull %985, i32 noundef %987) #12
  %989 = icmp eq i32 %988, -1
  br i1 %989, label %990, label %1013

990:                                              ; preds = %980
  %991 = tail call ptr @__errno_location() #13
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @s2n_print_stacktrace(ptr noundef %993) #12
  %995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %996 = trunc nuw i8 %995 to i1
  br i1 %996, label %997, label %1001

997:                                              ; preds = %990
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = call i32 @fileno(ptr noundef %998) #12
  %1000 = call i32 @isatty(i32 noundef %999) #12
  %.not370 = icmp eq i32 %1000, 0
  br i1 %.not370, label %1001, label %1002

1001:                                             ; preds = %997, %990
  br label %1002

1002:                                             ; preds = %997, %1001
  %.str.34.sink753 = phi ptr [ @.str.34, %1001 ], [ @.str.31, %997 ]
  store i32 %992, ptr %991, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = load i32, ptr %488, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror(i32 noundef %1005, ptr noundef nonnull @.str.33) #12
  %1007 = load i32, ptr %488, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef nonnull @.str.33) #12
  %1009 = load i32, ptr %991, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #12
  %1011 = load i32, ptr %991, align 4, !tbaa !5
  %1012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1003, ptr noundef nonnull %.str.34.sink753, i32 noundef %1004, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.30, i32 noundef 536, ptr noundef %1006, ptr noundef %1008, ptr noundef %1010, i32 noundef %1011) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1013:                                             ; preds = %980
  %1014 = getelementptr inbounds i8, ptr %505, i64 2172
  store i32 3, ptr %1014, align 4, !tbaa !69
  %1015 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %505) #12
  %.not306479 = icmp eq i32 %1015, 1
  br i1 %.not306479, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %1013
  %1016 = getelementptr inbounds i8, ptr %505, i64 2176
  br label %1017

1017:                                             ; preds = %.lr.ph, %1017
  %1018 = load i32, ptr %1016, align 8, !tbaa !70
  %1019 = add nsw i32 %1018, 1
  store i32 %1019, ptr %1016, align 8, !tbaa !70
  %1020 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %505) #12
  %.not306 = icmp eq i32 %1020, 1
  br i1 %.not306, label %._crit_edge, label %1017, !llvm.loop !71

._crit_edge:                                      ; preds = %1017, %1013
  %1021 = load i8, ptr %485, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %72) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %72, i8 0, i64 48, i1 false)
  %1022 = icmp ult i8 %1021, 49
  br i1 %1022, label %1028, label %1023

1023:                                             ; preds = %._crit_edge
  store ptr @.str.111, ptr %486, align 8, !tbaa !73
  %1024 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.111, i64 21), i32 noundef 47) #16
  %.not307 = icmp eq ptr %1024, null
  %1025 = getelementptr inbounds i8, ptr %1024, i64 1
  %1026 = select i1 %.not307, ptr getelementptr inbounds (i8, ptr @.str.111, i64 21), ptr %1025
  store ptr %1026, ptr %487, align 8, !tbaa !75
  store i32 402653194, ptr %488, align 4, !tbaa !5
  %1027 = call i32 @s2n_calculate_stacktrace() #12
  br label %1283

1028:                                             ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %73) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %73, i8 0, i64 24, i1 false)
  %1029 = zext nneg i8 %1021 to i32
  %1030 = call i32 @s2n_blob_init(ptr noundef nonnull %73, ptr noundef nonnull %72, i32 noundef %1029) #12
  %1031 = icmp sgt i32 %1030, -1
  br i1 %1031, label %1032, label %1282

1032:                                             ; preds = %1028
  %1033 = load i8, ptr %485, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %74) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %74, i8 0, i64 48, i1 false)
  %1034 = icmp ult i8 %1033, 49
  br i1 %1034, label %1040, label %1035

1035:                                             ; preds = %1032
  store ptr @.str.112, ptr %486, align 8, !tbaa !73
  %1036 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.112, i64 21), i32 noundef 47) #16
  %.not308 = icmp eq ptr %1036, null
  %1037 = getelementptr inbounds i8, ptr %1036, i64 1
  %1038 = select i1 %.not308, ptr getelementptr inbounds (i8, ptr @.str.112, i64 21), ptr %1037
  store ptr %1038, ptr %487, align 8, !tbaa !75
  store i32 402653194, ptr %488, align 4, !tbaa !5
  %1039 = call i32 @s2n_calculate_stacktrace() #12
  br label %1281

1040:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %75) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %75, i8 0, i64 24, i1 false)
  %1041 = zext nneg i8 %1033 to i32
  %1042 = call i32 @s2n_blob_init(ptr noundef nonnull %75, ptr noundef nonnull %74, i32 noundef %1041) #12
  %1043 = icmp sgt i32 %1042, -1
  br i1 %1043, label %1044, label %1280

1044:                                             ; preds = %1040
  %1045 = load i32, ptr @test_count, align 4, !tbaa !5
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr @test_count, align 4, !tbaa !5
  %1047 = call i32 @s2n_tls13_derive_secret(ptr noundef nonnull %505, i32 noundef 2, i32 noundef 1, ptr noundef nonnull %73) #12
  %1048 = call zeroext i1 @s2n_result_is_ok(i32 %1047)
  br i1 %1048, label %1072, label %1049

1049:                                             ; preds = %1044
  %1050 = tail call ptr @__errno_location() #13
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052) #12
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc nuw i8 %1054 to i1
  br i1 %1055, label %1056, label %1060

1056:                                             ; preds = %1049
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #12
  %1059 = call i32 @isatty(i32 noundef %1058) #12
  %.not309 = icmp eq i32 %1059, 0
  br i1 %.not309, label %1060, label %1061

1060:                                             ; preds = %1056, %1049
  br label %1061

1061:                                             ; preds = %1056, %1060
  %.str.34.sink762 = phi ptr [ @.str.34, %1060 ], [ @.str.31, %1056 ]
  store i32 %1051, ptr %1050, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = load i32, ptr %488, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror(i32 noundef %1064, ptr noundef nonnull @.str.33) #12
  %1066 = load i32, ptr %488, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef nonnull @.str.33) #12
  %1068 = load i32, ptr %1050, align 4, !tbaa !5
  %1069 = call ptr @strerror(i32 noundef %1068) #12
  %1070 = load i32, ptr %1050, align 4, !tbaa !5
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef nonnull %.str.34.sink762, i32 noundef %1063, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.30, i32 noundef 545, ptr noundef %1065, ptr noundef %1067, ptr noundef %1069, i32 noundef %1070) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1072:                                             ; preds = %1044
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = add nsw i32 %1073, 1
  store i32 %1074, ptr @test_count, align 4, !tbaa !5
  %1075 = call i32 @s2n_tls13_derive_secret(ptr noundef nonnull %505, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %75) #12
  %1076 = call zeroext i1 @s2n_result_is_ok(i32 %1075)
  br i1 %1076, label %1100, label %1077

1077:                                             ; preds = %1072
  %1078 = tail call ptr @__errno_location() #13
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = call i32 @s2n_print_stacktrace(ptr noundef %1080) #12
  %1082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1083 = trunc nuw i8 %1082 to i1
  br i1 %1083, label %1084, label %1088

1084:                                             ; preds = %1077
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @fileno(ptr noundef %1085) #12
  %1087 = call i32 @isatty(i32 noundef %1086) #12
  %.not310 = icmp eq i32 %1087, 0
  br i1 %.not310, label %1088, label %1089

1088:                                             ; preds = %1084, %1077
  br label %1089

1089:                                             ; preds = %1084, %1088
  %.str.34.sink771 = phi ptr [ @.str.34, %1088 ], [ @.str.31, %1084 ]
  store i32 %1079, ptr %1078, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = load i32, ptr %488, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror(i32 noundef %1092, ptr noundef nonnull @.str.33) #12
  %1094 = load i32, ptr %488, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef nonnull @.str.33) #12
  %1096 = load i32, ptr %1078, align 4, !tbaa !5
  %1097 = call ptr @strerror(i32 noundef %1096) #12
  %1098 = load i32, ptr %1078, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef nonnull %.str.34.sink771, i32 noundef %1091, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.30, i32 noundef 546, ptr noundef %1093, ptr noundef %1095, ptr noundef %1097, i32 noundef %1098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1100:                                             ; preds = %1072
  %1101 = load i32, ptr @test_count, align 4, !tbaa !5
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr @test_count, align 4, !tbaa !5
  %1103 = getelementptr inbounds i8, ptr %493, i64 56
  %1104 = load ptr, ptr %1103, align 8, !tbaa !23
  %1105 = getelementptr inbounds i8, ptr %1104, i64 8
  %1106 = load i32, ptr %1105, align 8, !tbaa !30
  %1107 = load i32, ptr %489, align 8, !tbaa !30
  %1108 = icmp eq i32 %1106, %1107
  br i1 %1108, label %1132, label %1109

1109:                                             ; preds = %1100
  %1110 = tail call ptr @__errno_location() #13
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @s2n_print_stacktrace(ptr noundef %1112) #12
  %1114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1115 = trunc nuw i8 %1114 to i1
  br i1 %1115, label %1116, label %1120

1116:                                             ; preds = %1109
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = call i32 @fileno(ptr noundef %1117) #12
  %1119 = call i32 @isatty(i32 noundef %1118) #12
  %.not311 = icmp eq i32 %1119, 0
  br i1 %.not311, label %1120, label %1121

1120:                                             ; preds = %1116, %1109
  br label %1121

1121:                                             ; preds = %1116, %1120
  %.str.34.sink780 = phi ptr [ @.str.34, %1120 ], [ @.str.31, %1116 ]
  store i32 %1111, ptr %1110, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = load i32, ptr %488, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror(i32 noundef %1124, ptr noundef nonnull @.str.33) #12
  %1126 = load i32, ptr %488, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror_debug(i32 noundef %1126, ptr noundef nonnull @.str.33) #12
  %1128 = load i32, ptr %1110, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #12
  %1130 = load i32, ptr %1110, align 4, !tbaa !5
  %1131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef nonnull %.str.34.sink780, i32 noundef %1123, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.30, i32 noundef 549, ptr noundef %1125, ptr noundef %1127, ptr noundef %1129, i32 noundef %1130) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1132:                                             ; preds = %1100
  %.not312 = icmp eq i32 %1106, 0
  br i1 %.not312, label %1162, label %1133

1133:                                             ; preds = %1132
  %1134 = add nsw i32 %1101, 2
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = load ptr, ptr %1104, align 8, !tbaa !32
  %1136 = load ptr, ptr %73, align 8, !tbaa !32
  %1137 = zext i32 %1106 to i64
  %bcmp313 = call i32 @bcmp(ptr %1135, ptr %1136, i64 %1137)
  %1138 = icmp eq i32 %bcmp313, 0
  br i1 %1138, label %1162, label %1139

1139:                                             ; preds = %1133
  %1140 = tail call ptr @__errno_location() #13
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @s2n_print_stacktrace(ptr noundef %1142) #12
  %1144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1145 = trunc nuw i8 %1144 to i1
  br i1 %1145, label %1146, label %1150

1146:                                             ; preds = %1139
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #12
  %1149 = call i32 @isatty(i32 noundef %1148) #12
  %.not314 = icmp eq i32 %1149, 0
  br i1 %.not314, label %1150, label %1151

1150:                                             ; preds = %1146, %1139
  br label %1151

1151:                                             ; preds = %1146, %1150
  %.str.34.sink789 = phi ptr [ @.str.34, %1150 ], [ @.str.31, %1146 ]
  store i32 %1141, ptr %1140, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = load i32, ptr %488, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef nonnull @.str.33) #12
  %1156 = load i32, ptr %488, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror_debug(i32 noundef %1156, ptr noundef nonnull @.str.33) #12
  %1158 = load i32, ptr %1140, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #12
  %1160 = load i32, ptr %1140, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef nonnull %.str.34.sink789, i32 noundef %1153, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.30, i32 noundef 551, ptr noundef %1155, ptr noundef %1157, ptr noundef %1159, i32 noundef %1160) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1162:                                             ; preds = %1132, %1133
  %1163 = phi i32 [ %1102, %1132 ], [ %1134, %1133 ]
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr @test_count, align 4, !tbaa !5
  %1165 = getelementptr inbounds i8, ptr %493, i64 64
  %1166 = load ptr, ptr %1165, align 8, !tbaa !24
  %1167 = getelementptr inbounds i8, ptr %1166, i64 8
  %1168 = load i32, ptr %1167, align 8, !tbaa !30
  %1169 = load i32, ptr %490, align 8, !tbaa !30
  %1170 = icmp eq i32 %1168, %1169
  br i1 %1170, label %1194, label %1171

1171:                                             ; preds = %1162
  %1172 = tail call ptr @__errno_location() #13
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @s2n_print_stacktrace(ptr noundef %1174) #12
  %1176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1177 = trunc nuw i8 %1176 to i1
  br i1 %1177, label %1178, label %1182

1178:                                             ; preds = %1171
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @fileno(ptr noundef %1179) #12
  %1181 = call i32 @isatty(i32 noundef %1180) #12
  %.not315 = icmp eq i32 %1181, 0
  br i1 %.not315, label %1182, label %1183

1182:                                             ; preds = %1178, %1171
  br label %1183

1183:                                             ; preds = %1178, %1182
  %.str.34.sink798 = phi ptr [ @.str.34, %1182 ], [ @.str.31, %1178 ]
  store i32 %1173, ptr %1172, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = load i32, ptr %488, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror(i32 noundef %1186, ptr noundef nonnull @.str.33) #12
  %1188 = load i32, ptr %488, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror_debug(i32 noundef %1188, ptr noundef nonnull @.str.33) #12
  %1190 = load i32, ptr %1172, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #12
  %1192 = load i32, ptr %1172, align 4, !tbaa !5
  %1193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef nonnull %.str.34.sink798, i32 noundef %1185, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.30, i32 noundef 553, ptr noundef %1187, ptr noundef %1189, ptr noundef %1191, i32 noundef %1192) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1194:                                             ; preds = %1162
  %.not316 = icmp eq i32 %1168, 0
  br i1 %.not316, label %1224, label %1195

1195:                                             ; preds = %1194
  %1196 = add nsw i32 %1163, 2
  store i32 %1196, ptr @test_count, align 4, !tbaa !5
  %1197 = load ptr, ptr %1166, align 8, !tbaa !32
  %1198 = load ptr, ptr %75, align 8, !tbaa !32
  %1199 = zext i32 %1168 to i64
  %bcmp317 = call i32 @bcmp(ptr %1197, ptr %1198, i64 %1199)
  %1200 = icmp eq i32 %bcmp317, 0
  br i1 %1200, label %1224, label %1201

1201:                                             ; preds = %1195
  %1202 = tail call ptr @__errno_location() #13
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @s2n_print_stacktrace(ptr noundef %1204) #12
  %1206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1207 = trunc nuw i8 %1206 to i1
  br i1 %1207, label %1208, label %1212

1208:                                             ; preds = %1201
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @fileno(ptr noundef %1209) #12
  %1211 = call i32 @isatty(i32 noundef %1210) #12
  %.not318 = icmp eq i32 %1211, 0
  br i1 %.not318, label %1212, label %1213

1212:                                             ; preds = %1208, %1201
  br label %1213

1213:                                             ; preds = %1208, %1212
  %.str.34.sink807 = phi ptr [ @.str.34, %1212 ], [ @.str.31, %1208 ]
  store i32 %1203, ptr %1202, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = load i32, ptr %488, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef nonnull @.str.33) #12
  %1218 = load i32, ptr %488, align 4, !tbaa !5
  %1219 = call ptr @s2n_strerror_debug(i32 noundef %1218, ptr noundef nonnull @.str.33) #12
  %1220 = load i32, ptr %1202, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #12
  %1222 = load i32, ptr %1202, align 4, !tbaa !5
  %1223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1214, ptr noundef nonnull %.str.34.sink807, i32 noundef %1215, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.30, i32 noundef 555, ptr noundef %1217, ptr noundef %1219, ptr noundef %1221, i32 noundef %1222) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1224:                                             ; preds = %1194, %1195
  %1225 = phi i32 [ %1164, %1194 ], [ %1196, %1195 ]
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr @test_count, align 4, !tbaa !5
  %1227 = call i32 @s2n_connection_free(ptr noundef nonnull %505) #12
  %1228 = icmp eq i32 %1227, -1
  br i1 %1228, label %1229, label %1252

1229:                                             ; preds = %1224
  %1230 = tail call ptr @__errno_location() #13
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @s2n_print_stacktrace(ptr noundef %1232) #12
  %1234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1235 = trunc nuw i8 %1234 to i1
  br i1 %1235, label %1236, label %1240

1236:                                             ; preds = %1229
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = call i32 @fileno(ptr noundef %1237) #12
  %1239 = call i32 @isatty(i32 noundef %1238) #12
  %.not369 = icmp eq i32 %1239, 0
  br i1 %.not369, label %1240, label %1241

1240:                                             ; preds = %1236, %1229
  br label %1241

1241:                                             ; preds = %1236, %1240
  %.str.34.sink816 = phi ptr [ @.str.34, %1240 ], [ @.str.31, %1236 ]
  store i32 %1231, ptr %1230, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = load i32, ptr %488, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror(i32 noundef %1244, ptr noundef nonnull @.str.33) #12
  %1246 = load i32, ptr %488, align 4, !tbaa !5
  %1247 = call ptr @s2n_strerror_debug(i32 noundef %1246, ptr noundef nonnull @.str.33) #12
  %1248 = load i32, ptr %1230, align 4, !tbaa !5
  %1249 = call ptr @strerror(i32 noundef %1248) #12
  %1250 = load i32, ptr %1230, align 4, !tbaa !5
  %1251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1242, ptr noundef nonnull %.str.34.sink816, i32 noundef %1243, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.30, i32 noundef 557, ptr noundef %1245, ptr noundef %1247, ptr noundef %1249, i32 noundef %1250) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1252:                                             ; preds = %1224
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = add nsw i32 %1253, 1
  store i32 %1254, ptr @test_count, align 4, !tbaa !5
  %1255 = call i32 @s2n_connection_free(ptr noundef nonnull %533) #12
  %1256 = icmp eq i32 %1255, -1
  br i1 %1256, label %1257, label %1280

1257:                                             ; preds = %1252
  %1258 = tail call ptr @__errno_location() #13
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @s2n_print_stacktrace(ptr noundef %1260) #12
  %1262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1263 = trunc nuw i8 %1262 to i1
  br i1 %1263, label %1264, label %1268

1264:                                             ; preds = %1257
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @fileno(ptr noundef %1265) #12
  %1267 = call i32 @isatty(i32 noundef %1266) #12
  %.not368 = icmp eq i32 %1267, 0
  br i1 %.not368, label %1268, label %1269

1268:                                             ; preds = %1264, %1257
  br label %1269

1269:                                             ; preds = %1264, %1268
  %.str.34.sink825 = phi ptr [ @.str.34, %1268 ], [ @.str.31, %1264 ]
  store i32 %1259, ptr %1258, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = load i32, ptr %488, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror(i32 noundef %1272, ptr noundef nonnull @.str.33) #12
  %1274 = load i32, ptr %488, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror_debug(i32 noundef %1274, ptr noundef nonnull @.str.33) #12
  %1276 = load i32, ptr %1258, align 4, !tbaa !5
  %1277 = call ptr @strerror(i32 noundef %1276) #12
  %1278 = load i32, ptr %1258, align 4, !tbaa !5
  %1279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef nonnull %.str.34.sink825, i32 noundef %1271, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.30, i32 noundef 558, ptr noundef %1273, ptr noundef %1275, ptr noundef %1277, i32 noundef %1278) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1280:                                             ; preds = %1252, %1040
  %.0278 = phi i32 [ 1, %1040 ], [ 0, %1252 ]
  %.1 = phi i32 [ -1, %1040 ], [ %.0481, %1252 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #12
  br label %1281

1281:                                             ; preds = %1280, %1035
  %.1279 = phi i32 [ %.0278, %1280 ], [ 1, %1035 ]
  %.2 = phi i32 [ %.1, %1280 ], [ -1, %1035 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %74) #12
  br label %1282

1282:                                             ; preds = %1028, %1281
  %.2280 = phi i32 [ %.1279, %1281 ], [ 1, %1028 ]
  %.3 = phi i32 [ %.2, %1281 ], [ -1, %1028 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #12
  br label %1283

1283:                                             ; preds = %1023, %1282
  %.3281 = phi i32 [ %.2280, %1282 ], [ 1, %1023 ]
  %.4 = phi i32 [ %.3, %1282 ], [ -1, %1023 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %72) #12
  %1284 = call i32 @s2n_hash_free(ptr noundef nonnull %71) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %71) #12
  %1285 = call i32 @s2n_tls13_keys_free(ptr noundef nonnull %70) #12
  call void @llvm.lifetime.end.p0(i64 592, ptr nonnull %70) #12
  %1286 = call i32 @s2n_free(ptr noundef nonnull %69) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #12
  %1287 = call i32 @s2n_free(ptr noundef nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #12
  %cond = icmp eq i32 %.3281, 0
  br i1 %cond, label %.thread388, label %.thread392

.thread388:                                       ; preds = %1283, %496
  %.5391 = phi i32 [ %.4, %1283 ], [ %.0481, %496 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 16
  br i1 %exitcond.not, label %.preheader, label %491, !llvm.loop !76

1288:                                             ; preds = %2492
  %1289 = call i32 @s2n_cleanup() #12
  %1290 = icmp eq i32 %1289, -1
  br i1 %1290, label %2494, label %2516

.preheader:                                       ; preds = %.thread388, %2492
  %1291 = phi i1 [ false, %2492 ], [ true, %.thread388 ]
  %.0285482 = phi i64 [ 1, %2492 ], [ 0, %.thread388 ]
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = add nsw i32 %1292, 1
  store i32 %1293, ptr @test_count, align 4, !tbaa !5
  %1294 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef null, ptr noundef null)
  %1295 = icmp eq i32 %1294, -1
  br i1 %1295, label %1319, label %1296

1296:                                             ; preds = %.preheader
  %1297 = tail call ptr @__errno_location() #13
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @s2n_print_stacktrace(ptr noundef %1299) #12
  %1301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1302 = trunc nuw i8 %1301 to i1
  br i1 %1302, label %1303, label %1307

1303:                                             ; preds = %1296
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 @fileno(ptr noundef %1304) #12
  %1306 = call i32 @isatty(i32 noundef %1305) #12
  %.not324 = icmp eq i32 %1306, 0
  br i1 %.not324, label %1307, label %1308

1307:                                             ; preds = %1303, %1296
  br label %1308

1308:                                             ; preds = %1303, %1307
  %.str.34.sink834 = phi ptr [ @.str.34, %1307 ], [ @.str.31, %1303 ]
  store i32 %1298, ptr %1297, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = load i32, ptr @test_count, align 4, !tbaa !5
  %1311 = load i32, ptr %488, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror(i32 noundef %1311, ptr noundef nonnull @.str.33) #12
  %1313 = load i32, ptr %488, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror_debug(i32 noundef %1313, ptr noundef nonnull @.str.33) #12
  %1315 = load i32, ptr %1297, align 4, !tbaa !5
  %1316 = call ptr @strerror(i32 noundef %1315) #12
  %1317 = load i32, ptr %1297, align 4, !tbaa !5
  %1318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1309, ptr noundef nonnull %.str.34.sink834, i32 noundef %1310, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.30, i32 noundef 568, ptr noundef %1312, ptr noundef %1314, ptr noundef %1316, i32 noundef %1317) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1319:                                             ; preds = %.preheader
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = add nsw i32 %1320, 1
  store i32 %1321, ptr @test_count, align 4, !tbaa !5
  %1322 = load i32, ptr %488, align 4, !tbaa !5
  %1323 = icmp eq i32 %1322, 402653193
  br i1 %1323, label %1347, label %1324

1324:                                             ; preds = %1319
  %1325 = tail call ptr @__errno_location() #13
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @s2n_print_stacktrace(ptr noundef %1327) #12
  %1329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1330 = trunc nuw i8 %1329 to i1
  br i1 %1330, label %1331, label %1335

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

1335:                                             ; preds = %1331, %1324
  br label %1336

1336:                                             ; preds = %1331, %1335
  %.str.34.sink843 = phi ptr [ @.str.34, %1335 ], [ @.str.31, %1331 ]
  store i32 %1326, ptr %1325, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = load i32, ptr %488, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef nonnull @.str.33) #12
  %1341 = load i32, ptr %488, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef nonnull @.str.33) #12
  %1343 = load i32, ptr %1325, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #12
  %1345 = load i32, ptr %1325, align 4, !tbaa !5
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef nonnull %.str.34.sink843, i32 noundef %1338, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 568, ptr noundef %1340, ptr noundef %1342, ptr noundef %1344, i32 noundef %1345) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1347:                                             ; preds = %1319
  %1348 = add nsw i32 %1320, 2
  store i32 %1348, ptr @test_count, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %1350 = icmp eq ptr %1349, null
  br i1 %1350, label %1351, label %1374

1351:                                             ; preds = %1347
  %1352 = tail call ptr @__errno_location() #13
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = call i32 @s2n_print_stacktrace(ptr noundef %1354) #12
  %1356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1357 = trunc nuw i8 %1356 to i1
  br i1 %1357, label %1358, label %1362

1358:                                             ; preds = %1351
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @fileno(ptr noundef %1359) #12
  %1361 = call i32 @isatty(i32 noundef %1360) #12
  %.not367 = icmp eq i32 %1361, 0
  br i1 %.not367, label %1362, label %1363

1362:                                             ; preds = %1358, %1351
  br label %1363

1363:                                             ; preds = %1358, %1362
  %.str.34.sink852 = phi ptr [ @.str.34, %1362 ], [ @.str.31, %1358 ]
  store i32 %1353, ptr %1352, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = load i32, ptr @test_count, align 4, !tbaa !5
  %1366 = load i32, ptr %488, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror(i32 noundef %1366, ptr noundef nonnull @.str.33) #12
  %1368 = load i32, ptr %488, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef nonnull @.str.33) #12
  %1370 = load i32, ptr %1352, align 4, !tbaa !5
  %1371 = call ptr @strerror(i32 noundef %1370) #12
  %1372 = load i32, ptr %1352, align 4, !tbaa !5
  %1373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1364, ptr noundef nonnull %.str.34.sink852, i32 noundef %1365, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 568, ptr noundef %1367, ptr noundef %1369, ptr noundef %1371, i32 noundef %1372) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1374:                                             ; preds = %1347
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1375 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1375, align 4, !tbaa !5
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = getelementptr inbounds [2 x i32], ptr @__const.main.modes, i64 0, i64 %.0285482
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_connection_new(i32 noundef %1379) #12
  %1381 = icmp eq ptr %1380, null
  br i1 %1381, label %1382, label %1404

1382:                                             ; preds = %1374
  %1383 = load i32, ptr %1375, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @s2n_print_stacktrace(ptr noundef %1384) #12
  %1386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1387 = trunc nuw i8 %1386 to i1
  br i1 %1387, label %1388, label %1392

1388:                                             ; preds = %1382
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @fileno(ptr noundef %1389) #12
  %1391 = call i32 @isatty(i32 noundef %1390) #12
  %.not366 = icmp eq i32 %1391, 0
  br i1 %.not366, label %1392, label %1393

1392:                                             ; preds = %1388, %1382
  br label %1393

1393:                                             ; preds = %1388, %1392
  %.str.34.sink861 = phi ptr [ @.str.34, %1392 ], [ @.str.31, %1388 ]
  store i32 %1383, ptr %1375, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = load i32, ptr %488, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef nonnull @.str.33) #12
  %1398 = load i32, ptr %488, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror_debug(i32 noundef %1398, ptr noundef nonnull @.str.33) #12
  %1400 = load i32, ptr %1375, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #12
  %1402 = load i32, ptr %1375, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1394, ptr noundef nonnull %.str.34.sink861, i32 noundef %1395, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.30, i32 noundef 570, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i32 noundef %1402) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1404:                                             ; preds = %1374
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = add nsw i32 %1405, 1
  store i32 %1406, ptr @test_count, align 4, !tbaa !5
  %1407 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef null)
  %1408 = icmp eq i32 %1407, -1
  br i1 %1408, label %1431, label %1409

1409:                                             ; preds = %1404
  %1410 = load i32, ptr %1375, align 4, !tbaa !5
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @s2n_print_stacktrace(ptr noundef %1411) #12
  %1413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1414 = trunc nuw i8 %1413 to i1
  br i1 %1414, label %1415, label %1419

1415:                                             ; preds = %1409
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @fileno(ptr noundef %1416) #12
  %1418 = call i32 @isatty(i32 noundef %1417) #12
  %.not326 = icmp eq i32 %1418, 0
  br i1 %.not326, label %1419, label %1420

1419:                                             ; preds = %1415, %1409
  br label %1420

1420:                                             ; preds = %1415, %1419
  %.str.34.sink870 = phi ptr [ @.str.34, %1419 ], [ @.str.31, %1415 ]
  store i32 %1410, ptr %1375, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = load i32, ptr %488, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror(i32 noundef %1423, ptr noundef nonnull @.str.33) #12
  %1425 = load i32, ptr %488, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror_debug(i32 noundef %1425, ptr noundef nonnull @.str.33) #12
  %1427 = load i32, ptr %1375, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #12
  %1429 = load i32, ptr %1375, align 4, !tbaa !5
  %1430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1421, ptr noundef nonnull %.str.34.sink870, i32 noundef %1422, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.30, i32 noundef 571, ptr noundef %1424, ptr noundef %1426, ptr noundef %1428, i32 noundef %1429) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1431:                                             ; preds = %1404
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = add nsw i32 %1432, 1
  store i32 %1433, ptr @test_count, align 4, !tbaa !5
  %1434 = load i32, ptr %488, align 4, !tbaa !5
  %1435 = icmp eq i32 %1434, 402653193
  br i1 %1435, label %1458, label %1436

1436:                                             ; preds = %1431
  %1437 = load i32, ptr %1375, align 4, !tbaa !5
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = call i32 @s2n_print_stacktrace(ptr noundef %1438) #12
  %1440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1441 = trunc nuw i8 %1440 to i1
  br i1 %1441, label %1442, label %1446

1442:                                             ; preds = %1436
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = call i32 @fileno(ptr noundef %1443) #12
  %1445 = call i32 @isatty(i32 noundef %1444) #12
  %.not327 = icmp eq i32 %1445, 0
  br i1 %.not327, label %1446, label %1447

1446:                                             ; preds = %1442, %1436
  br label %1447

1447:                                             ; preds = %1442, %1446
  %.str.34.sink879 = phi ptr [ @.str.34, %1446 ], [ @.str.31, %1442 ]
  store i32 %1437, ptr %1375, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %1450 = load i32, ptr %488, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror(i32 noundef %1450, ptr noundef nonnull @.str.33) #12
  %1452 = load i32, ptr %488, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror_debug(i32 noundef %1452, ptr noundef nonnull @.str.33) #12
  %1454 = load i32, ptr %1375, align 4, !tbaa !5
  %1455 = call ptr @strerror(i32 noundef %1454) #12
  %1456 = load i32, ptr %1375, align 4, !tbaa !5
  %1457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef nonnull %.str.34.sink879, i32 noundef %1449, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 571, ptr noundef %1451, ptr noundef %1453, ptr noundef %1455, i32 noundef %1456) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1458:                                             ; preds = %1431
  %1459 = add nsw i32 %1432, 2
  store i32 %1459, ptr @test_count, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %1461 = icmp eq ptr %1460, null
  br i1 %1461, label %1462, label %1484

1462:                                             ; preds = %1458
  %1463 = load i32, ptr %1375, align 4, !tbaa !5
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = call i32 @s2n_print_stacktrace(ptr noundef %1464) #12
  %1466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1467 = trunc nuw i8 %1466 to i1
  br i1 %1467, label %1468, label %1472

1468:                                             ; preds = %1462
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @fileno(ptr noundef %1469) #12
  %1471 = call i32 @isatty(i32 noundef %1470) #12
  %.not365 = icmp eq i32 %1471, 0
  br i1 %.not365, label %1472, label %1473

1472:                                             ; preds = %1468, %1462
  br label %1473

1473:                                             ; preds = %1468, %1472
  %.str.34.sink888 = phi ptr [ @.str.34, %1472 ], [ @.str.31, %1468 ]
  store i32 %1463, ptr %1375, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = load i32, ptr @test_count, align 4, !tbaa !5
  %1476 = load i32, ptr %488, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror(i32 noundef %1476, ptr noundef nonnull @.str.33) #12
  %1478 = load i32, ptr %488, align 4, !tbaa !5
  %1479 = call ptr @s2n_strerror_debug(i32 noundef %1478, ptr noundef nonnull @.str.33) #12
  %1480 = load i32, ptr %1375, align 4, !tbaa !5
  %1481 = call ptr @strerror(i32 noundef %1480) #12
  %1482 = load i32, ptr %1375, align 4, !tbaa !5
  %1483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef nonnull %.str.34.sink888, i32 noundef %1475, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 571, ptr noundef %1477, ptr noundef %1479, ptr noundef %1481, i32 noundef %1482) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1484:                                             ; preds = %1458
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %76) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %76, i8 0, i64 24, i1 false)
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = add nsw i32 %1485, 1
  store i32 %1486, ptr @test_count, align 4, !tbaa !5
  %1487 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef null, ptr noundef nonnull %76)
  %1488 = icmp eq i32 %1487, -1
  br i1 %1488, label %1511, label %1489

1489:                                             ; preds = %1484
  %1490 = load i32, ptr %1375, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = call i32 @s2n_print_stacktrace(ptr noundef %1491) #12
  %1493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1494 = trunc nuw i8 %1493 to i1
  br i1 %1494, label %1495, label %1499

1495:                                             ; preds = %1489
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = call i32 @fileno(ptr noundef %1496) #12
  %1498 = call i32 @isatty(i32 noundef %1497) #12
  %.not328 = icmp eq i32 %1498, 0
  br i1 %.not328, label %1499, label %1500

1499:                                             ; preds = %1495, %1489
  br label %1500

1500:                                             ; preds = %1495, %1499
  %.str.34.sink897 = phi ptr [ @.str.34, %1499 ], [ @.str.31, %1495 ]
  store i32 %1490, ptr %1375, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = load i32, ptr %488, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror(i32 noundef %1503, ptr noundef nonnull @.str.33) #12
  %1505 = load i32, ptr %488, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror_debug(i32 noundef %1505, ptr noundef nonnull @.str.33) #12
  %1507 = load i32, ptr %1375, align 4, !tbaa !5
  %1508 = call ptr @strerror(i32 noundef %1507) #12
  %1509 = load i32, ptr %1375, align 4, !tbaa !5
  %1510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1501, ptr noundef nonnull %.str.34.sink897, i32 noundef %1502, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.30, i32 noundef 573, ptr noundef %1504, ptr noundef %1506, ptr noundef %1508, i32 noundef %1509) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1511:                                             ; preds = %1484
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = add nsw i32 %1512, 1
  store i32 %1513, ptr @test_count, align 4, !tbaa !5
  %1514 = load i32, ptr %488, align 4, !tbaa !5
  %1515 = icmp eq i32 %1514, 402653193
  br i1 %1515, label %1538, label %1516

1516:                                             ; preds = %1511
  %1517 = load i32, ptr %1375, align 4, !tbaa !5
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = call i32 @s2n_print_stacktrace(ptr noundef %1518) #12
  %1520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1521 = trunc nuw i8 %1520 to i1
  br i1 %1521, label %1522, label %1526

1522:                                             ; preds = %1516
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = call i32 @fileno(ptr noundef %1523) #12
  %1525 = call i32 @isatty(i32 noundef %1524) #12
  %.not329 = icmp eq i32 %1525, 0
  br i1 %.not329, label %1526, label %1527

1526:                                             ; preds = %1522, %1516
  br label %1527

1527:                                             ; preds = %1522, %1526
  %.str.34.sink906 = phi ptr [ @.str.34, %1526 ], [ @.str.31, %1522 ]
  store i32 %1517, ptr %1375, align 4, !tbaa !5
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = load i32, ptr @test_count, align 4, !tbaa !5
  %1530 = load i32, ptr %488, align 4, !tbaa !5
  %1531 = call ptr @s2n_strerror(i32 noundef %1530, ptr noundef nonnull @.str.33) #12
  %1532 = load i32, ptr %488, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror_debug(i32 noundef %1532, ptr noundef nonnull @.str.33) #12
  %1534 = load i32, ptr %1375, align 4, !tbaa !5
  %1535 = call ptr @strerror(i32 noundef %1534) #12
  %1536 = load i32, ptr %1375, align 4, !tbaa !5
  %1537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1528, ptr noundef nonnull %.str.34.sink906, i32 noundef %1529, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 573, ptr noundef %1531, ptr noundef %1533, ptr noundef %1535, i32 noundef %1536) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1538:                                             ; preds = %1511
  %1539 = add nsw i32 %1512, 2
  store i32 %1539, ptr @test_count, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %1541 = icmp eq ptr %1540, null
  br i1 %1541, label %1542, label %1564

1542:                                             ; preds = %1538
  %1543 = load i32, ptr %1375, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @s2n_print_stacktrace(ptr noundef %1544) #12
  %1546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1547 = trunc nuw i8 %1546 to i1
  br i1 %1547, label %1548, label %1552

1548:                                             ; preds = %1542
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = call i32 @fileno(ptr noundef %1549) #12
  %1551 = call i32 @isatty(i32 noundef %1550) #12
  %.not364 = icmp eq i32 %1551, 0
  br i1 %.not364, label %1552, label %1553

1552:                                             ; preds = %1548, %1542
  br label %1553

1553:                                             ; preds = %1548, %1552
  %.str.34.sink915 = phi ptr [ @.str.34, %1552 ], [ @.str.31, %1548 ]
  store i32 %1543, ptr %1375, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = load i32, ptr @test_count, align 4, !tbaa !5
  %1556 = load i32, ptr %488, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef nonnull @.str.33) #12
  %1558 = load i32, ptr %488, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror_debug(i32 noundef %1558, ptr noundef nonnull @.str.33) #12
  %1560 = load i32, ptr %1375, align 4, !tbaa !5
  %1561 = call ptr @strerror(i32 noundef %1560) #12
  %1562 = load i32, ptr %1375, align 4, !tbaa !5
  %1563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1554, ptr noundef nonnull %.str.34.sink915, i32 noundef %1555, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 573, ptr noundef %1557, ptr noundef %1559, ptr noundef %1561, i32 noundef %1562) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1564:                                             ; preds = %1538
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %1565 = getelementptr inbounds i8, ptr %1380, i64 656
  store ptr @s2n_ecc_curve_secp256r1, ptr %1565, align 8, !tbaa !77
  %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 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %1569 = icmp eq i32 %1568, -1
  br i1 %1569, label %1592, label %1570

1570:                                             ; preds = %1564
  %1571 = load i32, ptr %1375, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @s2n_print_stacktrace(ptr noundef %1572) #12
  %1574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1575 = trunc nuw i8 %1574 to i1
  br i1 %1575, label %1576, label %1580

1576:                                             ; preds = %1570
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @fileno(ptr noundef %1577) #12
  %1579 = call i32 @isatty(i32 noundef %1578) #12
  %.not330 = icmp eq i32 %1579, 0
  br i1 %.not330, label %1580, label %1581

1580:                                             ; preds = %1576, %1570
  br label %1581

1581:                                             ; preds = %1576, %1580
  %.str.34.sink924 = phi ptr [ @.str.34, %1580 ], [ @.str.31, %1576 ]
  store i32 %1571, ptr %1375, align 4, !tbaa !5
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = load i32, ptr %488, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror(i32 noundef %1584, ptr noundef nonnull @.str.33) #12
  %1586 = load i32, ptr %488, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror_debug(i32 noundef %1586, ptr noundef nonnull @.str.33) #12
  %1588 = load i32, ptr %1375, align 4, !tbaa !5
  %1589 = call ptr @strerror(i32 noundef %1588) #12
  %1590 = load i32, ptr %1375, align 4, !tbaa !5
  %1591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1582, ptr noundef nonnull %.str.34.sink924, i32 noundef %1583, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 577, ptr noundef %1585, ptr noundef %1587, ptr noundef %1589, i32 noundef %1590) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1592:                                             ; preds = %1564
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr @test_count, align 4, !tbaa !5
  %1595 = load i32, ptr %488, align 4, !tbaa !5
  %1596 = icmp eq i32 %1595, 402653194
  br i1 %1596, label %1619, label %1597

1597:                                             ; preds = %1592
  %1598 = load i32, ptr %1375, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @s2n_print_stacktrace(ptr noundef %1599) #12
  %1601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1602 = trunc nuw i8 %1601 to i1
  br i1 %1602, label %1603, label %1607

1603:                                             ; preds = %1597
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @fileno(ptr noundef %1604) #12
  %1606 = call i32 @isatty(i32 noundef %1605) #12
  %.not331 = icmp eq i32 %1606, 0
  br i1 %.not331, label %1607, label %1608

1607:                                             ; preds = %1603, %1597
  br label %1608

1608:                                             ; preds = %1603, %1607
  %.str.34.sink933 = phi ptr [ @.str.34, %1607 ], [ @.str.31, %1603 ]
  store i32 %1598, ptr %1375, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = load i32, ptr %488, align 4, !tbaa !5
  %1612 = call ptr @s2n_strerror(i32 noundef %1611, ptr noundef nonnull @.str.33) #12
  %1613 = load i32, ptr %488, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror_debug(i32 noundef %1613, ptr noundef nonnull @.str.33) #12
  %1615 = load i32, ptr %1375, align 4, !tbaa !5
  %1616 = call ptr @strerror(i32 noundef %1615) #12
  %1617 = load i32, ptr %1375, align 4, !tbaa !5
  %1618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1609, ptr noundef nonnull %.str.34.sink933, i32 noundef %1610, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.30, i32 noundef 577, ptr noundef %1612, ptr noundef %1614, ptr noundef %1616, i32 noundef %1617) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1619:                                             ; preds = %1592
  %1620 = add nsw i32 %1593, 2
  store i32 %1620, ptr @test_count, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.33) #12
  %1622 = icmp eq ptr %1621, null
  br i1 %1622, label %1623, label %1645

1623:                                             ; preds = %1619
  %1624 = load i32, ptr %1375, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @s2n_print_stacktrace(ptr noundef %1625) #12
  %1627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1628 = trunc nuw i8 %1627 to i1
  br i1 %1628, label %1629, label %1633

1629:                                             ; preds = %1623
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = call i32 @fileno(ptr noundef %1630) #12
  %1632 = call i32 @isatty(i32 noundef %1631) #12
  %.not363 = icmp eq i32 %1632, 0
  br i1 %.not363, label %1633, label %1634

1633:                                             ; preds = %1629, %1623
  br label %1634

1634:                                             ; preds = %1629, %1633
  %.str.34.sink942 = phi ptr [ @.str.34, %1633 ], [ @.str.31, %1629 ]
  store i32 %1624, ptr %1375, align 4, !tbaa !5
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1636 = load i32, ptr @test_count, align 4, !tbaa !5
  %1637 = load i32, ptr %488, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror(i32 noundef %1637, ptr noundef nonnull @.str.33) #12
  %1639 = load i32, ptr %488, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef nonnull @.str.33) #12
  %1641 = load i32, ptr %1375, align 4, !tbaa !5
  %1642 = call ptr @strerror(i32 noundef %1641) #12
  %1643 = load i32, ptr %1375, align 4, !tbaa !5
  %1644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1635, ptr noundef nonnull %.str.34.sink942, i32 noundef %1636, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 577, ptr noundef %1638, ptr noundef %1640, ptr noundef %1642, i32 noundef %1643) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1645:                                             ; preds = %1619
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  store ptr null, ptr %1565, align 8, !tbaa !77
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = add nsw i32 %1646, 1
  store i32 %1647, ptr @test_count, align 4, !tbaa !5
  %1648 = getelementptr inbounds i8, ptr %1380, i64 664
  %1649 = load ptr, ptr %210, align 8, !tbaa !19
  %1650 = call i32 @read_priv_ecc(ptr noundef nonnull %1648, ptr noundef %1649)
  %1651 = icmp eq i32 %1650, -1
  br i1 %1651, label %1652, label %1674

1652:                                             ; preds = %1645
  %1653 = load i32, ptr %1375, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @s2n_print_stacktrace(ptr noundef %1654) #12
  %1656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1657 = trunc nuw i8 %1656 to i1
  br i1 %1657, label %1658, label %1662

1658:                                             ; preds = %1652
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @fileno(ptr noundef %1659) #12
  %1661 = call i32 @isatty(i32 noundef %1660) #12
  %.not362 = icmp eq i32 %1661, 0
  br i1 %.not362, label %1662, label %1663

1662:                                             ; preds = %1658, %1652
  br label %1663

1663:                                             ; preds = %1658, %1662
  %.str.34.sink951 = phi ptr [ @.str.34, %1662 ], [ @.str.31, %1658 ]
  store i32 %1653, ptr %1375, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = load i32, ptr %488, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror(i32 noundef %1666, ptr noundef nonnull @.str.33) #12
  %1668 = load i32, ptr %488, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef nonnull @.str.33) #12
  %1670 = load i32, ptr %1375, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #12
  %1672 = load i32, ptr %1375, align 4, !tbaa !5
  %1673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef nonnull %.str.34.sink951, i32 noundef %1665, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.30, i32 noundef 579, ptr noundef %1667, ptr noundef %1669, ptr noundef %1671, i32 noundef %1672) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1674:                                             ; preds = %1645
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = add nsw i32 %1675, 1
  store i32 %1676, ptr @test_count, align 4, !tbaa !5
  %1677 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %1678 = icmp eq i32 %1677, -1
  br i1 %1678, label %1701, label %1679

1679:                                             ; preds = %1674
  %1680 = load i32, ptr %1375, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = call i32 @s2n_print_stacktrace(ptr noundef %1681) #12
  %1683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1684 = trunc nuw i8 %1683 to i1
  br i1 %1684, label %1685, label %1689

1685:                                             ; preds = %1679
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @fileno(ptr noundef %1686) #12
  %1688 = call i32 @isatty(i32 noundef %1687) #12
  %.not332 = icmp eq i32 %1688, 0
  br i1 %.not332, label %1689, label %1690

1689:                                             ; preds = %1685, %1679
  br label %1690

1690:                                             ; preds = %1685, %1689
  %.str.34.sink960 = phi ptr [ @.str.34, %1689 ], [ @.str.31, %1685 ]
  store i32 %1680, ptr %1375, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = load i32, ptr %488, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.33) #12
  %1695 = load i32, ptr %488, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.33) #12
  %1697 = load i32, ptr %1375, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #12
  %1699 = load i32, ptr %1375, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1691, ptr noundef nonnull %.str.34.sink960, i32 noundef %1692, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 580, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1701:                                             ; preds = %1674
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 1
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = load i32, ptr %488, align 4, !tbaa !5
  %1705 = icmp eq i32 %1704, 402653194
  br i1 %1705, label %1728, label %1706

1706:                                             ; preds = %1701
  %1707 = load i32, ptr %1375, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @s2n_print_stacktrace(ptr noundef %1708) #12
  %1710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1711 = trunc nuw i8 %1710 to i1
  br i1 %1711, label %1712, label %1716

1712:                                             ; preds = %1706
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @fileno(ptr noundef %1713) #12
  %1715 = call i32 @isatty(i32 noundef %1714) #12
  %.not333 = icmp eq i32 %1715, 0
  br i1 %.not333, label %1716, label %1717

1716:                                             ; preds = %1712, %1706
  br label %1717

1717:                                             ; preds = %1712, %1716
  %.str.34.sink969 = phi ptr [ @.str.34, %1716 ], [ @.str.31, %1712 ]
  store i32 %1707, ptr %1375, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = load i32, ptr %488, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef nonnull @.str.33) #12
  %1722 = load i32, ptr %488, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef nonnull @.str.33) #12
  %1724 = load i32, ptr %1375, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #12
  %1726 = load i32, ptr %1375, align 4, !tbaa !5
  %1727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1718, ptr noundef nonnull %.str.34.sink969, i32 noundef %1719, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.30, i32 noundef 580, ptr noundef %1721, ptr noundef %1723, ptr noundef %1725, i32 noundef %1726) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1728:                                             ; preds = %1701
  %1729 = add nsw i32 %1702, 2
  store i32 %1729, ptr @test_count, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.33) #12
  %1731 = icmp eq ptr %1730, null
  br i1 %1731, label %1732, label %1754

1732:                                             ; preds = %1728
  %1733 = load i32, ptr %1375, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = call i32 @s2n_print_stacktrace(ptr noundef %1734) #12
  %1736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1737 = trunc nuw i8 %1736 to i1
  br i1 %1737, label %1738, label %1742

1738:                                             ; preds = %1732
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1740 = call i32 @fileno(ptr noundef %1739) #12
  %1741 = call i32 @isatty(i32 noundef %1740) #12
  %.not361 = icmp eq i32 %1741, 0
  br i1 %.not361, label %1742, label %1743

1742:                                             ; preds = %1738, %1732
  br label %1743

1743:                                             ; preds = %1738, %1742
  %.str.34.sink978 = phi ptr [ @.str.34, %1742 ], [ @.str.31, %1738 ]
  store i32 %1733, ptr %1375, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = load i32, ptr %488, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror(i32 noundef %1746, ptr noundef nonnull @.str.33) #12
  %1748 = load i32, ptr %488, align 4, !tbaa !5
  %1749 = call ptr @s2n_strerror_debug(i32 noundef %1748, ptr noundef nonnull @.str.33) #12
  %1750 = load i32, ptr %1375, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #12
  %1752 = load i32, ptr %1375, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef nonnull %.str.34.sink978, i32 noundef %1745, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 580, ptr noundef %1747, ptr noundef %1749, ptr noundef %1751, i32 noundef %1752) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1754:                                             ; preds = %1728
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = add nsw i32 %1755, 1
  store i32 %1756, ptr @test_count, align 4, !tbaa !5
  %1757 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %1565) #12
  %1758 = icmp eq i32 %1757, -1
  br i1 %1758, label %1759, label %1781

1759:                                             ; preds = %1754
  %1760 = load i32, ptr %1375, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = call i32 @s2n_print_stacktrace(ptr noundef %1761) #12
  %1763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1764 = trunc nuw i8 %1763 to i1
  br i1 %1764, label %1765, label %1769

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

1769:                                             ; preds = %1765, %1759
  br label %1770

1770:                                             ; preds = %1765, %1769
  %.str.34.sink987 = phi ptr [ @.str.34, %1769 ], [ @.str.31, %1765 ]
  store i32 %1760, ptr %1375, align 4, !tbaa !5
  %1771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1772 = load i32, ptr @test_count, align 4, !tbaa !5
  %1773 = load i32, ptr %488, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror(i32 noundef %1773, ptr noundef nonnull @.str.33) #12
  %1775 = load i32, ptr %488, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror_debug(i32 noundef %1775, ptr noundef nonnull @.str.33) #12
  %1777 = load i32, ptr %1375, align 4, !tbaa !5
  %1778 = call ptr @strerror(i32 noundef %1777) #12
  %1779 = load i32, ptr %1375, align 4, !tbaa !5
  %1780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1771, ptr noundef nonnull %.str.34.sink987, i32 noundef %1772, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.30, i32 noundef 581, ptr noundef %1774, ptr noundef %1776, ptr noundef %1778, i32 noundef %1779) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1781:                                             ; preds = %1754
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %1783 = add nsw i32 %1782, 1
  store i32 %1783, ptr @test_count, align 4, !tbaa !5
  %1784 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %1785 = icmp eq i32 %1784, -1
  br i1 %1785, label %1808, label %1786

1786:                                             ; preds = %1781
  %1787 = load i32, ptr %1375, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = call i32 @s2n_print_stacktrace(ptr noundef %1788) #12
  %1790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1791 = trunc nuw i8 %1790 to i1
  br i1 %1791, label %1792, label %1796

1792:                                             ; preds = %1786
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = call i32 @fileno(ptr noundef %1793) #12
  %1795 = call i32 @isatty(i32 noundef %1794) #12
  %.not334 = icmp eq i32 %1795, 0
  br i1 %.not334, label %1796, label %1797

1796:                                             ; preds = %1792, %1786
  br label %1797

1797:                                             ; preds = %1792, %1796
  %.str.34.sink996 = phi ptr [ @.str.34, %1796 ], [ @.str.31, %1792 ]
  store i32 %1787, ptr %1375, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = load i32, ptr %488, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror(i32 noundef %1800, ptr noundef nonnull @.str.33) #12
  %1802 = load i32, ptr %488, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror_debug(i32 noundef %1802, ptr noundef nonnull @.str.33) #12
  %1804 = load i32, ptr %1375, align 4, !tbaa !5
  %1805 = call ptr @strerror(i32 noundef %1804) #12
  %1806 = load i32, ptr %1375, align 4, !tbaa !5
  %1807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef nonnull %.str.34.sink996, i32 noundef %1799, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 584, ptr noundef %1801, ptr noundef %1803, ptr noundef %1805, i32 noundef %1806) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1808:                                             ; preds = %1781
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = add nsw i32 %1809, 1
  store i32 %1810, ptr @test_count, align 4, !tbaa !5
  %1811 = load i32, ptr %488, align 4, !tbaa !5
  %1812 = icmp eq i32 %1811, 402653193
  br i1 %1812, label %1835, label %1813

1813:                                             ; preds = %1808
  %1814 = load i32, ptr %1375, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = call i32 @s2n_print_stacktrace(ptr noundef %1815) #12
  %1817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1818 = trunc nuw i8 %1817 to i1
  br i1 %1818, label %1819, label %1823

1819:                                             ; preds = %1813
  %1820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1821 = call i32 @fileno(ptr noundef %1820) #12
  %1822 = call i32 @isatty(i32 noundef %1821) #12
  %.not335 = icmp eq i32 %1822, 0
  br i1 %.not335, label %1823, label %1824

1823:                                             ; preds = %1819, %1813
  br label %1824

1824:                                             ; preds = %1819, %1823
  %.str.34.sink1005 = phi ptr [ @.str.34, %1823 ], [ @.str.31, %1819 ]
  store i32 %1814, ptr %1375, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = load i32, ptr %488, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror(i32 noundef %1827, ptr noundef nonnull @.str.33) #12
  %1829 = load i32, ptr %488, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror_debug(i32 noundef %1829, ptr noundef nonnull @.str.33) #12
  %1831 = load i32, ptr %1375, align 4, !tbaa !5
  %1832 = call ptr @strerror(i32 noundef %1831) #12
  %1833 = load i32, ptr %1375, align 4, !tbaa !5
  %1834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1825, ptr noundef nonnull %.str.34.sink1005, i32 noundef %1826, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 584, ptr noundef %1828, ptr noundef %1830, ptr noundef %1832, i32 noundef %1833) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1835:                                             ; preds = %1808
  %1836 = add nsw i32 %1809, 2
  store i32 %1836, ptr @test_count, align 4, !tbaa !5
  %1837 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %1838 = icmp eq ptr %1837, null
  br i1 %1838, label %1839, label %1861

1839:                                             ; preds = %1835
  %1840 = load i32, ptr %1375, align 4, !tbaa !5
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = call i32 @s2n_print_stacktrace(ptr noundef %1841) #12
  %1843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1844 = trunc nuw i8 %1843 to i1
  br i1 %1844, label %1845, label %1849

1845:                                             ; preds = %1839
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = call i32 @fileno(ptr noundef %1846) #12
  %1848 = call i32 @isatty(i32 noundef %1847) #12
  %.not359 = icmp eq i32 %1848, 0
  br i1 %.not359, label %1849, label %1850

1849:                                             ; preds = %1845, %1839
  br label %1850

1850:                                             ; preds = %1845, %1849
  %.str.34.sink1014 = phi ptr [ @.str.34, %1849 ], [ @.str.31, %1845 ]
  store i32 %1840, ptr %1375, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = load i32, ptr %488, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror(i32 noundef %1853, ptr noundef nonnull @.str.33) #12
  %1855 = load i32, ptr %488, align 4, !tbaa !5
  %1856 = call ptr @s2n_strerror_debug(i32 noundef %1855, ptr noundef nonnull @.str.33) #12
  %1857 = load i32, ptr %1375, align 4, !tbaa !5
  %1858 = call ptr @strerror(i32 noundef %1857) #12
  %1859 = load i32, ptr %1375, align 4, !tbaa !5
  %1860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1851, ptr noundef nonnull %.str.34.sink1014, i32 noundef %1852, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 584, ptr noundef %1854, ptr noundef %1856, ptr noundef %1858, i32 noundef %1859) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1861:                                             ; preds = %1835
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %1862 = load i32, ptr @test_count, align 4, !tbaa !5
  %1863 = add nsw i32 %1862, 1
  store i32 %1863, ptr @test_count, align 4, !tbaa !5
  %1864 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %1865 = icmp eq i32 %1864, -1
  br i1 %1865, label %1888, label %1866

1866:                                             ; preds = %1861
  %1867 = load i32, ptr %1375, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = call i32 @s2n_print_stacktrace(ptr noundef %1868) #12
  %1870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1871 = trunc nuw i8 %1870 to i1
  br i1 %1871, label %1872, label %1876

1872:                                             ; preds = %1866
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @fileno(ptr noundef %1873) #12
  %1875 = call i32 @isatty(i32 noundef %1874) #12
  %.not336 = icmp eq i32 %1875, 0
  br i1 %.not336, label %1876, label %1877

1876:                                             ; preds = %1872, %1866
  br label %1877

1877:                                             ; preds = %1872, %1876
  %.str.34.sink1023 = phi ptr [ @.str.34, %1876 ], [ @.str.31, %1872 ]
  store i32 %1867, ptr %1375, align 4, !tbaa !5
  %1878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1879 = load i32, ptr @test_count, align 4, !tbaa !5
  %1880 = load i32, ptr %488, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror(i32 noundef %1880, ptr noundef nonnull @.str.33) #12
  %1882 = load i32, ptr %488, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror_debug(i32 noundef %1882, ptr noundef nonnull @.str.33) #12
  %1884 = load i32, ptr %1375, align 4, !tbaa !5
  %1885 = call ptr @strerror(i32 noundef %1884) #12
  %1886 = load i32, ptr %1375, align 4, !tbaa !5
  %1887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1878, ptr noundef nonnull %.str.34.sink1023, i32 noundef %1879, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 587, ptr noundef %1881, ptr noundef %1883, ptr noundef %1885, i32 noundef %1886) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1888:                                             ; preds = %1861
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr @test_count, align 4, !tbaa !5
  %1891 = load i32, ptr %488, align 4, !tbaa !5
  %1892 = icmp eq i32 %1891, 402653193
  br i1 %1892, label %1915, label %1893

1893:                                             ; preds = %1888
  %1894 = load i32, ptr %1375, align 4, !tbaa !5
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = call i32 @s2n_print_stacktrace(ptr noundef %1895) #12
  %1897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1898 = trunc nuw i8 %1897 to i1
  br i1 %1898, label %1899, label %1903

1899:                                             ; preds = %1893
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = call i32 @fileno(ptr noundef %1900) #12
  %1902 = call i32 @isatty(i32 noundef %1901) #12
  %.not337 = icmp eq i32 %1902, 0
  br i1 %.not337, label %1903, label %1904

1903:                                             ; preds = %1899, %1893
  br label %1904

1904:                                             ; preds = %1899, %1903
  %.str.34.sink1032 = phi ptr [ @.str.34, %1903 ], [ @.str.31, %1899 ]
  store i32 %1894, ptr %1375, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = load i32, ptr %488, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror(i32 noundef %1907, ptr noundef nonnull @.str.33) #12
  %1909 = load i32, ptr %488, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror_debug(i32 noundef %1909, ptr noundef nonnull @.str.33) #12
  %1911 = load i32, ptr %1375, align 4, !tbaa !5
  %1912 = call ptr @strerror(i32 noundef %1911) #12
  %1913 = load i32, ptr %1375, align 4, !tbaa !5
  %1914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1905, ptr noundef nonnull %.str.34.sink1032, i32 noundef %1906, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 587, ptr noundef %1908, ptr noundef %1910, ptr noundef %1912, i32 noundef %1913) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1915:                                             ; preds = %1888
  %1916 = add nsw i32 %1889, 2
  store i32 %1916, ptr @test_count, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %1918 = icmp eq ptr %1917, null
  br i1 %1918, label %1919, label %1941

1919:                                             ; preds = %1915
  %1920 = load i32, ptr %1375, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = call i32 @s2n_print_stacktrace(ptr noundef %1921) #12
  %1923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1924 = trunc nuw i8 %1923 to i1
  br i1 %1924, label %1925, label %1929

1925:                                             ; preds = %1919
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = call i32 @fileno(ptr noundef %1926) #12
  %1928 = call i32 @isatty(i32 noundef %1927) #12
  %.not358 = icmp eq i32 %1928, 0
  br i1 %.not358, label %1929, label %1930

1929:                                             ; preds = %1925, %1919
  br label %1930

1930:                                             ; preds = %1925, %1929
  %.str.34.sink1041 = phi ptr [ @.str.34, %1929 ], [ @.str.31, %1925 ]
  store i32 %1920, ptr %1375, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = load i32, ptr @test_count, align 4, !tbaa !5
  %1933 = load i32, ptr %488, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror(i32 noundef %1933, ptr noundef nonnull @.str.33) #12
  %1935 = load i32, ptr %488, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror_debug(i32 noundef %1935, ptr noundef nonnull @.str.33) #12
  %1937 = load i32, ptr %1375, align 4, !tbaa !5
  %1938 = call ptr @strerror(i32 noundef %1937) #12
  %1939 = load i32, ptr %1375, align 4, !tbaa !5
  %1940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1931, ptr noundef nonnull %.str.34.sink1041, i32 noundef %1932, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 587, ptr noundef %1934, ptr noundef %1936, ptr noundef %1938, i32 noundef %1939) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1941:                                             ; preds = %1915
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %1942 = load ptr, ptr %8, align 8, !tbaa !15
  %1943 = getelementptr inbounds i8, ptr %1942, i64 16
  %1944 = load ptr, ptr %1943, align 8, !tbaa !25
  %1945 = getelementptr inbounds i8, ptr %1380, i64 720
  %1946 = getelementptr inbounds i8, ptr %1380, i64 816
  store ptr %1944, ptr %1946, align 8, !tbaa !78
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr @test_count, align 4, !tbaa !5
  %1949 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %1950 = icmp eq i32 %1949, -1
  br i1 %1950, label %1973, label %1951

1951:                                             ; preds = %1941
  %1952 = load i32, ptr %1375, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = call i32 @s2n_print_stacktrace(ptr noundef %1953) #12
  %1955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1956 = trunc nuw i8 %1955 to i1
  br i1 %1956, label %1957, label %1961

1957:                                             ; preds = %1951
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @fileno(ptr noundef %1958) #12
  %1960 = call i32 @isatty(i32 noundef %1959) #12
  %.not338 = icmp eq i32 %1960, 0
  br i1 %.not338, label %1961, label %1962

1961:                                             ; preds = %1957, %1951
  br label %1962

1962:                                             ; preds = %1957, %1961
  %.str.34.sink1050 = phi ptr [ @.str.34, %1961 ], [ @.str.31, %1957 ]
  store i32 %1952, ptr %1375, align 4, !tbaa !5
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = load i32, ptr %488, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror(i32 noundef %1965, ptr noundef nonnull @.str.33) #12
  %1967 = load i32, ptr %488, align 4, !tbaa !5
  %1968 = call ptr @s2n_strerror_debug(i32 noundef %1967, ptr noundef nonnull @.str.33) #12
  %1969 = load i32, ptr %1375, align 4, !tbaa !5
  %1970 = call ptr @strerror(i32 noundef %1969) #12
  %1971 = load i32, ptr %1375, align 4, !tbaa !5
  %1972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1963, ptr noundef nonnull %.str.34.sink1050, i32 noundef %1964, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 589, ptr noundef %1966, ptr noundef %1968, ptr noundef %1970, i32 noundef %1971) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1973:                                             ; preds = %1941
  %1974 = load i32, ptr @test_count, align 4, !tbaa !5
  %1975 = add nsw i32 %1974, 1
  store i32 %1975, ptr @test_count, align 4, !tbaa !5
  %1976 = load i32, ptr %488, align 4, !tbaa !5
  %1977 = icmp eq i32 %1976, 402653193
  br i1 %1977, label %2000, label %1978

1978:                                             ; preds = %1973
  %1979 = load i32, ptr %1375, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @s2n_print_stacktrace(ptr noundef %1980) #12
  %1982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1983 = trunc nuw i8 %1982 to i1
  br i1 %1983, label %1984, label %1988

1984:                                             ; preds = %1978
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @fileno(ptr noundef %1985) #12
  %1987 = call i32 @isatty(i32 noundef %1986) #12
  %.not339 = icmp eq i32 %1987, 0
  br i1 %.not339, label %1988, label %1989

1988:                                             ; preds = %1984, %1978
  br label %1989

1989:                                             ; preds = %1984, %1988
  %.str.34.sink1059 = phi ptr [ @.str.34, %1988 ], [ @.str.31, %1984 ]
  store i32 %1979, ptr %1375, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = load i32, ptr %488, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror(i32 noundef %1992, ptr noundef nonnull @.str.33) #12
  %1994 = load i32, ptr %488, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror_debug(i32 noundef %1994, ptr noundef nonnull @.str.33) #12
  %1996 = load i32, ptr %1375, align 4, !tbaa !5
  %1997 = call ptr @strerror(i32 noundef %1996) #12
  %1998 = load i32, ptr %1375, align 4, !tbaa !5
  %1999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1990, ptr noundef nonnull %.str.34.sink1059, i32 noundef %1991, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 589, ptr noundef %1993, ptr noundef %1995, ptr noundef %1997, i32 noundef %1998) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2000:                                             ; preds = %1973
  %2001 = add nsw i32 %1974, 2
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %2003 = icmp eq ptr %2002, null
  br i1 %2003, label %2004, label %2026

2004:                                             ; preds = %2000
  %2005 = load i32, ptr %1375, align 4, !tbaa !5
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2007 = call i32 @s2n_print_stacktrace(ptr noundef %2006) #12
  %2008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2009 = trunc nuw i8 %2008 to i1
  br i1 %2009, label %2010, label %2014

2010:                                             ; preds = %2004
  %2011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2012 = call i32 @fileno(ptr noundef %2011) #12
  %2013 = call i32 @isatty(i32 noundef %2012) #12
  %.not357 = icmp eq i32 %2013, 0
  br i1 %.not357, label %2014, label %2015

2014:                                             ; preds = %2010, %2004
  br label %2015

2015:                                             ; preds = %2010, %2014
  %.str.34.sink1068 = phi ptr [ @.str.34, %2014 ], [ @.str.31, %2010 ]
  store i32 %2005, ptr %1375, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = load i32, ptr %488, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror(i32 noundef %2018, ptr noundef nonnull @.str.33) #12
  %2020 = load i32, ptr %488, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror_debug(i32 noundef %2020, ptr noundef nonnull @.str.33) #12
  %2022 = load i32, ptr %1375, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #12
  %2024 = load i32, ptr %1375, align 4, !tbaa !5
  %2025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2016, ptr noundef nonnull %.str.34.sink1068, i32 noundef %2017, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 589, ptr noundef %2019, ptr noundef %2021, ptr noundef %2023, i32 noundef %2024) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2026:                                             ; preds = %2000
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %2027 = load ptr, ptr %8, align 8, !tbaa !15
  %2028 = getelementptr inbounds i8, ptr %2027, i64 16
  %2029 = load ptr, ptr %2028, align 8, !tbaa !25
  %2030 = getelementptr inbounds i8, ptr %1380, i64 928
  store ptr %2029, ptr %2030, align 8, !tbaa !79
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = add nsw i32 %2031, 1
  store i32 %2032, ptr @test_count, align 4, !tbaa !5
  %2033 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %2034 = icmp eq i32 %2033, -1
  br i1 %2034, label %2057, label %2035

2035:                                             ; preds = %2026
  %2036 = load i32, ptr %1375, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @s2n_print_stacktrace(ptr noundef %2037) #12
  %2039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2040 = trunc nuw i8 %2039 to i1
  br i1 %2040, label %2041, label %2045

2041:                                             ; preds = %2035
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = call i32 @fileno(ptr noundef %2042) #12
  %2044 = call i32 @isatty(i32 noundef %2043) #12
  %.not340 = icmp eq i32 %2044, 0
  br i1 %.not340, label %2045, label %2046

2045:                                             ; preds = %2041, %2035
  br label %2046

2046:                                             ; preds = %2041, %2045
  %.str.34.sink1077 = phi ptr [ @.str.34, %2045 ], [ @.str.31, %2041 ]
  store i32 %2036, ptr %1375, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = load i32, ptr %488, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror(i32 noundef %2049, ptr noundef nonnull @.str.33) #12
  %2051 = load i32, ptr %488, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef nonnull @.str.33) #12
  %2053 = load i32, ptr %1375, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #12
  %2055 = load i32, ptr %1375, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2047, ptr noundef nonnull %.str.34.sink1077, i32 noundef %2048, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 593, ptr noundef %2050, ptr noundef %2052, ptr noundef %2054, i32 noundef %2055) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2057:                                             ; preds = %2026
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = add nsw i32 %2058, 1
  store i32 %2059, ptr @test_count, align 4, !tbaa !5
  %2060 = load i32, ptr %488, align 4, !tbaa !5
  %2061 = icmp eq i32 %2060, 402653193
  br i1 %2061, label %2084, label %2062

2062:                                             ; preds = %2057
  %2063 = load i32, ptr %1375, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = call i32 @s2n_print_stacktrace(ptr noundef %2064) #12
  %2066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2067 = trunc nuw i8 %2066 to i1
  br i1 %2067, label %2068, label %2072

2068:                                             ; preds = %2062
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = call i32 @fileno(ptr noundef %2069) #12
  %2071 = call i32 @isatty(i32 noundef %2070) #12
  %.not341 = icmp eq i32 %2071, 0
  br i1 %.not341, label %2072, label %2073

2072:                                             ; preds = %2068, %2062
  br label %2073

2073:                                             ; preds = %2068, %2072
  %.str.34.sink1086 = phi ptr [ @.str.34, %2072 ], [ @.str.31, %2068 ]
  store i32 %2063, ptr %1375, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = load i32, ptr %488, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror(i32 noundef %2076, ptr noundef nonnull @.str.33) #12
  %2078 = load i32, ptr %488, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef nonnull @.str.33) #12
  %2080 = load i32, ptr %1375, align 4, !tbaa !5
  %2081 = call ptr @strerror(i32 noundef %2080) #12
  %2082 = load i32, ptr %1375, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2074, ptr noundef nonnull %.str.34.sink1086, i32 noundef %2075, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 593, ptr noundef %2077, ptr noundef %2079, ptr noundef %2081, i32 noundef %2082) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2084:                                             ; preds = %2057
  %2085 = add nsw i32 %2058, 2
  store i32 %2085, ptr @test_count, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %2087 = icmp eq ptr %2086, null
  br i1 %2087, label %2088, label %2110

2088:                                             ; preds = %2084
  %2089 = load i32, ptr %1375, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = call i32 @s2n_print_stacktrace(ptr noundef %2090) #12
  %2092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2093 = trunc nuw i8 %2092 to i1
  br i1 %2093, label %2094, label %2098

2094:                                             ; preds = %2088
  %2095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2096 = call i32 @fileno(ptr noundef %2095) #12
  %2097 = call i32 @isatty(i32 noundef %2096) #12
  %.not356 = icmp eq i32 %2097, 0
  br i1 %.not356, label %2098, label %2099

2098:                                             ; preds = %2094, %2088
  br label %2099

2099:                                             ; preds = %2094, %2098
  %.str.34.sink1095 = phi ptr [ @.str.34, %2098 ], [ @.str.31, %2094 ]
  store i32 %2089, ptr %1375, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = load i32, ptr %488, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror(i32 noundef %2102, ptr noundef nonnull @.str.33) #12
  %2104 = load i32, ptr %488, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror_debug(i32 noundef %2104, ptr noundef nonnull @.str.33) #12
  %2106 = load i32, ptr %1375, align 4, !tbaa !5
  %2107 = call ptr @strerror(i32 noundef %2106) #12
  %2108 = load i32, ptr %1375, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2100, ptr noundef nonnull %.str.34.sink1095, i32 noundef %2101, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 593, ptr noundef %2103, ptr noundef %2105, ptr noundef %2107, i32 noundef %2108) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2110:                                             ; preds = %2084
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = add nsw i32 %2111, 1
  store i32 %2112, ptr @test_count, align 4, !tbaa !5
  %2113 = getelementptr inbounds i8, ptr %1380, i64 936
  %2114 = load ptr, ptr %210, align 8, !tbaa !19
  %2115 = call i32 @read_priv_ecc(ptr noundef nonnull %2113, ptr noundef %2114)
  %2116 = icmp eq i32 %2115, -1
  br i1 %2116, label %2117, label %2139

2117:                                             ; preds = %2110
  %2118 = load i32, ptr %1375, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @s2n_print_stacktrace(ptr noundef %2119) #12
  %2121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2122 = trunc nuw i8 %2121 to i1
  br i1 %2122, label %2123, label %2127

2123:                                             ; preds = %2117
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @fileno(ptr noundef %2124) #12
  %2126 = call i32 @isatty(i32 noundef %2125) #12
  %.not355 = icmp eq i32 %2126, 0
  br i1 %.not355, label %2127, label %2128

2127:                                             ; preds = %2123, %2117
  br label %2128

2128:                                             ; preds = %2123, %2127
  %.str.34.sink1104 = phi ptr [ @.str.34, %2127 ], [ @.str.31, %2123 ]
  store i32 %2118, ptr %1375, align 4, !tbaa !5
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = load i32, ptr @test_count, align 4, !tbaa !5
  %2131 = load i32, ptr %488, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef nonnull @.str.33) #12
  %2133 = load i32, ptr %488, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror_debug(i32 noundef %2133, ptr noundef nonnull @.str.33) #12
  %2135 = load i32, ptr %1375, align 4, !tbaa !5
  %2136 = call ptr @strerror(i32 noundef %2135) #12
  %2137 = load i32, ptr %1375, align 4, !tbaa !5
  %2138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2129, ptr noundef nonnull %.str.34.sink1104, i32 noundef %2130, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.30, i32 noundef 594, ptr noundef %2132, ptr noundef %2134, ptr noundef %2136, i32 noundef %2137) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2139:                                             ; preds = %2110
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %2141 = add nsw i32 %2140, 1
  store i32 %2141, ptr @test_count, align 4, !tbaa !5
  %2142 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %2143 = icmp eq i32 %2142, -1
  br i1 %2143, label %2166, label %2144

2144:                                             ; preds = %2139
  %2145 = load i32, ptr %1375, align 4, !tbaa !5
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @s2n_print_stacktrace(ptr noundef %2146) #12
  %2148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2149 = trunc nuw i8 %2148 to i1
  br i1 %2149, label %2150, label %2154

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

2154:                                             ; preds = %2150, %2144
  br label %2155

2155:                                             ; preds = %2150, %2154
  %.str.34.sink1113 = phi ptr [ @.str.34, %2154 ], [ @.str.31, %2150 ]
  store i32 %2145, ptr %1375, align 4, !tbaa !5
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = load i32, ptr %488, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror(i32 noundef %2158, ptr noundef nonnull @.str.33) #12
  %2160 = load i32, ptr %488, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror_debug(i32 noundef %2160, ptr noundef nonnull @.str.33) #12
  %2162 = load i32, ptr %1375, align 4, !tbaa !5
  %2163 = call ptr @strerror(i32 noundef %2162) #12
  %2164 = load i32, ptr %1375, align 4, !tbaa !5
  %2165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2156, ptr noundef nonnull %.str.34.sink1113, i32 noundef %2157, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 595, ptr noundef %2159, ptr noundef %2161, ptr noundef %2163, i32 noundef %2164) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2166:                                             ; preds = %2139
  %2167 = load i32, ptr @test_count, align 4, !tbaa !5
  %2168 = add nsw i32 %2167, 1
  store i32 %2168, ptr @test_count, align 4, !tbaa !5
  %2169 = load i32, ptr %488, align 4, !tbaa !5
  %2170 = icmp eq i32 %2169, 402653193
  br i1 %2170, label %2193, label %2171

2171:                                             ; preds = %2166
  %2172 = load i32, ptr %1375, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @s2n_print_stacktrace(ptr noundef %2173) #12
  %2175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2176 = trunc nuw i8 %2175 to i1
  br i1 %2176, label %2177, label %2181

2177:                                             ; preds = %2171
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = call i32 @fileno(ptr noundef %2178) #12
  %2180 = call i32 @isatty(i32 noundef %2179) #12
  %.not343 = icmp eq i32 %2180, 0
  br i1 %.not343, label %2181, label %2182

2181:                                             ; preds = %2177, %2171
  br label %2182

2182:                                             ; preds = %2177, %2181
  %.str.34.sink1122 = phi ptr [ @.str.34, %2181 ], [ @.str.31, %2177 ]
  store i32 %2172, ptr %1375, align 4, !tbaa !5
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = load i32, ptr @test_count, align 4, !tbaa !5
  %2185 = load i32, ptr %488, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef nonnull @.str.33) #12
  %2187 = load i32, ptr %488, align 4, !tbaa !5
  %2188 = call ptr @s2n_strerror_debug(i32 noundef %2187, ptr noundef nonnull @.str.33) #12
  %2189 = load i32, ptr %1375, align 4, !tbaa !5
  %2190 = call ptr @strerror(i32 noundef %2189) #12
  %2191 = load i32, ptr %1375, align 4, !tbaa !5
  %2192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2183, ptr noundef nonnull %.str.34.sink1122, i32 noundef %2184, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 595, ptr noundef %2186, ptr noundef %2188, ptr noundef %2190, i32 noundef %2191) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2193:                                             ; preds = %2166
  %2194 = add nsw i32 %2167, 2
  store i32 %2194, ptr @test_count, align 4, !tbaa !5
  %2195 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %2196 = icmp eq ptr %2195, null
  br i1 %2196, label %2197, label %2219

2197:                                             ; preds = %2193
  %2198 = load i32, ptr %1375, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199) #12
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc nuw i8 %2201 to i1
  br i1 %2202, label %2203, label %2207

2203:                                             ; preds = %2197
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #12
  %2206 = call i32 @isatty(i32 noundef %2205) #12
  %.not354 = icmp eq i32 %2206, 0
  br i1 %.not354, label %2207, label %2208

2207:                                             ; preds = %2203, %2197
  br label %2208

2208:                                             ; preds = %2203, %2207
  %.str.34.sink1131 = phi ptr [ @.str.34, %2207 ], [ @.str.31, %2203 ]
  store i32 %2198, ptr %1375, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = load i32, ptr %488, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror(i32 noundef %2211, ptr noundef nonnull @.str.33) #12
  %2213 = load i32, ptr %488, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror_debug(i32 noundef %2213, ptr noundef nonnull @.str.33) #12
  %2215 = load i32, ptr %1375, align 4, !tbaa !5
  %2216 = call ptr @strerror(i32 noundef %2215) #12
  %2217 = load i32, ptr %1375, align 4, !tbaa !5
  %2218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef nonnull %.str.34.sink1131, i32 noundef %2210, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 595, ptr noundef %2212, ptr noundef %2214, ptr noundef %2216, i32 noundef %2217) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2219:                                             ; preds = %2193
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = add nsw i32 %2220, 1
  store i32 %2221, ptr @test_count, align 4, !tbaa !5
  %2222 = getelementptr inbounds i8, ptr %1380, i64 824
  %2223 = load ptr, ptr %211, align 8, !tbaa !20
  %2224 = call i32 @read_priv_ecc(ptr noundef nonnull %2222, ptr noundef %2223)
  %2225 = icmp eq i32 %2224, -1
  br i1 %2225, label %2226, label %2248

2226:                                             ; preds = %2219
  %2227 = load i32, ptr %1375, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = call i32 @s2n_print_stacktrace(ptr noundef %2228) #12
  %2230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2231 = trunc nuw i8 %2230 to i1
  br i1 %2231, label %2232, label %2236

2232:                                             ; preds = %2226
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = call i32 @fileno(ptr noundef %2233) #12
  %2235 = call i32 @isatty(i32 noundef %2234) #12
  %.not353 = icmp eq i32 %2235, 0
  br i1 %.not353, label %2236, label %2237

2236:                                             ; preds = %2232, %2226
  br label %2237

2237:                                             ; preds = %2232, %2236
  %.str.34.sink1140 = phi ptr [ @.str.34, %2236 ], [ @.str.31, %2232 ]
  store i32 %2227, ptr %1375, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = load i32, ptr %488, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror(i32 noundef %2240, ptr noundef nonnull @.str.33) #12
  %2242 = load i32, ptr %488, align 4, !tbaa !5
  %2243 = call ptr @s2n_strerror_debug(i32 noundef %2242, ptr noundef nonnull @.str.33) #12
  %2244 = load i32, ptr %1375, align 4, !tbaa !5
  %2245 = call ptr @strerror(i32 noundef %2244) #12
  %2246 = load i32, ptr %1375, align 4, !tbaa !5
  %2247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2238, ptr noundef nonnull %.str.34.sink1140, i32 noundef %2239, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.30, i32 noundef 596, ptr noundef %2241, ptr noundef %2243, ptr noundef %2245, i32 noundef %2246) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2248:                                             ; preds = %2219
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = add nsw i32 %2249, 1
  store i32 %2250, ptr @test_count, align 4, !tbaa !5
  %2251 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %2252 = icmp eq i32 %2251, -1
  br i1 %2252, label %2275, label %2253

2253:                                             ; preds = %2248
  %2254 = load i32, ptr %1375, align 4, !tbaa !5
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @s2n_print_stacktrace(ptr noundef %2255) #12
  %2257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2258 = trunc nuw i8 %2257 to i1
  br i1 %2258, label %2259, label %2263

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

2263:                                             ; preds = %2259, %2253
  br label %2264

2264:                                             ; preds = %2259, %2263
  %.str.34.sink1149 = phi ptr [ @.str.34, %2263 ], [ @.str.31, %2259 ]
  store i32 %2254, ptr %1375, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = load i32, ptr @test_count, align 4, !tbaa !5
  %2267 = load i32, ptr %488, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror(i32 noundef %2267, ptr noundef nonnull @.str.33) #12
  %2269 = load i32, ptr %488, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror_debug(i32 noundef %2269, ptr noundef nonnull @.str.33) #12
  %2271 = load i32, ptr %1375, align 4, !tbaa !5
  %2272 = call ptr @strerror(i32 noundef %2271) #12
  %2273 = load i32, ptr %1375, align 4, !tbaa !5
  %2274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2265, ptr noundef nonnull %.str.34.sink1149, i32 noundef %2266, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 599, ptr noundef %2268, ptr noundef %2270, ptr noundef %2272, i32 noundef %2273) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2275:                                             ; preds = %2248
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = add nsw i32 %2276, 1
  store i32 %2277, ptr @test_count, align 4, !tbaa !5
  %2278 = load i32, ptr %488, align 4, !tbaa !5
  %2279 = icmp eq i32 %2278, 402653193
  br i1 %2279, label %2302, label %2280

2280:                                             ; preds = %2275
  %2281 = load i32, ptr %1375, align 4, !tbaa !5
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = call i32 @s2n_print_stacktrace(ptr noundef %2282) #12
  %2284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2285 = trunc nuw i8 %2284 to i1
  br i1 %2285, label %2286, label %2290

2286:                                             ; preds = %2280
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = call i32 @fileno(ptr noundef %2287) #12
  %2289 = call i32 @isatty(i32 noundef %2288) #12
  %.not345 = icmp eq i32 %2289, 0
  br i1 %.not345, label %2290, label %2291

2290:                                             ; preds = %2286, %2280
  br label %2291

2291:                                             ; preds = %2286, %2290
  %.str.34.sink1158 = phi ptr [ @.str.34, %2290 ], [ @.str.31, %2286 ]
  store i32 %2281, ptr %1375, align 4, !tbaa !5
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = load i32, ptr @test_count, align 4, !tbaa !5
  %2294 = load i32, ptr %488, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror(i32 noundef %2294, ptr noundef nonnull @.str.33) #12
  %2296 = load i32, ptr %488, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror_debug(i32 noundef %2296, ptr noundef nonnull @.str.33) #12
  %2298 = load i32, ptr %1375, align 4, !tbaa !5
  %2299 = call ptr @strerror(i32 noundef %2298) #12
  %2300 = load i32, ptr %1375, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2292, ptr noundef nonnull %.str.34.sink1158, i32 noundef %2293, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 599, ptr noundef %2295, ptr noundef %2297, ptr noundef %2299, i32 noundef %2300) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2302:                                             ; preds = %2275
  %2303 = add nsw i32 %2276, 2
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %2305 = icmp eq ptr %2304, null
  br i1 %2305, label %2306, label %2328

2306:                                             ; preds = %2302
  %2307 = load i32, ptr %1375, align 4, !tbaa !5
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = call i32 @s2n_print_stacktrace(ptr noundef %2308) #12
  %2310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2311 = trunc nuw i8 %2310 to i1
  br i1 %2311, label %2312, label %2316

2312:                                             ; preds = %2306
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = call i32 @fileno(ptr noundef %2313) #12
  %2315 = call i32 @isatty(i32 noundef %2314) #12
  %.not352 = icmp eq i32 %2315, 0
  br i1 %.not352, label %2316, label %2317

2316:                                             ; preds = %2312, %2306
  br label %2317

2317:                                             ; preds = %2312, %2316
  %.str.34.sink1167 = phi ptr [ @.str.34, %2316 ], [ @.str.31, %2312 ]
  store i32 %2307, ptr %1375, align 4, !tbaa !5
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = load i32, ptr @test_count, align 4, !tbaa !5
  %2320 = load i32, ptr %488, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror(i32 noundef %2320, ptr noundef nonnull @.str.33) #12
  %2322 = load i32, ptr %488, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef nonnull @.str.33) #12
  %2324 = load i32, ptr %1375, align 4, !tbaa !5
  %2325 = call ptr @strerror(i32 noundef %2324) #12
  %2326 = load i32, ptr %1375, align 4, !tbaa !5
  %2327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2318, ptr noundef nonnull %.str.34.sink1167, i32 noundef %2319, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 599, ptr noundef %2321, ptr noundef %2323, ptr noundef %2325, i32 noundef %2326) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2328:                                             ; preds = %2302
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %2329 = load i32, ptr @test_count, align 4, !tbaa !5
  %2330 = add nsw i32 %2329, 1
  store i32 %2330, ptr @test_count, align 4, !tbaa !5
  %2331 = load ptr, ptr %212, align 8, !tbaa !21
  %2332 = getelementptr inbounds i8, ptr %1380, i64 896
  %2333 = call i32 @s2n_dup(ptr noundef %2331, ptr noundef nonnull %2332) #12
  %2334 = icmp eq i32 %2333, -1
  br i1 %2334, label %2335, label %2357

2335:                                             ; preds = %2328
  %2336 = load i32, ptr %1375, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @s2n_print_stacktrace(ptr noundef %2337) #12
  %2339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2340 = trunc nuw i8 %2339 to i1
  br i1 %2340, label %2341, label %2345

2341:                                             ; preds = %2335
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = call i32 @fileno(ptr noundef %2342) #12
  %2344 = call i32 @isatty(i32 noundef %2343) #12
  %.not351 = icmp eq i32 %2344, 0
  br i1 %.not351, label %2345, label %2346

2345:                                             ; preds = %2341, %2335
  br label %2346

2346:                                             ; preds = %2341, %2345
  %.str.34.sink1176 = phi ptr [ @.str.34, %2345 ], [ @.str.31, %2341 ]
  store i32 %2336, ptr %1375, align 4, !tbaa !5
  %2347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2348 = load i32, ptr @test_count, align 4, !tbaa !5
  %2349 = load i32, ptr %488, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef nonnull @.str.33) #12
  %2351 = load i32, ptr %488, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef nonnull @.str.33) #12
  %2353 = load i32, ptr %1375, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #12
  %2355 = load i32, ptr %1375, align 4, !tbaa !5
  %2356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2347, ptr noundef nonnull %.str.34.sink1176, i32 noundef %2348, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.30, i32 noundef 600, ptr noundef %2350, ptr noundef %2352, ptr noundef %2354, i32 noundef %2355) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2357:                                             ; preds = %2328
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = add nsw i32 %2358, 1
  store i32 %2359, ptr @test_count, align 4, !tbaa !5
  %2360 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %2361 = icmp eq i32 %2360, -1
  br i1 %2361, label %2384, label %2362

2362:                                             ; preds = %2357
  %2363 = load i32, ptr %1375, align 4, !tbaa !5
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = call i32 @s2n_print_stacktrace(ptr noundef %2364) #12
  %2366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2367 = trunc nuw i8 %2366 to i1
  br i1 %2367, label %2368, label %2372

2368:                                             ; preds = %2362
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = call i32 @fileno(ptr noundef %2369) #12
  %2371 = call i32 @isatty(i32 noundef %2370) #12
  %.not346 = icmp eq i32 %2371, 0
  br i1 %.not346, label %2372, label %2373

2372:                                             ; preds = %2368, %2362
  br label %2373

2373:                                             ; preds = %2368, %2372
  %.str.34.sink1185 = phi ptr [ @.str.34, %2372 ], [ @.str.31, %2368 ]
  store i32 %2363, ptr %1375, align 4, !tbaa !5
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = load i32, ptr %488, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror(i32 noundef %2376, ptr noundef nonnull @.str.33) #12
  %2378 = load i32, ptr %488, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror_debug(i32 noundef %2378, ptr noundef nonnull @.str.33) #12
  %2380 = load i32, ptr %1375, align 4, !tbaa !5
  %2381 = call ptr @strerror(i32 noundef %2380) #12
  %2382 = load i32, ptr %1375, align 4, !tbaa !5
  %2383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2374, ptr noundef nonnull %.str.34.sink1185, i32 noundef %2375, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.30, i32 noundef 603, ptr noundef %2377, ptr noundef %2379, ptr noundef %2381, i32 noundef %2382) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2384:                                             ; preds = %2357
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = add nsw i32 %2385, 1
  store i32 %2386, ptr @test_count, align 4, !tbaa !5
  %2387 = load i32, ptr %488, align 4, !tbaa !5
  %2388 = icmp eq i32 %2387, 402653193
  br i1 %2388, label %2411, label %2389

2389:                                             ; preds = %2384
  %2390 = load i32, ptr %1375, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @s2n_print_stacktrace(ptr noundef %2391) #12
  %2393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2394 = trunc nuw i8 %2393 to i1
  br i1 %2394, label %2395, label %2399

2395:                                             ; preds = %2389
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = call i32 @fileno(ptr noundef %2396) #12
  %2398 = call i32 @isatty(i32 noundef %2397) #12
  %.not347 = icmp eq i32 %2398, 0
  br i1 %.not347, label %2399, label %2400

2399:                                             ; preds = %2395, %2389
  br label %2400

2400:                                             ; preds = %2395, %2399
  %.str.34.sink1194 = phi ptr [ @.str.34, %2399 ], [ @.str.31, %2395 ]
  store i32 %2390, ptr %1375, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = load i32, ptr @test_count, align 4, !tbaa !5
  %2403 = load i32, ptr %488, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror(i32 noundef %2403, ptr noundef nonnull @.str.33) #12
  %2405 = load i32, ptr %488, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror_debug(i32 noundef %2405, ptr noundef nonnull @.str.33) #12
  %2407 = load i32, ptr %1375, align 4, !tbaa !5
  %2408 = call ptr @strerror(i32 noundef %2407) #12
  %2409 = load i32, ptr %1375, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2401, ptr noundef nonnull %.str.34.sink1194, i32 noundef %2402, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.30, i32 noundef 603, ptr noundef %2404, ptr noundef %2406, ptr noundef %2408, i32 noundef %2409) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2411:                                             ; preds = %2384
  %2412 = add nsw i32 %2385, 2
  store i32 %2412, ptr @test_count, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #12
  %2414 = icmp eq ptr %2413, null
  br i1 %2414, label %2415, label %2437

2415:                                             ; preds = %2411
  %2416 = load i32, ptr %1375, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @s2n_print_stacktrace(ptr noundef %2417) #12
  %2419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2420 = trunc nuw i8 %2419 to i1
  br i1 %2420, label %2421, label %2425

2421:                                             ; preds = %2415
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @fileno(ptr noundef %2422) #12
  %2424 = call i32 @isatty(i32 noundef %2423) #12
  %.not350 = icmp eq i32 %2424, 0
  br i1 %.not350, label %2425, label %2426

2425:                                             ; preds = %2421, %2415
  br label %2426

2426:                                             ; preds = %2421, %2425
  %.str.34.sink1203 = phi ptr [ @.str.34, %2425 ], [ @.str.31, %2421 ]
  store i32 %2416, ptr %1375, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = load i32, ptr @test_count, align 4, !tbaa !5
  %2429 = load i32, ptr %488, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror(i32 noundef %2429, ptr noundef nonnull @.str.33) #12
  %2431 = load i32, ptr %488, align 4, !tbaa !5
  %2432 = call ptr @s2n_strerror_debug(i32 noundef %2431, ptr noundef nonnull @.str.33) #12
  %2433 = load i32, ptr %1375, align 4, !tbaa !5
  %2434 = call ptr @strerror(i32 noundef %2433) #12
  %2435 = load i32, ptr %1375, align 4, !tbaa !5
  %2436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2427, ptr noundef nonnull %.str.34.sink1203, i32 noundef %2428, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.30, i32 noundef 603, ptr noundef %2430, ptr noundef %2432, ptr noundef %2434, i32 noundef %2435) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2437:                                             ; preds = %2411
  store i32 0, ptr %488, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1375, align 4, !tbaa !5
  %2438 = load ptr, ptr %8, align 8, !tbaa !15
  store ptr %2438, ptr %1945, align 8, !tbaa !80
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = add nsw i32 %2439, 1
  store i32 %2440, ptr @test_count, align 4, !tbaa !5
  %2441 = call i32 @s2n_tls13_compute_pq_hybrid_shared_secret(ptr noundef nonnull %1380, ptr noundef nonnull %76)
  %2442 = icmp eq i32 %2441, -1
  br i1 %2442, label %2443, label %2465

2443:                                             ; preds = %2437
  %2444 = load i32, ptr %1375, align 4, !tbaa !5
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @s2n_print_stacktrace(ptr noundef %2445) #12
  %2447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2448 = trunc nuw i8 %2447 to i1
  br i1 %2448, label %2449, label %2453

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

2453:                                             ; preds = %2449, %2443
  br label %2454

2454:                                             ; preds = %2449, %2453
  %.str.34.sink1212 = phi ptr [ @.str.34, %2453 ], [ @.str.31, %2449 ]
  store i32 %2444, ptr %1375, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = load i32, ptr %488, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef nonnull @.str.33) #12
  %2459 = load i32, ptr %488, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror_debug(i32 noundef %2459, ptr noundef nonnull @.str.33) #12
  %2461 = load i32, ptr %1375, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #12
  %2463 = load i32, ptr %1375, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2455, ptr noundef nonnull %.str.34.sink1212, i32 noundef %2456, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.30, i32 noundef 607, ptr noundef %2458, ptr noundef %2460, ptr noundef %2462, i32 noundef %2463) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2465:                                             ; preds = %2437
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = add nsw i32 %2466, 1
  store i32 %2467, ptr @test_count, align 4, !tbaa !5
  %2468 = call i32 @s2n_connection_free(ptr noundef nonnull %1380) #12
  %2469 = icmp eq i32 %2468, -1
  br i1 %2469, label %2470, label %2492

2470:                                             ; preds = %2465
  %2471 = load i32, ptr %1375, align 4, !tbaa !5
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @s2n_print_stacktrace(ptr noundef %2472) #12
  %2474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2475 = trunc nuw i8 %2474 to i1
  br i1 %2475, label %2476, label %2480

2476:                                             ; preds = %2470
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = call i32 @fileno(ptr noundef %2477) #12
  %2479 = call i32 @isatty(i32 noundef %2478) #12
  %.not348 = icmp eq i32 %2479, 0
  br i1 %.not348, label %2480, label %2481

2480:                                             ; preds = %2476, %2470
  br label %2481

2481:                                             ; preds = %2476, %2480
  %.str.34.sink1221 = phi ptr [ @.str.34, %2480 ], [ @.str.31, %2476 ]
  store i32 %2471, ptr %1375, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = load i32, ptr @test_count, align 4, !tbaa !5
  %2484 = load i32, ptr %488, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror(i32 noundef %2484, ptr noundef nonnull @.str.33) #12
  %2486 = load i32, ptr %488, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror_debug(i32 noundef %2486, ptr noundef nonnull @.str.33) #12
  %2488 = load i32, ptr %1375, align 4, !tbaa !5
  %2489 = call ptr @strerror(i32 noundef %2488) #12
  %2490 = load i32, ptr %1375, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2482, ptr noundef nonnull %.str.34.sink1221, i32 noundef %2483, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.30, i32 noundef 609, ptr noundef %2485, ptr noundef %2487, ptr noundef %2489, i32 noundef %2490) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2492:                                             ; preds = %2465
  %2493 = call i32 @s2n_free(ptr noundef nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %76) #12
  br i1 %1291, label %.preheader, label %1288, !llvm.loop !81

2494:                                             ; preds = %1288
  %2495 = load i32, ptr %1375, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = call i32 @s2n_print_stacktrace(ptr noundef %2496) #12
  %2498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2499 = trunc nuw i8 %2498 to i1
  br i1 %2499, label %2500, label %2504

2500:                                             ; preds = %2494
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @fileno(ptr noundef %2501) #12
  %2503 = call i32 @isatty(i32 noundef %2502) #12
  %.not323 = icmp eq i32 %2503, 0
  br i1 %.not323, label %2504, label %2505

2504:                                             ; preds = %2500, %2494
  br label %2505

2505:                                             ; preds = %2500, %2504
  %.str.34.sink1230 = phi ptr [ @.str.34, %2504 ], [ @.str.31, %2500 ]
  store i32 %2495, ptr %1375, align 4, !tbaa !5
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = load i32, ptr %488, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror(i32 noundef %2508, ptr noundef nonnull @.str.33) #12
  %2510 = load i32, ptr %488, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror_debug(i32 noundef %2510, ptr noundef nonnull @.str.33) #12
  %2512 = load i32, ptr %1375, align 4, !tbaa !5
  %2513 = call ptr @strerror(i32 noundef %2512) #12
  %2514 = load i32, ptr %1375, align 4, !tbaa !5
  %2515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2506, ptr noundef nonnull %.str.34.sink1230, i32 noundef %2507, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.30, i32 noundef 613, ptr noundef %2509, ptr noundef %2511, ptr noundef %2513, i32 noundef %2514) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2516:                                             ; preds = %1288
  %2517 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %2518 = icmp eq i32 %2517, -1
  br i1 %2518, label %2519, label %2541

2519:                                             ; preds = %2516
  %2520 = load i32, ptr %1375, align 4, !tbaa !5
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @s2n_print_stacktrace(ptr noundef %2521) #12
  %2523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2524 = trunc nuw i8 %2523 to i1
  br i1 %2524, label %2525, label %2529

2525:                                             ; preds = %2519
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = call i32 @fileno(ptr noundef %2526) #12
  %2528 = call i32 @isatty(i32 noundef %2527) #12
  %.not322 = icmp eq i32 %2528, 0
  br i1 %.not322, label %2529, label %2530

2529:                                             ; preds = %2525, %2519
  br label %2530

2530:                                             ; preds = %2525, %2529
  %.str.34.sink1239 = phi ptr [ @.str.34, %2529 ], [ @.str.31, %2525 ]
  store i32 %2520, ptr %1375, align 4, !tbaa !5
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = load i32, ptr %488, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror(i32 noundef %2533, ptr noundef nonnull @.str.33) #12
  %2535 = load i32, ptr %488, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror_debug(i32 noundef %2535, ptr noundef nonnull @.str.33) #12
  %2537 = load i32, ptr %1375, align 4, !tbaa !5
  %2538 = call ptr @strerror(i32 noundef %2537) #12
  %2539 = load i32, ptr %1375, align 4, !tbaa !5
  %2540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2531, ptr noundef nonnull %.str.34.sink1239, i32 noundef %2532, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.30, i32 noundef 613, ptr noundef %2534, ptr noundef %2536, ptr noundef %2538, i32 noundef %2539) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2541:                                             ; preds = %2516
  %2542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2543 = trunc nuw i8 %2542 to i1
  br i1 %2543, label %2544, label %2555

2544:                                             ; preds = %2541
  %2545 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2546 = call i32 @fileno(ptr noundef %2545) #12
  %2547 = call i32 @isatty(i32 noundef %2546) #12
  %.not319 = icmp eq i32 %2547, 0
  br i1 %.not319, label %2555, label %2548

2548:                                             ; preds = %2544
  %2549 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not321 = icmp eq i32 %2549, 0
  %2550 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not321, label %2553, label %2551

2551:                                             ; preds = %2548
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2550, ptr noundef nonnull @.str.138, i32 noundef %2549) #12
  br label %.thread392

2553:                                             ; preds = %2548
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2550, ptr noundef nonnull @.str.139) #12
  br label %.thread392

2555:                                             ; preds = %2544, %2541
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not320 = icmp eq i32 %2556, 0
  %2557 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not320, label %2560, label %2558

2558:                                             ; preds = %2555
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2557, ptr noundef nonnull @.str.140, i32 noundef %2556) #12
  br label %.thread392

2560:                                             ; preds = %2555
  %2561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2557, ptr noundef nonnull @.str.141) #12
  br label %.thread392

.thread392:                                       ; preds = %1283, %2553, %2551, %2560, %2558
  %.7 = phi i32 [ 0, %2558 ], [ 0, %2560 ], [ 0, %2551 ], [ 0, %2553 ], [ %.4, %1283 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %67) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %66) #12
  br label %2562

2562:                                             ; preds = %453, %.thread392
  %.8 = phi i32 [ %.7, %.thread392 ], [ -1, %453 ]
  %2563 = call i32 @s2n_free(ptr noundef nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65) #12
  br label %2564

2564:                                             ; preds = %442, %2562
  %.9 = phi i32 [ %.8, %2562 ], [ -1, %442 ]
  %2565 = call i32 @s2n_free(ptr noundef nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %63) #12
  br label %2566

2566:                                             ; preds = %439, %2564
  %.10 = phi i32 [ %.9, %2564 ], [ -1, %439 ]
  %2567 = call i32 @s2n_free(ptr noundef nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #12
  br label %2568

2568:                                             ; preds = %428, %2566
  %.11 = phi i32 [ %.10, %2566 ], [ -1, %428 ]
  %2569 = call i32 @s2n_free(ptr noundef nonnull %61) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %61) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %60) #12
  br label %2570

2570:                                             ; preds = %425, %2568
  %.12 = phi i32 [ %.11, %2568 ], [ -1, %425 ]
  %2571 = call i32 @s2n_free(ptr noundef nonnull %59) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #12
  br label %2572

2572:                                             ; preds = %414, %2570
  %.13 = phi i32 [ %.12, %2570 ], [ -1, %414 ]
  %2573 = call i32 @s2n_free(ptr noundef nonnull %58) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %57) #12
  br label %2574

2574:                                             ; preds = %411, %2572
  %.14 = phi i32 [ %.13, %2572 ], [ -1, %411 ]
  %2575 = call i32 @s2n_free(ptr noundef nonnull %56) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #12
  br label %2576

2576:                                             ; preds = %408, %2574
  %.15 = phi i32 [ %.14, %2574 ], [ -1, %408 ]
  %2577 = call i32 @s2n_free(ptr noundef nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #12
  br label %2578

2578:                                             ; preds = %405, %2576
  %.16 = phi i32 [ %.15, %2576 ], [ -1, %405 ]
  %2579 = call i32 @s2n_free(ptr noundef nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #12
  br label %2580

2580:                                             ; preds = %402, %2578
  %.17 = phi i32 [ %.16, %2578 ], [ -1, %402 ]
  %2581 = call i32 @s2n_free(ptr noundef nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #12
  br label %2582

2582:                                             ; preds = %391, %2580
  %.18 = phi i32 [ %.17, %2580 ], [ -1, %391 ]
  %2583 = call i32 @s2n_free(ptr noundef nonnull %52) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %51) #12
  br label %2584

2584:                                             ; preds = %388, %2582
  %.19 = phi i32 [ %.18, %2582 ], [ -1, %388 ]
  %2585 = call i32 @s2n_free(ptr noundef nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #12
  br label %2586

2586:                                             ; preds = %377, %2584
  %.20 = phi i32 [ %.19, %2584 ], [ -1, %377 ]
  %2587 = call i32 @s2n_free(ptr noundef nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %48) #12
  br label %2588

2588:                                             ; preds = %374, %2586
  %.21 = phi i32 [ %.20, %2586 ], [ -1, %374 ]
  %2589 = call i32 @s2n_free(ptr noundef nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %47) #12
  br label %2590

2590:                                             ; preds = %371, %2588
  %.22 = phi i32 [ %.21, %2588 ], [ -1, %371 ]
  %2591 = call i32 @s2n_free(ptr noundef nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #12
  br label %2592

2592:                                             ; preds = %360, %2590
  %.23 = phi i32 [ %.22, %2590 ], [ -1, %360 ]
  %2593 = call i32 @s2n_free(ptr noundef nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %44) #12
  br label %2594

2594:                                             ; preds = %357, %2592
  %.24 = phi i32 [ %.23, %2592 ], [ -1, %357 ]
  %2595 = call i32 @s2n_free(ptr noundef nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #12
  br label %2596

2596:                                             ; preds = %346, %2594
  %.25 = phi i32 [ %.24, %2594 ], [ -1, %346 ]
  %2597 = call i32 @s2n_free(ptr noundef nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %41) #12
  br label %2598

2598:                                             ; preds = %343, %2596
  %.26 = phi i32 [ %.25, %2596 ], [ -1, %343 ]
  %2599 = call i32 @s2n_free(ptr noundef nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #12
  br label %2600

2600:                                             ; preds = %332, %2598
  %.27 = phi i32 [ %.26, %2598 ], [ -1, %332 ]
  %2601 = call i32 @s2n_free(ptr noundef nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %38) #12
  br label %2602

2602:                                             ; preds = %329, %2600
  %.28 = phi i32 [ %.27, %2600 ], [ -1, %329 ]
  %2603 = call i32 @s2n_free(ptr noundef nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #12
  br label %2604

2604:                                             ; preds = %318, %2602
  %.29 = phi i32 [ %.28, %2602 ], [ -1, %318 ]
  %2605 = call i32 @s2n_free(ptr noundef nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %35) #12
  br label %2606

2606:                                             ; preds = %315, %2604
  %.30 = phi i32 [ %.29, %2604 ], [ -1, %315 ]
  %2607 = call i32 @s2n_free(ptr noundef nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #12
  br label %2608

2608:                                             ; preds = %304, %2606
  %.31 = phi i32 [ %.30, %2606 ], [ -1, %304 ]
  %2609 = call i32 @s2n_free(ptr noundef nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %32) #12
  br label %2610

2610:                                             ; preds = %301, %2608
  %.32 = phi i32 [ %.31, %2608 ], [ -1, %301 ]
  %2611 = call i32 @s2n_free(ptr noundef nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #12
  br label %2612

2612:                                             ; preds = %290, %2610
  %.33 = phi i32 [ %.32, %2610 ], [ -1, %290 ]
  %2613 = call i32 @s2n_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %29) #12
  br label %2614

2614:                                             ; preds = %287, %2612
  %.34 = phi i32 [ %.33, %2612 ], [ -1, %287 ]
  %2615 = call i32 @s2n_free(ptr noundef nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #12
  br label %2616

2616:                                             ; preds = %284, %2614
  %.35 = phi i32 [ %.34, %2614 ], [ -1, %284 ]
  %2617 = call i32 @s2n_free(ptr noundef nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #12
  br label %2618

2618:                                             ; preds = %281, %2616
  %.36 = phi i32 [ %.35, %2616 ], [ -1, %281 ]
  %2619 = call i32 @s2n_free(ptr noundef nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #12
  br label %2620

2620:                                             ; preds = %278, %2618
  %.37 = phi i32 [ %.36, %2618 ], [ -1, %278 ]
  %2621 = call i32 @s2n_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  br label %2622

2622:                                             ; preds = %275, %2620
  %.38 = phi i32 [ %.37, %2620 ], [ -1, %275 ]
  %2623 = call i32 @s2n_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #12
  br label %2624

2624:                                             ; preds = %272, %2622
  %.39 = phi i32 [ %.38, %2622 ], [ -1, %272 ]
  %2625 = call i32 @s2n_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #12
  br label %2626

2626:                                             ; preds = %269, %2624
  %.40 = phi i32 [ %.39, %2624 ], [ -1, %269 ]
  %2627 = call i32 @s2n_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #12
  br label %2628

2628:                                             ; preds = %266, %2626
  %.41 = phi i32 [ %.40, %2626 ], [ -1, %266 ]
  %2629 = call i32 @s2n_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #12
  br label %2630

2630:                                             ; preds = %255, %2628
  %.42 = phi i32 [ %.41, %2628 ], [ -1, %255 ]
  %2631 = call i32 @s2n_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %19) #12
  br label %2632

2632:                                             ; preds = %252, %2630
  %.43 = phi i32 [ %.42, %2630 ], [ -1, %252 ]
  %2633 = call i32 @s2n_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #12
  br label %2634

2634:                                             ; preds = %241, %2632
  %.44 = phi i32 [ %.43, %2632 ], [ -1, %241 ]
  %2635 = call i32 @s2n_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) #12
  br label %2636

2636:                                             ; preds = %238, %2634
  %.45 = phi i32 [ %.44, %2634 ], [ -1, %238 ]
  %2637 = call i32 @s2n_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #12
  br label %2638

2638:                                             ; preds = %235, %2636
  %.46 = phi i32 [ %.45, %2636 ], [ -1, %235 ]
  %2639 = call i32 @s2n_free(ptr noundef nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  br label %2640

2640:                                             ; preds = %232, %2638
  %.47 = phi i32 [ %.46, %2638 ], [ -1, %232 ]
  %2641 = call i32 @s2n_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #12
  br label %2642

2642:                                             ; preds = %221, %2640
  %.48 = phi i32 [ %.47, %2640 ], [ -1, %221 ]
  %2643 = call i32 @s2n_free(ptr noundef nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %11) #12
  br label %2644

2644:                                             ; preds = %218, %2642
  %.49 = phi i32 [ %.48, %2642 ], [ -1, %218 ]
  %2645 = call i32 @s2n_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  br label %2646

2646:                                             ; preds = %207, %2644
  %.50 = phi i32 [ %.49, %2644 ], [ -1, %207 ]
  %2647 = call i32 @s2n_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %8) #12
  br label %2648

2648:                                             ; preds = %204, %2646
  %.51 = phi i32 [ %.50, %2646 ], [ -1, %204 ]
  %2649 = call i32 @s2n_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  br label %2650

2650:                                             ; preds = %201, %2648
  %.52 = phi i32 [ %.51, %2648 ], [ -1, %201 ]
  %2651 = call i32 @s2n_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #12
  br label %2652

2652:                                             ; preds = %198, %2650
  %.53 = phi i32 [ %.52, %2650 ], [ -1, %198 ]
  %2653 = call i32 @s2n_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  br label %2654

2654:                                             ; preds = %195, %2652
  %.54 = phi i32 [ %.53, %2652 ], [ -1, %195 ]
  %2655 = call i32 @s2n_free(ptr noundef nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  br label %2656

2656:                                             ; preds = %192, %2654
  %.55 = phi i32 [ %.54, %2654 ], [ -1, %192 ]
  %2657 = call i32 @s2n_free(ptr noundef nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #12
  ret i32 %.55
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #7

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #7

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #8

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #9

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #7

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #9

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #10

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_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @set_up_conns(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare hidden i32 @assert_kem_group_params_freed(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_hash_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_new(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_init(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_hash_update(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_conn_get_current_message_type(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_derive_secret(ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @read_priv_ecc(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_ecc_evp_params_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_dup(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 #11

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { 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 #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 = { 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 #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { 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 #9 = { 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 #10 = { 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 #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }
attributes #16 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 0}
!16 = !{!"hybrid_test_vector", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64}
!17 = !{!16, !10, i64 8}
!18 = !{!16, !10, i64 16}
!19 = !{!16, !10, i64 24}
!20 = !{!16, !10, i64 32}
!21 = !{!16, !10, i64 40}
!22 = !{!16, !10, i64 48}
!23 = !{!16, !10, i64 56}
!24 = !{!16, !10, i64 64}
!25 = !{!26, !10, i64 16}
!26 = !{!"s2n_kem_group", !10, i64 0, !27, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!27 = !{!"short", !7, i64 0}
!28 = !{!29, !10, i64 8}
!29 = !{!"s2n_ecc_named_curve", !27, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!30 = !{!31, !6, i64 8}
!31 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!32 = !{!31, !10, i64 0}
!33 = !{!34, !6, i64 96}
!34 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!35 = !{!36, !10, i64 232}
!36 = !{!"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, !37, i64 160, !38, i64 168, !38, 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, !39, i64 240, !10, i64 632, !10, i64 640, !40, i64 648, !45, i64 1144, !48, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !50, i64 1776, !50, i64 1816, !50, i64 1856, !50, i64 1896, !6, i64 1936, !38, i64 1944, !7, i64 1952, !50, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !51, i64 2004, !51, i64 2008, !52, i64 2016, !27, i64 2208, !6, i64 2212, !27, i64 2216, !38, i64 2224, !7, i64 2232, !38, i64 2240, !38, i64 2248, !38, i64 2256, !51, i64 2264, !51, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !31, i64 2792, !6, i64 2816, !31, i64 2824, !31, i64 2848, !31, i64 2872, !54, i64 2896, !56, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !31, i64 3784, !6, i64 3808, !58, i64 3816, !7, i64 3848, !50, i64 3992, !31, i64 4032, !31, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !27, i64 4084, !27, i64 4086, !6, i64 4088, !6, i64 4092, !31, i64 4096, !6, i64 4120, !59, i64 4128, !51, i64 4176, !7, i64 4180, !7, i64 4181}
!37 = !{!"s2n_timer", !38, i64 0}
!38 = !{!"long", !7, i64 0}
!39 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!40 = !{!"s2n_kex_parameters", !41, i64 0, !42, i64 8, !7, i64 24, !42, i64 56, !43, i64 72, !43, i64 184, !7, i64 296, !44, i64 360, !31, i64 448, !31, i64 472}
!41 = !{!"s2n_dh_params", !10, i64 0}
!42 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!43 = !{!"s2n_kem_group_params", !10, i64 0, !44, i64 8, !42, i64 96}
!44 = !{!"s2n_kem_params", !10, i64 0, !31, i64 8, !31, i64 32, !31, i64 56, !12, i64 80}
!45 = !{!"s2n_handshake_parameters", !46, i64 0, !46, i64 48, !31, i64 96, !6, i64 120, !47, 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}
!46 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!47 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!48 = !{!"s2n_psk_parameters", !6, i64 0, !49, i64 8, !27, i64 40, !27, i64 42, !10, i64 48, !6, i64 56}
!49 = !{!"s2n_array", !31, i64 0, !6, i64 24, !6, i64 28}
!50 = !{!"s2n_stuffer", !31, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!51 = !{!"", !6, i64 0}
!52 = !{!"s2n_handshake", !50, 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, !53, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!53 = !{!"s2n_offered_early_data", !10, i64 0}
!54 = !{!"s2n_client_hello", !31, i64 0, !55, i64 24, !31, i64 728, !31, i64 752, !31, 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}
!55 = !{!"", !7, i64 0, !31, i64 672, !27, i64 696}
!56 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !27, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !57, i64 48, !12, i64 52}
!57 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!58 = !{!"s2n_ticket_fields", !31, i64 0, !6, i64 24}
!59 = !{!"s2n_post_handshake", !50, i64 0, !7, i64 40}
!60 = !{!61, !10, i64 0}
!61 = !{!"s2n_crypto_parameters", !10, i64 0, !62, i64 8, !62, i64 16, !63, i64 24, !63, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!62 = !{!"s2n_session_key", !10, i64 0}
!63 = !{!"s2n_hmac_state", !6, i64 0, !27, i64 4, !6, i64 8, !27, i64 12, !7, i64 14, !64, i64 16, !64, i64 72, !64, i64 128, !64, i64 184, !7, i64 240, !7, i64 368}
!64 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !38, i64 16, !7, i64 24}
!65 = !{!66, !6, i64 4}
!66 = !{!"s2n_tls13_keys", !6, i64 0, !6, i64 4, !7, i64 8, !31, i64 16, !31, i64 40, !7, i64 64, !7, i64 112, !63, i64 160}
!67 = !{!36, !10, i64 2056}
!68 = !{!66, !7, i64 8}
!69 = !{!36, !6, i64 2172}
!70 = !{!36, !6, i64 2176}
!71 = distinct !{!71, !72}
!72 = !{!"llvm.loop.mustprogress"}
!73 = !{!74, !10, i64 0}
!74 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!75 = !{!74, !10, i64 8}
!76 = distinct !{!76, !72}
!77 = !{!36, !10, i64 656}
!78 = !{!36, !10, i64 816}
!79 = !{!36, !10, i64 928}
!80 = !{!36, !10, i64 720}
!81 = distinct !{!81, !72}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass