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

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

%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_debug_info = type { ptr, ptr }
%struct.client_hello_context = type { i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%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.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_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_ecc_preferences = type { i8, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [86 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [92 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.28 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [56 x i8], align 1
@stdout = external global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [86 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_all_supported_curves_list = external constant [0 x ptr], align 8
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [86 x i8], align 1
@hello_retry_req_random = external global [32 x i8], align 16
@.str.56 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [79 x i8], align 1
@s2n_server_key_share_extension = external constant %struct.s2n_extension_type, align 8
@.str.81 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [111 x i8], align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@.str.84 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [393 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [77 x i8], align 1
@__const.main.client_hello_ctx = external hidden unnamed_addr constant %struct.client_hello_context, align 4
@.str.133 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.147 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [56 x i8], align 1

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #1

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #3

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #3

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #3

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

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

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

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #3

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #5

declare void @s2n_debug_info_reset() #2

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @hello_retry_client_hello_cb_test() #6

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

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

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

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_io_pair_close(ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #6 {
  %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 i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.s2n_result, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca [32 x i8], align 16
  %57 = alloca i32, align 4
  %58 = alloca [32 x i8], align 16
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca ptr, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i16, align 2
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i16, align 2
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca ptr, align 8
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca ptr, align 8
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_blob, align 8
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca %struct.s2n_blob, align 8
  %113 = alloca %struct.s2n_result, align 4
  %114 = alloca %struct.s2n_blob, align 8
  %115 = alloca %struct.s2n_result, align 4
  %116 = alloca i32, align 4
  %117 = alloca %struct.s2n_tls13_keys, align 8
  %118 = alloca i8, align 1
  %119 = alloca %struct.s2n_blob, align 8
  %120 = alloca %struct.s2n_hash_state, align 8
  %121 = alloca i32, align 4
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca [64 x i8], align 16
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_hash_state, align 8
  %130 = alloca [64 x i8], align 16
  %131 = alloca i32, align 4
  %132 = alloca %struct.s2n_result, align 4
  %133 = alloca i32, align 4
  %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 ptr, align 8
  %140 = alloca ptr, align 8
  %141 = alloca ptr, align 8
  %142 = alloca ptr, align 8
  %143 = alloca ptr, align 8
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca %struct.client_hello_context, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca ptr, align 8
  %182 = alloca ptr, align 8
  %183 = alloca ptr, align 8
  %184 = alloca ptr, align 8
  %185 = alloca ptr, align 8
  %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 %struct.s2n_test_io_pair, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca %struct.client_hello_context, 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
  %217 = alloca %struct.s2n_result, align 4
  %218 = alloca i32, align 4
  %219 = alloca ptr, align 8
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca ptr, align 8
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca ptr, align 8
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca ptr, align 8
  %236 = alloca ptr, align 8
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca ptr, align 8
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = 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 %257

257:                                              ; preds = %2
  br label %258

258:                                              ; preds = %257
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %259 = load ptr, ptr @stdout, align 8, !tbaa !9
  %260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %259, ptr noundef @.str.32, ptr noundef @.str.2) #12
  %261 = load ptr, ptr @stdout, align 8, !tbaa !9
  %262 = call i32 @fflush(ptr noundef %261)
  br label %263

263:                                              ; preds = %258
  %264 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %265 = icmp eq i32 %264, -1
  br i1 %265, label %266, label %317

266:                                              ; preds = %263
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #12
  %269 = call ptr @__errno_location() #13
  %270 = load i32, ptr %269, align 4, !tbaa !5
  store i32 %270, ptr %6, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = call i32 @s2n_print_stacktrace(ptr noundef %271)
  %273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %274 = trunc i8 %273 to i1
  br i1 %274, label %275, label %297

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @fileno(ptr noundef %276) #12
  %278 = call i32 @isatty(i32 noundef %277) #12
  %279 = icmp ne i32 %278, 0
  br i1 %279, label %280, label %297

280:                                              ; preds = %275
  %281 = load i32, ptr %6, align 4, !tbaa !5
  %282 = call ptr @__errno_location() #13
  store i32 %281, ptr %282, align 4, !tbaa !5
  %283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %284 = load i32, ptr @test_count, align 4, !tbaa !5
  %285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror(i32 noundef %286, ptr noundef @.str.3)
  %288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror_debug(i32 noundef %289, ptr noundef @.str.3)
  %291 = call ptr @__errno_location() #13
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call ptr @strerror(i32 noundef %292) #12
  %294 = call ptr @__errno_location() #13
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %283, ptr noundef @.str, i32 noundef %284, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 150, ptr noundef %287, ptr noundef %290, ptr noundef %293, i32 noundef %295) #12
  br label %314

297:                                              ; preds = %275, %268
  %298 = load i32, ptr %6, align 4, !tbaa !5
  %299 = call ptr @__errno_location() #13
  store i32 %298, ptr %299, align 4, !tbaa !5
  %300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %301 = load i32, ptr @test_count, align 4, !tbaa !5
  %302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = call ptr @s2n_strerror(i32 noundef %303, ptr noundef @.str.3)
  %305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror_debug(i32 noundef %306, ptr noundef @.str.3)
  %308 = call ptr @__errno_location() #13
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call ptr @strerror(i32 noundef %309) #12
  %311 = call ptr @__errno_location() #13
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %300, ptr noundef @.str.4, i32 noundef %301, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 150, ptr noundef %304, ptr noundef %307, ptr noundef %310, i32 noundef %312) #12
  br label %314

314:                                              ; preds = %297, %280
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  br label %315

315:                                              ; preds = %314
  call void @exit(i32 noundef 1) #14
  unreachable

316:                                              ; No predecessors!
  br label %317

317:                                              ; preds = %316, %263
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318
  %320 = load i32, ptr @test_count, align 4, !tbaa !5
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr @test_count, align 4, !tbaa !5
  %322 = call i32 @s2n_enable_atexit()
  %323 = icmp eq i32 %322, -1
  br i1 %323, label %324, label %375

324:                                              ; preds = %319
  br label %325

325:                                              ; preds = %324
  br label %326

326:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #12
  %327 = call ptr @__errno_location() #13
  %328 = load i32, ptr %327, align 4, !tbaa !5
  store i32 %328, ptr %7, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = call i32 @s2n_print_stacktrace(ptr noundef %329)
  %331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %332 = trunc i8 %331 to i1
  br i1 %332, label %333, label %355

333:                                              ; preds = %326
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = call i32 @fileno(ptr noundef %334) #12
  %336 = call i32 @isatty(i32 noundef %335) #12
  %337 = icmp ne i32 %336, 0
  br i1 %337, label %338, label %355

338:                                              ; preds = %333
  %339 = load i32, ptr %7, align 4, !tbaa !5
  %340 = call ptr @__errno_location() #13
  store i32 %339, ptr %340, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror(i32 noundef %344, ptr noundef @.str.3)
  %346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror_debug(i32 noundef %347, ptr noundef @.str.3)
  %349 = call ptr @__errno_location() #13
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call ptr @strerror(i32 noundef %350) #12
  %352 = call ptr @__errno_location() #13
  %353 = load i32, ptr %352, align 4, !tbaa !5
  %354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef @.str, i32 noundef %342, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 150, ptr noundef %345, ptr noundef %348, ptr noundef %351, i32 noundef %353) #12
  br label %372

355:                                              ; preds = %333, %326
  %356 = load i32, ptr %7, align 4, !tbaa !5
  %357 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %366 = call ptr @__errno_location() #13
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @strerror(i32 noundef %367) #12
  %369 = call ptr @__errno_location() #13
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef @.str.4, i32 noundef %359, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 150, ptr noundef %362, ptr noundef %365, ptr noundef %368, i32 noundef %370) #12
  br label %372

372:                                              ; preds = %355, %338
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #12
  br label %373

373:                                              ; preds = %372
  call void @exit(i32 noundef 1) #14
  unreachable

374:                                              ; No predecessors!
  br label %375

375:                                              ; preds = %374, %319
  br label %376

376:                                              ; preds = %375
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377
  %379 = call i32 @s2n_init()
  %380 = icmp eq i32 %379, -1
  br i1 %380, label %381, label %432

381:                                              ; preds = %378
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #12
  %384 = call ptr @__errno_location() #13
  %385 = load i32, ptr %384, align 4, !tbaa !5
  store i32 %385, ptr %8, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = call i32 @s2n_print_stacktrace(ptr noundef %386)
  %388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %389 = trunc i8 %388 to i1
  br i1 %389, label %390, label %412

390:                                              ; preds = %383
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = call i32 @fileno(ptr noundef %391) #12
  %393 = call i32 @isatty(i32 noundef %392) #12
  %394 = icmp ne i32 %393, 0
  br i1 %394, label %395, label %412

395:                                              ; preds = %390
  %396 = load i32, ptr %8, align 4, !tbaa !5
  %397 = call ptr @__errno_location() #13
  store i32 %396, ptr %397, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = call ptr @s2n_strerror(i32 noundef %401, ptr noundef @.str.3)
  %403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror_debug(i32 noundef %404, ptr noundef @.str.3)
  %406 = call ptr @__errno_location() #13
  %407 = load i32, ptr %406, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #12
  %409 = call ptr @__errno_location() #13
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %398, ptr noundef @.str, i32 noundef %399, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 150, ptr noundef %402, ptr noundef %405, ptr noundef %408, i32 noundef %410) #12
  br label %429

412:                                              ; preds = %390, %383
  %413 = load i32, ptr %8, align 4, !tbaa !5
  %414 = call ptr @__errno_location() #13
  store i32 %413, ptr %414, align 4, !tbaa !5
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror(i32 noundef %418, ptr noundef @.str.3)
  %420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror_debug(i32 noundef %421, ptr noundef @.str.3)
  %423 = call ptr @__errno_location() #13
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call ptr @strerror(i32 noundef %424) #12
  %426 = call ptr @__errno_location() #13
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef @.str.4, i32 noundef %416, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 150, ptr noundef %419, ptr noundef %422, ptr noundef %425, i32 noundef %427) #12
  br label %429

429:                                              ; preds = %412, %395
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #12
  br label %430

430:                                              ; preds = %429
  call void @exit(i32 noundef 1) #14
  unreachable

431:                                              ; No predecessors!
  br label %432

432:                                              ; preds = %431, %378
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  %435 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %435, label %583, label %436

436:                                              ; preds = %434
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  %439 = call i32 @s2n_cleanup()
  %440 = icmp eq i32 %439, -1
  br i1 %440, label %441, label %492

441:                                              ; preds = %438
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #12
  %444 = call ptr @__errno_location() #13
  %445 = load i32, ptr %444, align 4, !tbaa !5
  store i32 %445, ptr %9, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @s2n_print_stacktrace(ptr noundef %446)
  %448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %449 = trunc i8 %448 to i1
  br i1 %449, label %450, label %472

450:                                              ; preds = %443
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @fileno(ptr noundef %451) #12
  %453 = call i32 @isatty(i32 noundef %452) #12
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %455, label %472

455:                                              ; preds = %450
  %456 = load i32, ptr %9, align 4, !tbaa !5
  %457 = call ptr @__errno_location() #13
  store i32 %456, ptr %457, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror(i32 noundef %461, ptr noundef @.str.3)
  %463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef @.str.3)
  %466 = call ptr @__errno_location() #13
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @strerror(i32 noundef %467) #12
  %469 = call ptr @__errno_location() #13
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef @.str, i32 noundef %459, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 153, ptr noundef %462, ptr noundef %465, ptr noundef %468, i32 noundef %470) #12
  br label %489

472:                                              ; preds = %450, %443
  %473 = load i32, ptr %9, align 4, !tbaa !5
  %474 = call ptr @__errno_location() #13
  store i32 %473, ptr %474, align 4, !tbaa !5
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef @.str.3)
  %480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror_debug(i32 noundef %481, ptr noundef @.str.3)
  %483 = call ptr @__errno_location() #13
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @strerror(i32 noundef %484) #12
  %486 = call ptr @__errno_location() #13
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %475, ptr noundef @.str.4, i32 noundef %476, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 153, ptr noundef %479, ptr noundef %482, ptr noundef %485, i32 noundef %487) #12
  br label %489

489:                                              ; preds = %472, %455
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #12
  br label %490

490:                                              ; preds = %489
  call void @exit(i32 noundef 1) #14
  unreachable

491:                                              ; No predecessors!
  br label %492

492:                                              ; preds = %491, %438
  br label %493

493:                                              ; preds = %492
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  %496 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %497 = icmp eq i32 %496, -1
  br i1 %497, label %498, label %549

498:                                              ; preds = %495
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #12
  %501 = call ptr @__errno_location() #13
  %502 = load i32, ptr %501, align 4, !tbaa !5
  store i32 %502, ptr %10, align 4, !tbaa !5
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = call i32 @s2n_print_stacktrace(ptr noundef %503)
  %505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %506 = trunc i8 %505 to i1
  br i1 %506, label %507, label %529

507:                                              ; preds = %500
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @fileno(ptr noundef %508) #12
  %510 = call i32 @isatty(i32 noundef %509) #12
  %511 = icmp ne i32 %510, 0
  br i1 %511, label %512, label %529

512:                                              ; preds = %507
  %513 = load i32, ptr %10, align 4, !tbaa !5
  %514 = call ptr @__errno_location() #13
  store i32 %513, ptr %514, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = load i32, ptr @test_count, align 4, !tbaa !5
  %517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call ptr @s2n_strerror(i32 noundef %518, ptr noundef @.str.3)
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror_debug(i32 noundef %521, ptr noundef @.str.3)
  %523 = call ptr @__errno_location() #13
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @strerror(i32 noundef %524) #12
  %526 = call ptr @__errno_location() #13
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %515, ptr noundef @.str, i32 noundef %516, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 153, ptr noundef %519, ptr noundef %522, ptr noundef %525, i32 noundef %527) #12
  br label %546

529:                                              ; preds = %507, %500
  %530 = load i32, ptr %10, align 4, !tbaa !5
  %531 = call ptr @__errno_location() #13
  store i32 %530, ptr %531, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = load i32, ptr @test_count, align 4, !tbaa !5
  %534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror(i32 noundef %535, ptr noundef @.str.3)
  %537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror_debug(i32 noundef %538, ptr noundef @.str.3)
  %540 = call ptr @__errno_location() #13
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @strerror(i32 noundef %541) #12
  %543 = call ptr @__errno_location() #13
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %532, ptr noundef @.str.4, i32 noundef %533, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 153, ptr noundef %536, ptr noundef %539, ptr noundef %542, i32 noundef %544) #12
  br label %546

546:                                              ; preds = %529, %512
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #12
  br label %547

547:                                              ; preds = %546
  call void @exit(i32 noundef 1) #14
  unreachable

548:                                              ; No predecessors!
  br label %549

549:                                              ; preds = %548, %495
  br label %550

550:                                              ; preds = %549
  %551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %552 = trunc i8 %551 to i1
  br i1 %552, label %553, label %569

553:                                              ; preds = %550
  %554 = load ptr, ptr @stdout, align 8, !tbaa !9
  %555 = call i32 @fileno(ptr noundef %554) #12
  %556 = call i32 @isatty(i32 noundef %555) #12
  %557 = icmp ne i32 %556, 0
  br i1 %557, label %558, label %569

558:                                              ; preds = %553
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = icmp ne i32 %559, 0
  br i1 %560, label %561, label %565

561:                                              ; preds = %558
  %562 = load ptr, ptr @stdout, align 8, !tbaa !9
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef @.str.38, i32 noundef %563) #12
  br label %568

565:                                              ; preds = %558
  %566 = load ptr, ptr @stdout, align 8, !tbaa !9
  %567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef @.str.39) #12
  br label %568

568:                                              ; preds = %565, %561
  br label %580

569:                                              ; preds = %553, %550
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = icmp ne i32 %570, 0
  br i1 %571, label %572, label %576

572:                                              ; preds = %569
  %573 = load ptr, ptr @stdout, align 8, !tbaa !9
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %573, ptr noundef @.str.40, i32 noundef %574) #12
  br label %579

576:                                              ; preds = %569
  %577 = load ptr, ptr @stdout, align 8, !tbaa !9
  %578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef @.str.41) #12
  br label %579

579:                                              ; preds = %576, %572
  br label %580

580:                                              ; preds = %579, %568
  store i32 0, ptr %3, align 4
  br label %12562

581:                                              ; No predecessors!
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582, %434
  br label %584

584:                                              ; preds = %583
  %585 = load i32, ptr @test_count, align 4, !tbaa !5
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr @test_count, align 4, !tbaa !5
  %587 = call i32 (...) @s2n_enable_tls13_in_test()
  %588 = icmp eq i32 %587, -1
  br i1 %588, label %589, label %640

589:                                              ; preds = %584
  br label %590

590:                                              ; preds = %589
  br label %591

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #12
  %592 = call ptr @__errno_location() #13
  %593 = load i32, ptr %592, align 4, !tbaa !5
  store i32 %593, ptr %11, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @s2n_print_stacktrace(ptr noundef %594)
  %596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %597 = trunc i8 %596 to i1
  br i1 %597, label %598, label %620

598:                                              ; preds = %591
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @fileno(ptr noundef %599) #12
  %601 = call i32 @isatty(i32 noundef %600) #12
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %603, label %620

603:                                              ; preds = %598
  %604 = load i32, ptr %11, align 4, !tbaa !5
  %605 = call ptr @__errno_location() #13
  store i32 %604, ptr %605, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror(i32 noundef %609, ptr noundef @.str.3)
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef @.str.3)
  %614 = call ptr @__errno_location() #13
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @strerror(i32 noundef %615) #12
  %617 = call ptr @__errno_location() #13
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef @.str, i32 noundef %607, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 156, ptr noundef %610, ptr noundef %613, ptr noundef %616, i32 noundef %618) #12
  br label %637

620:                                              ; preds = %598, %591
  %621 = load i32, ptr %11, align 4, !tbaa !5
  %622 = call ptr @__errno_location() #13
  store i32 %621, ptr %622, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @s2n_strerror(i32 noundef %626, ptr noundef @.str.3)
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef @.str.3)
  %631 = call ptr @__errno_location() #13
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @strerror(i32 noundef %632) #12
  %634 = call ptr @__errno_location() #13
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef @.str.4, i32 noundef %624, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 156, ptr noundef %627, ptr noundef %630, ptr noundef %633, i32 noundef %635) #12
  br label %637

637:                                              ; preds = %620, %603
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #12
  br label %638

638:                                              ; preds = %637
  call void @exit(i32 noundef 1) #14
  unreachable

639:                                              ; No predecessors!
  br label %640

640:                                              ; preds = %639, %584
  br label %641

641:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #12
  store ptr null, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #12
  store ptr null, ptr %13, align 8, !tbaa !9
  br label %642

642:                                              ; preds = %641
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr @test_count, align 4, !tbaa !5
  %645 = call ptr @s2n_config_new()
  store ptr %645, ptr %12, align 8, !tbaa !9
  %646 = icmp eq ptr %645, null
  br i1 %646, label %647, label %700

647:                                              ; preds = %642
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #12
  %650 = call ptr @__errno_location() #13
  %651 = load i32, ptr %650, align 4, !tbaa !5
  store i32 %651, ptr %14, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @s2n_print_stacktrace(ptr noundef %652)
  %654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %655 = trunc i8 %654 to i1
  br i1 %655, label %656, label %678

656:                                              ; preds = %649
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @fileno(ptr noundef %657) #12
  %659 = call i32 @isatty(i32 noundef %658) #12
  %660 = icmp ne i32 %659, 0
  br i1 %660, label %661, label %678

661:                                              ; preds = %656
  %662 = load i32, ptr %14, align 4, !tbaa !5
  %663 = call ptr @__errno_location() #13
  store i32 %662, ptr %663, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef @.str.3)
  %669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror_debug(i32 noundef %670, ptr noundef @.str.3)
  %672 = call ptr @__errno_location() #13
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #12
  %675 = call ptr @__errno_location() #13
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %664, ptr noundef @.str, i32 noundef %665, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 163, ptr noundef %668, ptr noundef %671, ptr noundef %674, i32 noundef %676) #12
  br label %695

678:                                              ; preds = %656, %649
  %679 = load i32, ptr %14, align 4, !tbaa !5
  %680 = call ptr @__errno_location() #13
  store i32 %679, ptr %680, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror(i32 noundef %684, ptr noundef @.str.3)
  %686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef %687, ptr noundef @.str.3)
  %689 = call ptr @__errno_location() #13
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @strerror(i32 noundef %690) #12
  %692 = call ptr @__errno_location() #13
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %681, ptr noundef @.str.4, i32 noundef %682, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 163, ptr noundef %685, ptr noundef %688, ptr noundef %691, i32 noundef %693) #12
  br label %695

695:                                              ; preds = %678, %661
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #12
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696
  call void @exit(i32 noundef 1) #14
  unreachable

698:                                              ; No predecessors!
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699, %642
  br label %701

701:                                              ; preds = %700
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = add nsw i32 %704, 1
  store i32 %705, ptr @test_count, align 4, !tbaa !5
  %706 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %706, ptr %13, align 8, !tbaa !9
  %707 = icmp eq ptr %706, null
  br i1 %707, label %708, label %761

708:                                              ; preds = %703
  br label %709

709:                                              ; preds = %708
  br label %710

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

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

722:                                              ; preds = %717
  %723 = load i32, ptr %15, align 4, !tbaa !5
  %724 = call ptr @__errno_location() #13
  store i32 %723, ptr %724, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror(i32 noundef %728, ptr noundef @.str.3)
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef @.str.3)
  %733 = call ptr @__errno_location() #13
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #12
  %736 = call ptr @__errno_location() #13
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef @.str, i32 noundef %726, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 164, ptr noundef %729, ptr noundef %732, ptr noundef %735, i32 noundef %737) #12
  br label %756

739:                                              ; preds = %717, %710
  %740 = load i32, ptr %15, align 4, !tbaa !5
  %741 = call ptr @__errno_location() #13
  store i32 %740, ptr %741, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror(i32 noundef %745, ptr noundef @.str.3)
  %747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror_debug(i32 noundef %748, ptr noundef @.str.3)
  %750 = call ptr @__errno_location() #13
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @strerror(i32 noundef %751) #12
  %753 = call ptr @__errno_location() #13
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef @.str.4, i32 noundef %743, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 164, ptr noundef %746, ptr noundef %749, ptr noundef %752, i32 noundef %754) #12
  br label %756

756:                                              ; preds = %739, %722
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  br label %757

757:                                              ; preds = %756
  br label %758

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

759:                                              ; No predecessors!
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760, %703
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  br label %764

764:                                              ; preds = %763
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = load ptr, ptr %13, align 8, !tbaa !9
  %768 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %767)
  %769 = icmp eq i32 %768, -1
  br i1 %769, label %770, label %823

770:                                              ; preds = %764
  br label %771

771:                                              ; preds = %770
  br label %772

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

779:                                              ; preds = %772
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = call i32 @fileno(ptr noundef %780) #12
  %782 = call i32 @isatty(i32 noundef %781) #12
  %783 = icmp ne i32 %782, 0
  br i1 %783, label %784, label %801

784:                                              ; preds = %779
  %785 = load i32, ptr %16, align 4, !tbaa !5
  %786 = call ptr @__errno_location() #13
  store i32 %785, ptr %786, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef @.str.3)
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef @.str.3)
  %795 = call ptr @__errno_location() #13
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @strerror(i32 noundef %796) #12
  %798 = call ptr @__errno_location() #13
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef @.str, i32 noundef %788, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 165, ptr noundef %791, ptr noundef %794, ptr noundef %797, i32 noundef %799) #12
  br label %818

801:                                              ; preds = %779, %772
  %802 = load i32, ptr %16, align 4, !tbaa !5
  %803 = call ptr @__errno_location() #13
  store i32 %802, ptr %803, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror(i32 noundef %807, ptr noundef @.str.3)
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror_debug(i32 noundef %810, ptr noundef @.str.3)
  %812 = call ptr @__errno_location() #13
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #12
  %815 = call ptr @__errno_location() #13
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %804, ptr noundef @.str.4, i32 noundef %805, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 165, ptr noundef %808, ptr noundef %811, ptr noundef %814, i32 noundef %816) #12
  br label %818

818:                                              ; preds = %801, %784
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #12
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  call void @exit(i32 noundef 1) #14
  unreachable

821:                                              ; No predecessors!
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822, %764
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  br label %826

826:                                              ; preds = %825
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = add nsw i32 %827, 1
  store i32 %828, ptr @test_count, align 4, !tbaa !5
  %829 = load ptr, ptr %13, align 8, !tbaa !9
  %830 = load ptr, ptr %12, align 8, !tbaa !9
  %831 = call i32 @s2n_connection_set_config(ptr noundef %829, ptr noundef %830)
  %832 = icmp eq i32 %831, -1
  br i1 %832, label %833, label %886

833:                                              ; preds = %826
  br label %834

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #12
  %836 = call ptr @__errno_location() #13
  %837 = load i32, ptr %836, align 4, !tbaa !5
  store i32 %837, ptr %17, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = call i32 @s2n_print_stacktrace(ptr noundef %838)
  %840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %841 = trunc i8 %840 to i1
  br i1 %841, label %842, label %864

842:                                              ; preds = %835
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @fileno(ptr noundef %843) #12
  %845 = call i32 @isatty(i32 noundef %844) #12
  %846 = icmp ne i32 %845, 0
  br i1 %846, label %847, label %864

847:                                              ; preds = %842
  %848 = load i32, ptr %17, align 4, !tbaa !5
  %849 = call ptr @__errno_location() #13
  store i32 %848, ptr %849, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = load i32, ptr @test_count, align 4, !tbaa !5
  %852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef @.str.3)
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror_debug(i32 noundef %856, ptr noundef @.str.3)
  %858 = call ptr @__errno_location() #13
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @strerror(i32 noundef %859) #12
  %861 = call ptr @__errno_location() #13
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %850, ptr noundef @.str, i32 noundef %851, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 166, ptr noundef %854, ptr noundef %857, ptr noundef %860, i32 noundef %862) #12
  br label %881

864:                                              ; preds = %842, %835
  %865 = load i32, ptr %17, align 4, !tbaa !5
  %866 = call ptr @__errno_location() #13
  store i32 %865, ptr %866, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror(i32 noundef %870, ptr noundef @.str.3)
  %872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror_debug(i32 noundef %873, ptr noundef @.str.3)
  %875 = call ptr @__errno_location() #13
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @strerror(i32 noundef %876) #12
  %878 = call ptr @__errno_location() #13
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef @.str.4, i32 noundef %868, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 166, ptr noundef %871, ptr noundef %874, ptr noundef %877, i32 noundef %879) #12
  br label %881

881:                                              ; preds = %864, %847
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #12
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  call void @exit(i32 noundef 1) #14
  unreachable

884:                                              ; No predecessors!
  br label %885

885:                                              ; preds = %884
  br label %886

886:                                              ; preds = %885, %826
  br label %887

887:                                              ; preds = %886
  br label %888

888:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #12
  %889 = load ptr, ptr %13, align 8, !tbaa !9
  %890 = getelementptr inbounds %struct.s2n_connection, ptr %889, i32 0, i32 52
  %891 = getelementptr inbounds %struct.s2n_handshake, ptr %890, i32 0, i32 0
  store ptr %891, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #12
  %892 = load ptr, ptr %13, align 8, !tbaa !9
  %893 = getelementptr inbounds %struct.s2n_connection, ptr %892, i32 0, i32 19
  %894 = load i8, ptr %893, align 8, !tbaa !15
  %895 = zext i8 %894 to i32
  %896 = add nsw i32 35, %895
  %897 = add nsw i32 %896, 2
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr %19, align 4, !tbaa !5
  br label %899

899:                                              ; preds = %888
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = load ptr, ptr %13, align 8, !tbaa !9
  %903 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %902, i8 noundef zeroext 34)
  %904 = icmp eq i32 %903, -1
  br i1 %904, label %905, label %958

905:                                              ; preds = %899
  br label %906

906:                                              ; preds = %905
  br label %907

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

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

919:                                              ; preds = %914
  %920 = load i32, ptr %20, align 4, !tbaa !5
  %921 = call ptr @__errno_location() #13
  store i32 %920, ptr %921, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef @.str.3)
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef @.str.3)
  %930 = call ptr @__errno_location() #13
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #12
  %933 = call ptr @__errno_location() #13
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef @.str, i32 noundef %923, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 177, ptr noundef %926, ptr noundef %929, ptr noundef %932, i32 noundef %934) #12
  br label %953

936:                                              ; preds = %914, %907
  %937 = load i32, ptr %20, align 4, !tbaa !5
  %938 = call ptr @__errno_location() #13
  store i32 %937, ptr %938, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef @.str.3)
  %944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef @.str.3)
  %947 = call ptr @__errno_location() #13
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #12
  %950 = call ptr @__errno_location() #13
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef @.str.4, i32 noundef %940, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 177, ptr noundef %943, ptr noundef %946, ptr noundef %949, i32 noundef %951) #12
  br label %953

953:                                              ; preds = %936, %919
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  br label %954

954:                                              ; preds = %953
  br label %955

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

956:                                              ; No predecessors!
  br label %957

957:                                              ; preds = %956
  br label %958

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

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  %961 = load ptr, ptr %13, align 8, !tbaa !9
  %962 = getelementptr inbounds %struct.s2n_connection, ptr %961, i32 0, i32 27
  %963 = load ptr, ptr %962, align 8, !tbaa !42
  %964 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %963, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %964, align 8, !tbaa !43
  %965 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %966 = load ptr, ptr %13, align 8, !tbaa !9
  %967 = getelementptr inbounds %struct.s2n_connection, ptr %966, i32 0, i32 31
  %968 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %967, i32 0, i32 1
  %969 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %968, i32 0, i32 0
  store ptr %965, ptr %969, align 8, !tbaa !48
  %970 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %971 = load ptr, ptr %13, align 8, !tbaa !9
  %972 = getelementptr inbounds %struct.s2n_connection, ptr %971, i32 0, i32 31
  %973 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %972, i32 0, i32 3
  %974 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %973, i32 0, i32 0
  store ptr %970, ptr %974, align 8, !tbaa !49
  br label %975

975:                                              ; preds = %960
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = add nsw i32 %976, 1
  store i32 %977, ptr @test_count, align 4, !tbaa !5
  %978 = load ptr, ptr %13, align 8, !tbaa !9
  %979 = getelementptr inbounds %struct.s2n_connection, ptr %978, i32 0, i32 31
  %980 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %979, i32 0, i32 3
  %981 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %980)
  %982 = icmp eq i32 %981, -1
  br i1 %982, label %983, label %1036

983:                                              ; preds = %975
  br label %984

984:                                              ; preds = %983
  br label %985

985:                                              ; preds = %984
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #12
  %986 = call ptr @__errno_location() #13
  %987 = load i32, ptr %986, align 4, !tbaa !5
  store i32 %987, ptr %21, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = call i32 @s2n_print_stacktrace(ptr noundef %988)
  %990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %991 = trunc i8 %990 to i1
  br i1 %991, label %992, label %1014

992:                                              ; preds = %985
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @fileno(ptr noundef %993) #12
  %995 = call i32 @isatty(i32 noundef %994) #12
  %996 = icmp ne i32 %995, 0
  br i1 %996, label %997, label %1014

997:                                              ; preds = %992
  %998 = load i32, ptr %21, align 4, !tbaa !5
  %999 = call ptr @__errno_location() #13
  store i32 %998, ptr %999, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef @.str.3)
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror_debug(i32 noundef %1006, ptr noundef @.str.3)
  %1008 = call ptr @__errno_location() #13
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #12
  %1011 = call ptr @__errno_location() #13
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef @.str, i32 noundef %1001, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 181, ptr noundef %1004, ptr noundef %1007, ptr noundef %1010, i32 noundef %1012) #12
  br label %1031

1014:                                             ; preds = %992, %985
  %1015 = load i32, ptr %21, align 4, !tbaa !5
  %1016 = call ptr @__errno_location() #13
  store i32 %1015, ptr %1016, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = load i32, ptr @test_count, align 4, !tbaa !5
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef @.str.3)
  %1022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror_debug(i32 noundef %1023, ptr noundef @.str.3)
  %1025 = call ptr @__errno_location() #13
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @strerror(i32 noundef %1026) #12
  %1028 = call ptr @__errno_location() #13
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1017, ptr noundef @.str.4, i32 noundef %1018, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 181, ptr noundef %1021, ptr noundef %1024, ptr noundef %1027, i32 noundef %1029) #12
  br label %1031

1031:                                             ; preds = %1014, %997
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #12
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

1033:                                             ; preds = %1032
  call void @exit(i32 noundef 1) #14
  unreachable

1034:                                             ; No predecessors!
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035, %975
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = add nsw i32 %1040, 1
  store i32 %1041, ptr @test_count, align 4, !tbaa !5
  %1042 = load ptr, ptr %13, align 8, !tbaa !9
  %1043 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %1042)
  %1044 = icmp eq i32 %1043, -1
  br i1 %1044, label %1045, label %1098

1045:                                             ; preds = %1039
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

1047:                                             ; preds = %1046
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #12
  %1048 = call ptr @__errno_location() #13
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  store i32 %1049, ptr %22, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = call i32 @s2n_print_stacktrace(ptr noundef %1050)
  %1052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1053 = trunc i8 %1052 to i1
  br i1 %1053, label %1054, label %1076

1054:                                             ; preds = %1047
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = call i32 @fileno(ptr noundef %1055) #12
  %1057 = call i32 @isatty(i32 noundef %1056) #12
  %1058 = icmp ne i32 %1057, 0
  br i1 %1058, label %1059, label %1076

1059:                                             ; preds = %1054
  %1060 = load i32, ptr %22, align 4, !tbaa !5
  %1061 = call ptr @__errno_location() #13
  store i32 %1060, ptr %1061, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef @.str.3)
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef @.str.3)
  %1070 = call ptr @__errno_location() #13
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #12
  %1073 = call ptr @__errno_location() #13
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef @.str, i32 noundef %1063, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 183, ptr noundef %1066, ptr noundef %1069, ptr noundef %1072, i32 noundef %1074) #12
  br label %1093

1076:                                             ; preds = %1054, %1047
  %1077 = load i32, ptr %22, align 4, !tbaa !5
  %1078 = call ptr @__errno_location() #13
  store i32 %1077, ptr %1078, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef @.str.3)
  %1084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror_debug(i32 noundef %1085, ptr noundef @.str.3)
  %1087 = call ptr @__errno_location() #13
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call ptr @strerror(i32 noundef %1088) #12
  %1090 = call ptr @__errno_location() #13
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef @.str.4, i32 noundef %1080, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 183, ptr noundef %1083, ptr noundef %1086, ptr noundef %1089, i32 noundef %1091) #12
  br label %1093

1093:                                             ; preds = %1076, %1059
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

1095:                                             ; preds = %1094
  call void @exit(i32 noundef 1) #14
  unreachable

1096:                                             ; No predecessors!
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097, %1039
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr @test_count, align 4, !tbaa !5
  %1104 = load ptr, ptr %13, align 8, !tbaa !9
  %1105 = call i32 @s2n_conn_choose_state_machine(ptr noundef %1104, i8 noundef zeroext 34)
  %1106 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  store i32 %1105, ptr %1106, align 4
  %1107 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  %1108 = load i32, ptr %1107, align 4
  %1109 = call zeroext i1 @s2n_result_is_ok(i32 %1108)
  br i1 %1109, label %1163, label %1110

1110:                                             ; preds = %1101
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #12
  %1113 = call ptr @__errno_location() #13
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  store i32 %1114, ptr %24, align 4, !tbaa !5
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = call i32 @s2n_print_stacktrace(ptr noundef %1115)
  %1117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1118 = trunc i8 %1117 to i1
  br i1 %1118, label %1119, label %1141

1119:                                             ; preds = %1112
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @fileno(ptr noundef %1120) #12
  %1122 = call i32 @isatty(i32 noundef %1121) #12
  %1123 = icmp ne i32 %1122, 0
  br i1 %1123, label %1124, label %1141

1124:                                             ; preds = %1119
  %1125 = load i32, ptr %24, align 4, !tbaa !5
  %1126 = call ptr @__errno_location() #13
  store i32 %1125, ptr %1126, align 4, !tbaa !5
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = load i32, ptr @test_count, align 4, !tbaa !5
  %1129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror(i32 noundef %1130, ptr noundef @.str.3)
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef @.str.3)
  %1135 = call ptr @__errno_location() #13
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @strerror(i32 noundef %1136) #12
  %1138 = call ptr @__errno_location() #13
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1127, ptr noundef @.str, i32 noundef %1128, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 184, ptr noundef %1131, ptr noundef %1134, ptr noundef %1137, i32 noundef %1139) #12
  br label %1158

1141:                                             ; preds = %1119, %1112
  %1142 = load i32, ptr %24, align 4, !tbaa !5
  %1143 = call ptr @__errno_location() #13
  store i32 %1142, ptr %1143, align 4, !tbaa !5
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @s2n_strerror(i32 noundef %1147, ptr noundef @.str.3)
  %1149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call ptr @s2n_strerror_debug(i32 noundef %1150, ptr noundef @.str.3)
  %1152 = call ptr @__errno_location() #13
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call ptr @strerror(i32 noundef %1153) #12
  %1155 = call ptr @__errno_location() #13
  %1156 = load i32, ptr %1155, align 4, !tbaa !5
  %1157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1144, ptr noundef @.str.4, i32 noundef %1145, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 184, ptr noundef %1148, ptr noundef %1151, ptr noundef %1154, i32 noundef %1156) #12
  br label %1158

1158:                                             ; preds = %1141, %1124
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #12
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  call void @exit(i32 noundef 1) #14
  unreachable

1161:                                             ; No predecessors!
  br label %1162

1162:                                             ; preds = %1161
  br label %1163

1163:                                             ; preds = %1162, %1101
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164
  %1166 = load ptr, ptr %13, align 8, !tbaa !9
  %1167 = call i32 @s2n_extensions_server_supported_versions_size(ptr noundef %1166)
  %1168 = add nsw i32 2, %1167
  %1169 = load ptr, ptr %13, align 8, !tbaa !9
  %1170 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef %1169)
  %1171 = add nsw i32 %1168, %1170
  %1172 = load i32, ptr %19, align 4, !tbaa !5
  %1173 = add i32 %1172, %1171
  store i32 %1173, ptr %19, align 4, !tbaa !5
  br label %1174

1174:                                             ; preds = %1165
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = load ptr, ptr %13, align 8, !tbaa !9
  %1178 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef %1177)
  br i1 %1178, label %1232, label %1179

1179:                                             ; preds = %1174
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #12
  %1182 = call ptr @__errno_location() #13
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  store i32 %1183, ptr %25, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @s2n_print_stacktrace(ptr noundef %1184)
  %1186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1187 = trunc i8 %1186 to i1
  br i1 %1187, label %1188, label %1210

1188:                                             ; preds = %1181
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @fileno(ptr noundef %1189) #12
  %1191 = call i32 @isatty(i32 noundef %1190) #12
  %1192 = icmp ne i32 %1191, 0
  br i1 %1192, label %1193, label %1210

1193:                                             ; preds = %1188
  %1194 = load i32, ptr %25, align 4, !tbaa !5
  %1195 = call ptr @__errno_location() #13
  store i32 %1194, ptr %1195, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef @.str.3)
  %1201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef @.str.3)
  %1204 = call ptr @__errno_location() #13
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #12
  %1207 = call ptr @__errno_location() #13
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1196, ptr noundef @.str, i32 noundef %1197, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 191, ptr noundef %1200, ptr noundef %1203, ptr noundef %1206, i32 noundef %1208) #12
  br label %1227

1210:                                             ; preds = %1188, %1181
  %1211 = load i32, ptr %25, align 4, !tbaa !5
  %1212 = call ptr @__errno_location() #13
  store i32 %1211, ptr %1212, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef @.str.3)
  %1218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef @.str.3)
  %1221 = call ptr @__errno_location() #13
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @strerror(i32 noundef %1222) #12
  %1224 = call ptr @__errno_location() #13
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1213, ptr noundef @.str.4, i32 noundef %1214, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 191, ptr noundef %1217, ptr noundef %1220, ptr noundef %1223, i32 noundef %1225) #12
  br label %1227

1227:                                             ; preds = %1210, %1193
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #12
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  call void @exit(i32 noundef 1) #14
  unreachable

1230:                                             ; No predecessors!
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

1232:                                             ; preds = %1231, %1174
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

1235:                                             ; preds = %1234
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = add nsw i32 %1236, 1
  store i32 %1237, ptr @test_count, align 4, !tbaa !5
  %1238 = load ptr, ptr %13, align 8, !tbaa !9
  %1239 = call i32 @s2n_server_hello_retry_send(ptr noundef %1238)
  %1240 = icmp eq i32 %1239, -1
  br i1 %1240, label %1241, label %1294

1241:                                             ; preds = %1235
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #12
  %1244 = call ptr @__errno_location() #13
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  store i32 %1245, ptr %26, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @s2n_print_stacktrace(ptr noundef %1246)
  %1248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1249 = trunc i8 %1248 to i1
  br i1 %1249, label %1250, label %1272

1250:                                             ; preds = %1243
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @fileno(ptr noundef %1251) #12
  %1253 = call i32 @isatty(i32 noundef %1252) #12
  %1254 = icmp ne i32 %1253, 0
  br i1 %1254, label %1255, label %1272

1255:                                             ; preds = %1250
  %1256 = load i32, ptr %26, align 4, !tbaa !5
  %1257 = call ptr @__errno_location() #13
  store i32 %1256, ptr %1257, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror(i32 noundef %1261, ptr noundef @.str.3)
  %1263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror_debug(i32 noundef %1264, ptr noundef @.str.3)
  %1266 = call ptr @__errno_location() #13
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @strerror(i32 noundef %1267) #12
  %1269 = call ptr @__errno_location() #13
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef @.str, i32 noundef %1259, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 192, ptr noundef %1262, ptr noundef %1265, ptr noundef %1268, i32 noundef %1270) #12
  br label %1289

1272:                                             ; preds = %1250, %1243
  %1273 = load i32, ptr %26, align 4, !tbaa !5
  %1274 = call ptr @__errno_location() #13
  store i32 %1273, ptr %1274, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror(i32 noundef %1278, ptr noundef @.str.3)
  %1280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror_debug(i32 noundef %1281, ptr noundef @.str.3)
  %1283 = call ptr @__errno_location() #13
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #12
  %1286 = call ptr @__errno_location() #13
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef @.str.4, i32 noundef %1276, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 192, ptr noundef %1279, ptr noundef %1282, ptr noundef %1285, i32 noundef %1287) #12
  br label %1289

1289:                                             ; preds = %1272, %1255
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #12
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  call void @exit(i32 noundef 1) #14
  unreachable

1292:                                             ; No predecessors!
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293, %1235
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

1297:                                             ; preds = %1296
  %1298 = load i32, ptr @test_count, align 4, !tbaa !5
  %1299 = add nsw i32 %1298, 1
  store i32 %1299, ptr @test_count, align 4, !tbaa !5
  %1300 = load ptr, ptr %18, align 8, !tbaa !9
  %1301 = getelementptr inbounds %struct.s2n_stuffer, ptr %1300, i32 0, i32 2
  %1302 = load i32, ptr %1301, align 4, !tbaa !50
  %1303 = load ptr, ptr %18, align 8, !tbaa !9
  %1304 = getelementptr inbounds %struct.s2n_stuffer, ptr %1303, i32 0, i32 1
  %1305 = load i32, ptr %1304, align 8, !tbaa !51
  %1306 = sub i32 %1302, %1305
  %1307 = load i32, ptr %19, align 4, !tbaa !5
  %1308 = icmp eq i32 %1306, %1307
  br i1 %1308, label %1362, label %1309

1309:                                             ; preds = %1297
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #12
  %1312 = call ptr @__errno_location() #13
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  store i32 %1313, ptr %27, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @s2n_print_stacktrace(ptr noundef %1314)
  %1316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1317 = trunc i8 %1316 to i1
  br i1 %1317, label %1318, label %1340

1318:                                             ; preds = %1311
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = call i32 @fileno(ptr noundef %1319) #12
  %1321 = call i32 @isatty(i32 noundef %1320) #12
  %1322 = icmp ne i32 %1321, 0
  br i1 %1322, label %1323, label %1340

1323:                                             ; preds = %1318
  %1324 = load i32, ptr %27, align 4, !tbaa !5
  %1325 = call ptr @__errno_location() #13
  store i32 %1324, ptr %1325, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror(i32 noundef %1329, ptr noundef @.str.3)
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror_debug(i32 noundef %1332, ptr noundef @.str.3)
  %1334 = call ptr @__errno_location() #13
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @strerror(i32 noundef %1335) #12
  %1337 = call ptr @__errno_location() #13
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef @.str, i32 noundef %1327, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 194, ptr noundef %1330, ptr noundef %1333, ptr noundef %1336, i32 noundef %1338) #12
  br label %1357

1340:                                             ; preds = %1318, %1311
  %1341 = load i32, ptr %27, align 4, !tbaa !5
  %1342 = call ptr @__errno_location() #13
  store i32 %1341, ptr %1342, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = load i32, ptr @test_count, align 4, !tbaa !5
  %1345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror(i32 noundef %1346, ptr noundef @.str.3)
  %1348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror_debug(i32 noundef %1349, ptr noundef @.str.3)
  %1351 = call ptr @__errno_location() #13
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call ptr @strerror(i32 noundef %1352) #12
  %1354 = call ptr @__errno_location() #13
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1343, ptr noundef @.str.4, i32 noundef %1344, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 194, ptr noundef %1347, ptr noundef %1350, ptr noundef %1353, i32 noundef %1355) #12
  br label %1357

1357:                                             ; preds = %1340, %1323
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  call void @exit(i32 noundef 1) #14
  unreachable

1360:                                             ; No predecessors!
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361, %1297
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = load ptr, ptr %13, align 8, !tbaa !9
  %1369 = getelementptr inbounds %struct.s2n_connection, ptr %1368, i32 0, i32 31
  %1370 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1369, i32 0, i32 1
  %1371 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1370, i32 0, i32 0
  %1372 = load ptr, ptr %1371, align 8, !tbaa !48
  %1373 = icmp eq ptr %1372, null
  br i1 %1373, label %1374, label %1427

1374:                                             ; preds = %1365
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #12
  %1377 = call ptr @__errno_location() #13
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  store i32 %1378, ptr %28, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @s2n_print_stacktrace(ptr noundef %1379)
  %1381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc i8 %1381 to i1
  br i1 %1382, label %1383, label %1405

1383:                                             ; preds = %1376
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @fileno(ptr noundef %1384) #12
  %1386 = call i32 @isatty(i32 noundef %1385) #12
  %1387 = icmp ne i32 %1386, 0
  br i1 %1387, label %1388, label %1405

1388:                                             ; preds = %1383
  %1389 = load i32, ptr %28, align 4, !tbaa !5
  %1390 = call ptr @__errno_location() #13
  store i32 %1389, ptr %1390, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = load i32, ptr @test_count, align 4, !tbaa !5
  %1393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror(i32 noundef %1394, ptr noundef @.str.3)
  %1396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror_debug(i32 noundef %1397, ptr noundef @.str.3)
  %1399 = call ptr @__errno_location() #13
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #12
  %1402 = call ptr @__errno_location() #13
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1391, ptr noundef @.str, i32 noundef %1392, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 196, ptr noundef %1395, ptr noundef %1398, ptr noundef %1401, i32 noundef %1403) #12
  br label %1422

1405:                                             ; preds = %1383, %1376
  %1406 = load i32, ptr %28, align 4, !tbaa !5
  %1407 = call ptr @__errno_location() #13
  store i32 %1406, ptr %1407, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef @.str.3)
  %1413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef @.str.3)
  %1416 = call ptr @__errno_location() #13
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #12
  %1419 = call ptr @__errno_location() #13
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef @.str.4, i32 noundef %1409, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 196, ptr noundef %1412, ptr noundef %1415, ptr noundef %1418, i32 noundef %1420) #12
  br label %1422

1422:                                             ; preds = %1405, %1388
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423
  call void @exit(i32 noundef 1) #14
  unreachable

1425:                                             ; No predecessors!
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426, %1365
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

1430:                                             ; preds = %1429
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = add nsw i32 %1431, 1
  store i32 %1432, ptr @test_count, align 4, !tbaa !5
  %1433 = load ptr, ptr %13, align 8, !tbaa !9
  %1434 = getelementptr inbounds %struct.s2n_connection, ptr %1433, i32 0, i32 31
  %1435 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1434, i32 0, i32 1
  %1436 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1435, i32 0, i32 1
  %1437 = load ptr, ptr %1436, align 8, !tbaa !52
  %1438 = icmp eq ptr %1437, null
  br i1 %1438, label %1492, label %1439

1439:                                             ; preds = %1430
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

1441:                                             ; preds = %1440
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #12
  %1442 = call ptr @__errno_location() #13
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  store i32 %1443, ptr %29, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @s2n_print_stacktrace(ptr noundef %1444)
  %1446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1447 = trunc i8 %1446 to i1
  br i1 %1447, label %1448, label %1470

1448:                                             ; preds = %1441
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @fileno(ptr noundef %1449) #12
  %1451 = call i32 @isatty(i32 noundef %1450) #12
  %1452 = icmp ne i32 %1451, 0
  br i1 %1452, label %1453, label %1470

1453:                                             ; preds = %1448
  %1454 = load i32, ptr %29, align 4, !tbaa !5
  %1455 = call ptr @__errno_location() #13
  store i32 %1454, ptr %1455, align 4, !tbaa !5
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = load i32, ptr @test_count, align 4, !tbaa !5
  %1458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror(i32 noundef %1459, ptr noundef @.str.3)
  %1461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef @.str.3)
  %1464 = call ptr @__errno_location() #13
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @strerror(i32 noundef %1465) #12
  %1467 = call ptr @__errno_location() #13
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1456, ptr noundef @.str, i32 noundef %1457, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 197, ptr noundef %1460, ptr noundef %1463, ptr noundef %1466, i32 noundef %1468) #12
  br label %1487

1470:                                             ; preds = %1448, %1441
  %1471 = load i32, ptr %29, align 4, !tbaa !5
  %1472 = call ptr @__errno_location() #13
  store i32 %1471, ptr %1472, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = load i32, ptr @test_count, align 4, !tbaa !5
  %1475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror(i32 noundef %1476, ptr noundef @.str.3)
  %1478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @s2n_strerror_debug(i32 noundef %1479, ptr noundef @.str.3)
  %1481 = call ptr @__errno_location() #13
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call ptr @strerror(i32 noundef %1482) #12
  %1484 = call ptr @__errno_location() #13
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1473, ptr noundef @.str.4, i32 noundef %1474, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 197, ptr noundef %1477, ptr noundef %1480, ptr noundef %1483, i32 noundef %1485) #12
  br label %1487

1487:                                             ; preds = %1470, %1453
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #12
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488
  call void @exit(i32 noundef 1) #14
  unreachable

1490:                                             ; No predecessors!
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491, %1430
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

1495:                                             ; preds = %1494
  %1496 = load i32, ptr @test_count, align 4, !tbaa !5
  %1497 = add nsw i32 %1496, 1
  store i32 %1497, ptr @test_count, align 4, !tbaa !5
  %1498 = load ptr, ptr %13, align 8, !tbaa !9
  %1499 = getelementptr inbounds %struct.s2n_connection, ptr %1498, i32 0, i32 32
  %1500 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1499, i32 0, i32 13
  %1501 = getelementptr inbounds [32 x i8], ptr %1500, i64 0, i64 0
  %1502 = call i32 @memcmp(ptr noundef %1501, ptr noundef @hello_retry_req_random, i64 noundef 32) #15
  %1503 = icmp eq i32 %1502, 0
  br i1 %1503, label %1557, label %1504

1504:                                             ; preds = %1495
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #12
  %1507 = call ptr @__errno_location() #13
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  store i32 %1508, ptr %30, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @s2n_print_stacktrace(ptr noundef %1509)
  %1511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1512 = trunc i8 %1511 to i1
  br i1 %1512, label %1513, label %1535

1513:                                             ; preds = %1506
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @fileno(ptr noundef %1514) #12
  %1516 = call i32 @isatty(i32 noundef %1515) #12
  %1517 = icmp ne i32 %1516, 0
  br i1 %1517, label %1518, label %1535

1518:                                             ; preds = %1513
  %1519 = load i32, ptr %30, align 4, !tbaa !5
  %1520 = call ptr @__errno_location() #13
  store i32 %1519, ptr %1520, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror(i32 noundef %1524, ptr noundef @.str.3)
  %1526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror_debug(i32 noundef %1527, ptr noundef @.str.3)
  %1529 = call ptr @__errno_location() #13
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call ptr @strerror(i32 noundef %1530) #12
  %1532 = call ptr @__errno_location() #13
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1521, ptr noundef @.str, i32 noundef %1522, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 198, ptr noundef %1525, ptr noundef %1528, ptr noundef %1531, i32 noundef %1533) #12
  br label %1552

1535:                                             ; preds = %1513, %1506
  %1536 = load i32, ptr %30, align 4, !tbaa !5
  %1537 = call ptr @__errno_location() #13
  store i32 %1536, ptr %1537, align 4, !tbaa !5
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror(i32 noundef %1541, ptr noundef @.str.3)
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror_debug(i32 noundef %1544, ptr noundef @.str.3)
  %1546 = call ptr @__errno_location() #13
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @strerror(i32 noundef %1547) #12
  %1549 = call ptr @__errno_location() #13
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1538, ptr noundef @.str.4, i32 noundef %1539, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 198, ptr noundef %1542, ptr noundef %1545, ptr noundef %1548, i32 noundef %1550) #12
  br label %1552

1552:                                             ; preds = %1535, %1518
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  call void @exit(i32 noundef 1) #14
  unreachable

1555:                                             ; No predecessors!
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556, %1495
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  br label %1560

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

1566:                                             ; preds = %1560
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

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

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

1580:                                             ; preds = %1575
  %1581 = load i32, ptr %31, align 4, !tbaa !5
  %1582 = call ptr @__errno_location() #13
  store i32 %1581, ptr %1582, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror(i32 noundef %1586, ptr noundef @.str.3)
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror_debug(i32 noundef %1589, ptr noundef @.str.3)
  %1591 = call ptr @__errno_location() #13
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call ptr @strerror(i32 noundef %1592) #12
  %1594 = call ptr @__errno_location() #13
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef @.str, i32 noundef %1584, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 200, ptr noundef %1587, ptr noundef %1590, ptr noundef %1593, i32 noundef %1595) #12
  br label %1614

1597:                                             ; preds = %1575, %1568
  %1598 = load i32, ptr %31, align 4, !tbaa !5
  %1599 = call ptr @__errno_location() #13
  store i32 %1598, ptr %1599, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror(i32 noundef %1603, ptr noundef @.str.3)
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror_debug(i32 noundef %1606, ptr noundef @.str.3)
  %1608 = call ptr @__errno_location() #13
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #12
  %1611 = call ptr @__errno_location() #13
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1600, ptr noundef @.str.4, i32 noundef %1601, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 200, ptr noundef %1604, ptr noundef %1607, ptr noundef %1610, i32 noundef %1612) #12
  br label %1614

1614:                                             ; preds = %1597, %1580
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %1615

1615:                                             ; preds = %1614
  br label %1616

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

1617:                                             ; No predecessors!
  br label %1618

1618:                                             ; preds = %1617
  br label %1619

1619:                                             ; preds = %1618, %1560
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

1621:                                             ; preds = %1620
  br label %1622

1622:                                             ; preds = %1621
  %1623 = load i32, ptr @test_count, align 4, !tbaa !5
  %1624 = add nsw i32 %1623, 1
  store i32 %1624, ptr @test_count, align 4, !tbaa !5
  %1625 = load ptr, ptr %13, align 8, !tbaa !9
  %1626 = call i32 @s2n_connection_free(ptr noundef %1625)
  %1627 = icmp eq i32 %1626, -1
  br i1 %1627, label %1628, label %1681

1628:                                             ; preds = %1622
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

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

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

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %32, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #13
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.3)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.3)
  %1653 = call ptr @__errno_location() #13
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #12
  %1656 = call ptr @__errno_location() #13
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str, i32 noundef %1646, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 201, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #12
  br label %1676

1659:                                             ; preds = %1637, %1630
  %1660 = load i32, ptr %32, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #13
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.3)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.3)
  %1670 = call ptr @__errno_location() #13
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #12
  %1673 = call ptr @__errno_location() #13
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.4, i32 noundef %1663, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 201, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #12
  br label %1676

1676:                                             ; preds = %1659, %1642
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

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

1679:                                             ; No predecessors!
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680, %1622
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #12
  store ptr null, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #12
  store ptr null, ptr %34, align 8, !tbaa !9
  br label %1684

1684:                                             ; preds = %1683
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr @test_count, align 4, !tbaa !5
  %1687 = call ptr @s2n_config_new()
  store ptr %1687, ptr %33, align 8, !tbaa !9
  %1688 = icmp eq ptr %1687, null
  br i1 %1688, label %1689, label %1742

1689:                                             ; preds = %1684
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

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

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

1703:                                             ; preds = %1698
  %1704 = load i32, ptr %35, align 4, !tbaa !5
  %1705 = call ptr @__errno_location() #13
  store i32 %1704, ptr %1705, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef @.str.3)
  %1711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef @.str.3)
  %1714 = call ptr @__errno_location() #13
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #12
  %1717 = call ptr @__errno_location() #13
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef @.str, i32 noundef %1707, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 209, ptr noundef %1710, ptr noundef %1713, ptr noundef %1716, i32 noundef %1718) #12
  br label %1737

1720:                                             ; preds = %1698, %1691
  %1721 = load i32, ptr %35, align 4, !tbaa !5
  %1722 = call ptr @__errno_location() #13
  store i32 %1721, ptr %1722, align 4, !tbaa !5
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = load i32, ptr @test_count, align 4, !tbaa !5
  %1725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror(i32 noundef %1726, ptr noundef @.str.3)
  %1728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef @.str.3)
  %1731 = call ptr @__errno_location() #13
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #12
  %1734 = call ptr @__errno_location() #13
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1723, ptr noundef @.str.4, i32 noundef %1724, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 209, ptr noundef %1727, ptr noundef %1730, ptr noundef %1733, i32 noundef %1735) #12
  br label %1737

1737:                                             ; preds = %1720, %1703
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #12
  br label %1738

1738:                                             ; preds = %1737
  br label %1739

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

1740:                                             ; No predecessors!
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741, %1684
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  %1746 = load i32, ptr @test_count, align 4, !tbaa !5
  %1747 = add nsw i32 %1746, 1
  store i32 %1747, ptr @test_count, align 4, !tbaa !5
  %1748 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1748, ptr %34, align 8, !tbaa !9
  %1749 = icmp eq ptr %1748, null
  br i1 %1749, label %1750, label %1803

1750:                                             ; preds = %1745
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #12
  %1753 = call ptr @__errno_location() #13
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  store i32 %1754, ptr %36, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @s2n_print_stacktrace(ptr noundef %1755)
  %1757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1758 = trunc i8 %1757 to i1
  br i1 %1758, label %1759, label %1781

1759:                                             ; preds = %1752
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = call i32 @fileno(ptr noundef %1760) #12
  %1762 = call i32 @isatty(i32 noundef %1761) #12
  %1763 = icmp ne i32 %1762, 0
  br i1 %1763, label %1764, label %1781

1764:                                             ; preds = %1759
  %1765 = load i32, ptr %36, align 4, !tbaa !5
  %1766 = call ptr @__errno_location() #13
  store i32 %1765, ptr %1766, align 4, !tbaa !5
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = load i32, ptr @test_count, align 4, !tbaa !5
  %1769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror(i32 noundef %1770, ptr noundef @.str.3)
  %1772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror_debug(i32 noundef %1773, ptr noundef @.str.3)
  %1775 = call ptr @__errno_location() #13
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @strerror(i32 noundef %1776) #12
  %1778 = call ptr @__errno_location() #13
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1767, ptr noundef @.str, i32 noundef %1768, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 210, ptr noundef %1771, ptr noundef %1774, ptr noundef %1777, i32 noundef %1779) #12
  br label %1798

1781:                                             ; preds = %1759, %1752
  %1782 = load i32, ptr %36, align 4, !tbaa !5
  %1783 = call ptr @__errno_location() #13
  store i32 %1782, ptr %1783, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror(i32 noundef %1787, ptr noundef @.str.3)
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef @.str.3)
  %1792 = call ptr @__errno_location() #13
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #12
  %1795 = call ptr @__errno_location() #13
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef @.str.4, i32 noundef %1785, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 210, ptr noundef %1788, ptr noundef %1791, ptr noundef %1794, i32 noundef %1796) #12
  br label %1798

1798:                                             ; preds = %1781, %1764
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #12
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

1800:                                             ; preds = %1799
  call void @exit(i32 noundef 1) #14
  unreachable

1801:                                             ; No predecessors!
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802, %1745
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = add nsw i32 %1807, 1
  store i32 %1808, ptr @test_count, align 4, !tbaa !5
  %1809 = load ptr, ptr %34, align 8, !tbaa !9
  %1810 = load ptr, ptr %33, align 8, !tbaa !9
  %1811 = call i32 @s2n_connection_set_config(ptr noundef %1809, ptr noundef %1810)
  %1812 = icmp eq i32 %1811, -1
  br i1 %1812, label %1813, label %1866

1813:                                             ; preds = %1806
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

1815:                                             ; preds = %1814
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #12
  %1816 = call ptr @__errno_location() #13
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  store i32 %1817, ptr %37, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @s2n_print_stacktrace(ptr noundef %1818)
  %1820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1821 = trunc i8 %1820 to i1
  br i1 %1821, label %1822, label %1844

1822:                                             ; preds = %1815
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @fileno(ptr noundef %1823) #12
  %1825 = call i32 @isatty(i32 noundef %1824) #12
  %1826 = icmp ne i32 %1825, 0
  br i1 %1826, label %1827, label %1844

1827:                                             ; preds = %1822
  %1828 = load i32, ptr %37, align 4, !tbaa !5
  %1829 = call ptr @__errno_location() #13
  store i32 %1828, ptr %1829, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror(i32 noundef %1833, ptr noundef @.str.3)
  %1835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @s2n_strerror_debug(i32 noundef %1836, ptr noundef @.str.3)
  %1838 = call ptr @__errno_location() #13
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #12
  %1841 = call ptr @__errno_location() #13
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1830, ptr noundef @.str, i32 noundef %1831, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 211, ptr noundef %1834, ptr noundef %1837, ptr noundef %1840, i32 noundef %1842) #12
  br label %1861

1844:                                             ; preds = %1822, %1815
  %1845 = load i32, ptr %37, align 4, !tbaa !5
  %1846 = call ptr @__errno_location() #13
  store i32 %1845, ptr %1846, align 4, !tbaa !5
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef @.str.3)
  %1852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror_debug(i32 noundef %1853, ptr noundef @.str.3)
  %1855 = call ptr @__errno_location() #13
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  %1857 = call ptr @strerror(i32 noundef %1856) #12
  %1858 = call ptr @__errno_location() #13
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  %1860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1847, ptr noundef @.str.4, i32 noundef %1848, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 211, ptr noundef %1851, ptr noundef %1854, ptr noundef %1857, i32 noundef %1859) #12
  br label %1861

1861:                                             ; preds = %1844, %1827
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %1862

1862:                                             ; preds = %1861
  br label %1863

1863:                                             ; preds = %1862
  call void @exit(i32 noundef 1) #14
  unreachable

1864:                                             ; No predecessors!
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865, %1806
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

1869:                                             ; preds = %1868
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = add nsw i32 %1870, 1
  store i32 %1871, ptr @test_count, align 4, !tbaa !5
  %1872 = load ptr, ptr %34, align 8, !tbaa !9
  %1873 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %1872, i8 noundef zeroext 34)
  %1874 = icmp eq i32 %1873, -1
  br i1 %1874, label %1875, label %1928

1875:                                             ; preds = %1869
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #12
  %1878 = call ptr @__errno_location() #13
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  store i32 %1879, ptr %38, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @s2n_print_stacktrace(ptr noundef %1880)
  %1882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1884, label %1906

1884:                                             ; preds = %1877
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = call i32 @fileno(ptr noundef %1885) #12
  %1887 = call i32 @isatty(i32 noundef %1886) #12
  %1888 = icmp ne i32 %1887, 0
  br i1 %1888, label %1889, label %1906

1889:                                             ; preds = %1884
  %1890 = load i32, ptr %38, align 4, !tbaa !5
  %1891 = call ptr @__errno_location() #13
  store i32 %1890, ptr %1891, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror(i32 noundef %1895, ptr noundef @.str.3)
  %1897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror_debug(i32 noundef %1898, ptr noundef @.str.3)
  %1900 = call ptr @__errno_location() #13
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call ptr @strerror(i32 noundef %1901) #12
  %1903 = call ptr @__errno_location() #13
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1892, ptr noundef @.str, i32 noundef %1893, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 213, ptr noundef %1896, ptr noundef %1899, ptr noundef %1902, i32 noundef %1904) #12
  br label %1923

1906:                                             ; preds = %1884, %1877
  %1907 = load i32, ptr %38, align 4, !tbaa !5
  %1908 = call ptr @__errno_location() #13
  store i32 %1907, ptr %1908, align 4, !tbaa !5
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = load i32, ptr @test_count, align 4, !tbaa !5
  %1911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call ptr @s2n_strerror(i32 noundef %1912, ptr noundef @.str.3)
  %1914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror_debug(i32 noundef %1915, ptr noundef @.str.3)
  %1917 = call ptr @__errno_location() #13
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call ptr @strerror(i32 noundef %1918) #12
  %1920 = call ptr @__errno_location() #13
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1909, ptr noundef @.str.4, i32 noundef %1910, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 213, ptr noundef %1913, ptr noundef %1916, ptr noundef %1919, i32 noundef %1921) #12
  br label %1923

1923:                                             ; preds = %1906, %1889
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #12
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924
  call void @exit(i32 noundef 1) #14
  unreachable

1926:                                             ; No predecessors!
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927, %1869
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  %1931 = load ptr, ptr %34, align 8, !tbaa !9
  %1932 = getelementptr inbounds %struct.s2n_connection, ptr %1931, i32 0, i32 27
  %1933 = load ptr, ptr %1932, align 8, !tbaa !42
  %1934 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1933, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %1934, align 8, !tbaa !43
  %1935 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %1936 = load ptr, ptr %34, align 8, !tbaa !9
  %1937 = getelementptr inbounds %struct.s2n_connection, ptr %1936, i32 0, i32 31
  %1938 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1937, i32 0, i32 1
  %1939 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1938, i32 0, i32 0
  store ptr %1935, ptr %1939, align 8, !tbaa !48
  %1940 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %1941 = load ptr, ptr %34, align 8, !tbaa !9
  %1942 = getelementptr inbounds %struct.s2n_connection, ptr %1941, i32 0, i32 31
  %1943 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1942, i32 0, i32 3
  %1944 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1943, i32 0, i32 0
  store ptr %1940, ptr %1944, align 8, !tbaa !49
  br label %1945

1945:                                             ; preds = %1930
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr @test_count, align 4, !tbaa !5
  %1948 = load ptr, ptr %34, align 8, !tbaa !9
  %1949 = getelementptr inbounds %struct.s2n_connection, ptr %1948, i32 0, i32 31
  %1950 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1949, i32 0, i32 3
  %1951 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %1950)
  %1952 = icmp eq i32 %1951, -1
  br i1 %1952, label %1953, label %2006

1953:                                             ; preds = %1945
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

1955:                                             ; preds = %1954
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #12
  %1956 = call ptr @__errno_location() #13
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  store i32 %1957, ptr %39, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @s2n_print_stacktrace(ptr noundef %1958)
  %1960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1961 = trunc i8 %1960 to i1
  br i1 %1961, label %1962, label %1984

1962:                                             ; preds = %1955
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = call i32 @fileno(ptr noundef %1963) #12
  %1965 = call i32 @isatty(i32 noundef %1964) #12
  %1966 = icmp ne i32 %1965, 0
  br i1 %1966, label %1967, label %1984

1967:                                             ; preds = %1962
  %1968 = load i32, ptr %39, align 4, !tbaa !5
  %1969 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %1978 = call ptr @__errno_location() #13
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @strerror(i32 noundef %1979) #12
  %1981 = call ptr @__errno_location() #13
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1970, ptr noundef @.str, i32 noundef %1971, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 217, ptr noundef %1974, ptr noundef %1977, ptr noundef %1980, i32 noundef %1982) #12
  br label %2001

1984:                                             ; preds = %1962, %1955
  %1985 = load i32, ptr %39, align 4, !tbaa !5
  %1986 = call ptr @__errno_location() #13
  store i32 %1985, ptr %1986, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call ptr @s2n_strerror(i32 noundef %1990, ptr noundef @.str.3)
  %1992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror_debug(i32 noundef %1993, ptr noundef @.str.3)
  %1995 = call ptr @__errno_location() #13
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = call ptr @strerror(i32 noundef %1996) #12
  %1998 = call ptr @__errno_location() #13
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef @.str.4, i32 noundef %1988, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 217, ptr noundef %1991, ptr noundef %1994, ptr noundef %1997, i32 noundef %1999) #12
  br label %2001

2001:                                             ; preds = %1984, %1967
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #12
  br label %2002

2002:                                             ; preds = %2001
  br label %2003

2003:                                             ; preds = %2002
  call void @exit(i32 noundef 1) #14
  unreachable

2004:                                             ; No predecessors!
  br label %2005

2005:                                             ; preds = %2004
  br label %2006

2006:                                             ; preds = %2005, %1945
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

2009:                                             ; preds = %2008
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = add nsw i32 %2010, 1
  store i32 %2011, ptr @test_count, align 4, !tbaa !5
  %2012 = load ptr, ptr %34, align 8, !tbaa !9
  %2013 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2012, i8 noundef zeroext 34)
  %2014 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %2013, ptr %2014, align 4
  %2015 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %2016 = load i32, ptr %2015, align 4
  %2017 = call zeroext i1 @s2n_result_is_ok(i32 %2016)
  br i1 %2017, label %2071, label %2018

2018:                                             ; preds = %2009
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

2020:                                             ; preds = %2019
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  %2021 = call ptr @__errno_location() #13
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  store i32 %2022, ptr %41, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @s2n_print_stacktrace(ptr noundef %2023)
  %2025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2026 = trunc i8 %2025 to i1
  br i1 %2026, label %2027, label %2049

2027:                                             ; preds = %2020
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = call i32 @fileno(ptr noundef %2028) #12
  %2030 = call i32 @isatty(i32 noundef %2029) #12
  %2031 = icmp ne i32 %2030, 0
  br i1 %2031, label %2032, label %2049

2032:                                             ; preds = %2027
  %2033 = load i32, ptr %41, align 4, !tbaa !5
  %2034 = call ptr @__errno_location() #13
  store i32 %2033, ptr %2034, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror(i32 noundef %2038, ptr noundef @.str.3)
  %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_debug(i32 noundef %2041, ptr noundef @.str.3)
  %2043 = call ptr @__errno_location() #13
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @strerror(i32 noundef %2044) #12
  %2046 = call ptr @__errno_location() #13
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2035, ptr noundef @.str, i32 noundef %2036, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 219, ptr noundef %2039, ptr noundef %2042, ptr noundef %2045, i32 noundef %2047) #12
  br label %2066

2049:                                             ; preds = %2027, %2020
  %2050 = load i32, ptr %41, align 4, !tbaa !5
  %2051 = call ptr @__errno_location() #13
  store i32 %2050, ptr %2051, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef @.str.3)
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.3)
  %2060 = call ptr @__errno_location() #13
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #12
  %2063 = call ptr @__errno_location() #13
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef @.str.4, i32 noundef %2053, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 219, ptr noundef %2056, ptr noundef %2059, ptr noundef %2062, i32 noundef %2064) #12
  br label %2066

2066:                                             ; preds = %2049, %2032
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

2068:                                             ; preds = %2067
  call void @exit(i32 noundef 1) #14
  unreachable

2069:                                             ; No predecessors!
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070, %2009
  br label %2072

2072:                                             ; preds = %2071
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = add nsw i32 %2075, 1
  store i32 %2076, ptr @test_count, align 4, !tbaa !5
  %2077 = load ptr, ptr %34, align 8, !tbaa !9
  %2078 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %2077)
  %2079 = icmp eq i32 %2078, -1
  br i1 %2079, label %2080, label %2133

2080:                                             ; preds = %2074
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

2082:                                             ; preds = %2081
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #12
  %2083 = call ptr @__errno_location() #13
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  store i32 %2084, ptr %42, align 4, !tbaa !5
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = call i32 @s2n_print_stacktrace(ptr noundef %2085)
  %2087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2088 = trunc i8 %2087 to i1
  br i1 %2088, label %2089, label %2111

2089:                                             ; preds = %2082
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = call i32 @fileno(ptr noundef %2090) #12
  %2092 = call i32 @isatty(i32 noundef %2091) #12
  %2093 = icmp ne i32 %2092, 0
  br i1 %2093, label %2094, label %2111

2094:                                             ; preds = %2089
  %2095 = load i32, ptr %42, align 4, !tbaa !5
  %2096 = call ptr @__errno_location() #13
  store i32 %2095, ptr %2096, align 4, !tbaa !5
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = load i32, ptr @test_count, align 4, !tbaa !5
  %2099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = call ptr @s2n_strerror(i32 noundef %2100, ptr noundef @.str.3)
  %2102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror_debug(i32 noundef %2103, ptr noundef @.str.3)
  %2105 = call ptr @__errno_location() #13
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @strerror(i32 noundef %2106) #12
  %2108 = call ptr @__errno_location() #13
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2097, ptr noundef @.str, i32 noundef %2098, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 220, ptr noundef %2101, ptr noundef %2104, ptr noundef %2107, i32 noundef %2109) #12
  br label %2128

2111:                                             ; preds = %2089, %2082
  %2112 = load i32, ptr %42, align 4, !tbaa !5
  %2113 = call ptr @__errno_location() #13
  store i32 %2112, ptr %2113, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror(i32 noundef %2117, ptr noundef @.str.3)
  %2119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror_debug(i32 noundef %2120, ptr noundef @.str.3)
  %2122 = call ptr @__errno_location() #13
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @strerror(i32 noundef %2123) #12
  %2125 = call ptr @__errno_location() #13
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2114, ptr noundef @.str.4, i32 noundef %2115, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 220, ptr noundef %2118, ptr noundef %2121, ptr noundef %2124, i32 noundef %2126) #12
  br label %2128

2128:                                             ; preds = %2111, %2094
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #12
  br label %2129

2129:                                             ; preds = %2128
  br label %2130

2130:                                             ; preds = %2129
  call void @exit(i32 noundef 1) #14
  unreachable

2131:                                             ; No predecessors!
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

2133:                                             ; preds = %2132, %2074
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = add nsw i32 %2137, 1
  store i32 %2138, ptr @test_count, align 4, !tbaa !5
  %2139 = load ptr, ptr %34, align 8, !tbaa !9
  %2140 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef %2139)
  br i1 %2140, label %2194, label %2141

2141:                                             ; preds = %2136
  br label %2142

2142:                                             ; preds = %2141
  br label %2143

2143:                                             ; preds = %2142
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #12
  %2144 = call ptr @__errno_location() #13
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  store i32 %2145, ptr %43, align 4, !tbaa !5
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @s2n_print_stacktrace(ptr noundef %2146)
  %2148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2149 = trunc i8 %2148 to i1
  br i1 %2149, label %2150, label %2172

2150:                                             ; preds = %2143
  %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
  %2154 = icmp ne i32 %2153, 0
  br i1 %2154, label %2155, label %2172

2155:                                             ; preds = %2150
  %2156 = load i32, ptr %43, align 4, !tbaa !5
  %2157 = call ptr @__errno_location() #13
  store i32 %2156, ptr %2157, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @s2n_strerror(i32 noundef %2161, ptr noundef @.str.3)
  %2163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror_debug(i32 noundef %2164, ptr noundef @.str.3)
  %2166 = call ptr @__errno_location() #13
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call ptr @strerror(i32 noundef %2167) #12
  %2169 = call ptr @__errno_location() #13
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2158, ptr noundef @.str, i32 noundef %2159, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 222, ptr noundef %2162, ptr noundef %2165, ptr noundef %2168, i32 noundef %2170) #12
  br label %2189

2172:                                             ; preds = %2150, %2143
  %2173 = load i32, ptr %43, align 4, !tbaa !5
  %2174 = call ptr @__errno_location() #13
  store i32 %2173, ptr %2174, align 4, !tbaa !5
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = load i32, ptr @test_count, align 4, !tbaa !5
  %2177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror(i32 noundef %2178, ptr noundef @.str.3)
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror_debug(i32 noundef %2181, ptr noundef @.str.3)
  %2183 = call ptr @__errno_location() #13
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call ptr @strerror(i32 noundef %2184) #12
  %2186 = call ptr @__errno_location() #13
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2175, ptr noundef @.str.4, i32 noundef %2176, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 222, ptr noundef %2179, ptr noundef %2182, ptr noundef %2185, i32 noundef %2187) #12
  br label %2189

2189:                                             ; preds = %2172, %2155
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #12
  br label %2190

2190:                                             ; preds = %2189
  br label %2191

2191:                                             ; preds = %2190
  call void @exit(i32 noundef 1) #14
  unreachable

2192:                                             ; No predecessors!
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

2194:                                             ; preds = %2193, %2136
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

2197:                                             ; preds = %2196
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = add nsw i32 %2198, 1
  store i32 %2199, ptr @test_count, align 4, !tbaa !5
  %2200 = load ptr, ptr %34, align 8, !tbaa !9
  %2201 = call i32 @s2n_server_hello_retry_send(ptr noundef %2200)
  %2202 = icmp eq i32 %2201, -1
  br i1 %2202, label %2203, label %2256

2203:                                             ; preds = %2197
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

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

2212:                                             ; preds = %2205
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = call i32 @fileno(ptr noundef %2213) #12
  %2215 = call i32 @isatty(i32 noundef %2214) #12
  %2216 = icmp ne i32 %2215, 0
  br i1 %2216, label %2217, label %2234

2217:                                             ; preds = %2212
  %2218 = load i32, ptr %44, align 4, !tbaa !5
  %2219 = call ptr @__errno_location() #13
  store i32 %2218, ptr %2219, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror(i32 noundef %2223, ptr noundef @.str.3)
  %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_debug(i32 noundef %2226, ptr noundef @.str.3)
  %2228 = call ptr @__errno_location() #13
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @strerror(i32 noundef %2229) #12
  %2231 = call ptr @__errno_location() #13
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2220, ptr noundef @.str, i32 noundef %2221, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 223, ptr noundef %2224, ptr noundef %2227, ptr noundef %2230, i32 noundef %2232) #12
  br label %2251

2234:                                             ; preds = %2212, %2205
  %2235 = load i32, ptr %44, align 4, !tbaa !5
  %2236 = call ptr @__errno_location() #13
  store i32 %2235, ptr %2236, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror(i32 noundef %2240, ptr noundef @.str.3)
  %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_debug(i32 noundef %2243, ptr noundef @.str.3)
  %2245 = call ptr @__errno_location() #13
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call ptr @strerror(i32 noundef %2246) #12
  %2248 = call ptr @__errno_location() #13
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2237, ptr noundef @.str.4, i32 noundef %2238, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 223, ptr noundef %2241, ptr noundef %2244, ptr noundef %2247, i32 noundef %2249) #12
  br label %2251

2251:                                             ; preds = %2234, %2217
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  call void @exit(i32 noundef 1) #14
  unreachable

2254:                                             ; No predecessors!
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255, %2197
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = add nsw i32 %2260, 1
  store i32 %2261, ptr @test_count, align 4, !tbaa !5
  %2262 = load ptr, ptr %33, align 8, !tbaa !9
  %2263 = call i32 @s2n_config_free(ptr noundef %2262)
  %2264 = icmp eq i32 %2263, -1
  br i1 %2264, label %2265, label %2318

2265:                                             ; preds = %2259
  br label %2266

2266:                                             ; preds = %2265
  br label %2267

2267:                                             ; preds = %2266
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #12
  %2268 = call ptr @__errno_location() #13
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  store i32 %2269, ptr %45, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = call i32 @s2n_print_stacktrace(ptr noundef %2270)
  %2272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2273 = trunc i8 %2272 to i1
  br i1 %2273, label %2274, label %2296

2274:                                             ; preds = %2267
  %2275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2276 = call i32 @fileno(ptr noundef %2275) #12
  %2277 = call i32 @isatty(i32 noundef %2276) #12
  %2278 = icmp ne i32 %2277, 0
  br i1 %2278, label %2279, label %2296

2279:                                             ; preds = %2274
  %2280 = load i32, ptr %45, align 4, !tbaa !5
  %2281 = call ptr @__errno_location() #13
  store i32 %2280, ptr %2281, align 4, !tbaa !5
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = load i32, ptr @test_count, align 4, !tbaa !5
  %2284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call ptr @s2n_strerror(i32 noundef %2285, ptr noundef @.str.3)
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror_debug(i32 noundef %2288, ptr noundef @.str.3)
  %2290 = call ptr @__errno_location() #13
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @strerror(i32 noundef %2291) #12
  %2293 = call ptr @__errno_location() #13
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2282, ptr noundef @.str, i32 noundef %2283, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 225, ptr noundef %2286, ptr noundef %2289, ptr noundef %2292, i32 noundef %2294) #12
  br label %2313

2296:                                             ; preds = %2274, %2267
  %2297 = load i32, ptr %45, align 4, !tbaa !5
  %2298 = call ptr @__errno_location() #13
  store i32 %2297, ptr %2298, align 4, !tbaa !5
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = load i32, ptr @test_count, align 4, !tbaa !5
  %2301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror(i32 noundef %2302, ptr noundef @.str.3)
  %2304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror_debug(i32 noundef %2305, ptr noundef @.str.3)
  %2307 = call ptr @__errno_location() #13
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @strerror(i32 noundef %2308) #12
  %2310 = call ptr @__errno_location() #13
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2299, ptr noundef @.str.4, i32 noundef %2300, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 225, ptr noundef %2303, ptr noundef %2306, ptr noundef %2309, i32 noundef %2311) #12
  br label %2313

2313:                                             ; preds = %2296, %2279
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314
  call void @exit(i32 noundef 1) #14
  unreachable

2316:                                             ; No predecessors!
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

2318:                                             ; preds = %2317, %2259
  br label %2319

2319:                                             ; preds = %2318
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  %2322 = load i32, ptr @test_count, align 4, !tbaa !5
  %2323 = add nsw i32 %2322, 1
  store i32 %2323, ptr @test_count, align 4, !tbaa !5
  %2324 = load ptr, ptr %34, align 8, !tbaa !9
  %2325 = call i32 @s2n_connection_free(ptr noundef %2324)
  %2326 = icmp eq i32 %2325, -1
  br i1 %2326, label %2327, label %2380

2327:                                             ; preds = %2321
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

2329:                                             ; preds = %2328
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #12
  %2330 = call ptr @__errno_location() #13
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  store i32 %2331, ptr %46, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @s2n_print_stacktrace(ptr noundef %2332)
  %2334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2335 = trunc i8 %2334 to i1
  br i1 %2335, label %2336, label %2358

2336:                                             ; preds = %2329
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @fileno(ptr noundef %2337) #12
  %2339 = call i32 @isatty(i32 noundef %2338) #12
  %2340 = icmp ne i32 %2339, 0
  br i1 %2340, label %2341, label %2358

2341:                                             ; preds = %2336
  %2342 = load i32, ptr %46, align 4, !tbaa !5
  %2343 = call ptr @__errno_location() #13
  store i32 %2342, ptr %2343, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef @.str.3)
  %2349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef @.str.3)
  %2352 = call ptr @__errno_location() #13
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #12
  %2355 = call ptr @__errno_location() #13
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef @.str, i32 noundef %2345, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 226, ptr noundef %2348, ptr noundef %2351, ptr noundef %2354, i32 noundef %2356) #12
  br label %2375

2358:                                             ; preds = %2336, %2329
  %2359 = load i32, ptr %46, align 4, !tbaa !5
  %2360 = call ptr @__errno_location() #13
  store i32 %2359, ptr %2360, align 4, !tbaa !5
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = load i32, ptr @test_count, align 4, !tbaa !5
  %2363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror(i32 noundef %2364, ptr noundef @.str.3)
  %2366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror_debug(i32 noundef %2367, ptr noundef @.str.3)
  %2369 = call ptr @__errno_location() #13
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @strerror(i32 noundef %2370) #12
  %2372 = call ptr @__errno_location() #13
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2361, ptr noundef @.str.4, i32 noundef %2362, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 226, ptr noundef %2365, ptr noundef %2368, ptr noundef %2371, i32 noundef %2373) #12
  br label %2375

2375:                                             ; preds = %2358, %2341
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %2376

2376:                                             ; preds = %2375
  br label %2377

2377:                                             ; preds = %2376
  call void @exit(i32 noundef 1) #14
  unreachable

2378:                                             ; No predecessors!
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

2380:                                             ; preds = %2379, %2321
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #12
  store ptr null, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #12
  store ptr null, ptr %48, align 8, !tbaa !9
  br label %2383

2383:                                             ; preds = %2382
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = add nsw i32 %2384, 1
  store i32 %2385, ptr @test_count, align 4, !tbaa !5
  %2386 = call ptr @s2n_config_new()
  store ptr %2386, ptr %47, align 8, !tbaa !9
  %2387 = icmp eq ptr %2386, null
  br i1 %2387, label %2388, label %2441

2388:                                             ; preds = %2383
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

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

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

2402:                                             ; preds = %2397
  %2403 = load i32, ptr %49, align 4, !tbaa !5
  %2404 = call ptr @__errno_location() #13
  store i32 %2403, ptr %2404, align 4, !tbaa !5
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = load i32, ptr @test_count, align 4, !tbaa !5
  %2407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror(i32 noundef %2408, ptr noundef @.str.3)
  %2410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror_debug(i32 noundef %2411, ptr noundef @.str.3)
  %2413 = call ptr @__errno_location() #13
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call ptr @strerror(i32 noundef %2414) #12
  %2416 = call ptr @__errno_location() #13
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2405, ptr noundef @.str, i32 noundef %2406, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 234, ptr noundef %2409, ptr noundef %2412, ptr noundef %2415, i32 noundef %2417) #12
  br label %2436

2419:                                             ; preds = %2397, %2390
  %2420 = load i32, ptr %49, align 4, !tbaa !5
  %2421 = call ptr @__errno_location() #13
  store i32 %2420, ptr %2421, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = load i32, ptr @test_count, align 4, !tbaa !5
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror(i32 noundef %2425, ptr noundef @.str.3)
  %2427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call ptr @s2n_strerror_debug(i32 noundef %2428, ptr noundef @.str.3)
  %2430 = call ptr @__errno_location() #13
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #12
  %2433 = call ptr @__errno_location() #13
  %2434 = load i32, ptr %2433, align 4, !tbaa !5
  %2435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2422, ptr noundef @.str.4, i32 noundef %2423, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 234, ptr noundef %2426, ptr noundef %2429, ptr noundef %2432, i32 noundef %2434) #12
  br label %2436

2436:                                             ; preds = %2419, %2402
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #12
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

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

2439:                                             ; No predecessors!
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440, %2383
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442
  br label %2444

2444:                                             ; preds = %2443
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = add nsw i32 %2445, 1
  store i32 %2446, ptr @test_count, align 4, !tbaa !5
  %2447 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2447, ptr %48, align 8, !tbaa !9
  %2448 = icmp eq ptr %2447, null
  br i1 %2448, label %2449, label %2502

2449:                                             ; preds = %2444
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

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

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

2463:                                             ; preds = %2458
  %2464 = load i32, ptr %50, align 4, !tbaa !5
  %2465 = call ptr @__errno_location() #13
  store i32 %2464, ptr %2465, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = load i32, ptr @test_count, align 4, !tbaa !5
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror(i32 noundef %2469, ptr noundef @.str.3)
  %2471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror_debug(i32 noundef %2472, ptr noundef @.str.3)
  %2474 = call ptr @__errno_location() #13
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call ptr @strerror(i32 noundef %2475) #12
  %2477 = call ptr @__errno_location() #13
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2466, ptr noundef @.str, i32 noundef %2467, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 235, ptr noundef %2470, ptr noundef %2473, ptr noundef %2476, i32 noundef %2478) #12
  br label %2497

2480:                                             ; preds = %2458, %2451
  %2481 = load i32, ptr %50, align 4, !tbaa !5
  %2482 = call ptr @__errno_location() #13
  store i32 %2481, ptr %2482, align 4, !tbaa !5
  %2483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2484 = load i32, ptr @test_count, align 4, !tbaa !5
  %2485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror(i32 noundef %2486, ptr noundef @.str.3)
  %2488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2489 = load i32, ptr %2488, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror_debug(i32 noundef %2489, ptr noundef @.str.3)
  %2491 = call ptr @__errno_location() #13
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  %2493 = call ptr @strerror(i32 noundef %2492) #12
  %2494 = call ptr @__errno_location() #13
  %2495 = load i32, ptr %2494, align 4, !tbaa !5
  %2496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2483, ptr noundef @.str.4, i32 noundef %2484, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 235, ptr noundef %2487, ptr noundef %2490, ptr noundef %2493, i32 noundef %2495) #12
  br label %2497

2497:                                             ; preds = %2480, %2463
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #12
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

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

2500:                                             ; No predecessors!
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501, %2444
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503
  br label %2505

2505:                                             ; preds = %2504
  %2506 = load i32, ptr @test_count, align 4, !tbaa !5
  %2507 = add nsw i32 %2506, 1
  store i32 %2507, ptr @test_count, align 4, !tbaa !5
  %2508 = load ptr, ptr %48, align 8, !tbaa !9
  %2509 = load ptr, ptr %47, align 8, !tbaa !9
  %2510 = call i32 @s2n_connection_set_config(ptr noundef %2508, ptr noundef %2509)
  %2511 = icmp eq i32 %2510, -1
  br i1 %2511, label %2512, label %2565

2512:                                             ; preds = %2505
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #12
  %2515 = call ptr @__errno_location() #13
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  store i32 %2516, ptr %51, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = call i32 @s2n_print_stacktrace(ptr noundef %2517)
  %2519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2520 = trunc i8 %2519 to i1
  br i1 %2520, label %2521, label %2543

2521:                                             ; preds = %2514
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = call i32 @fileno(ptr noundef %2522) #12
  %2524 = call i32 @isatty(i32 noundef %2523) #12
  %2525 = icmp ne i32 %2524, 0
  br i1 %2525, label %2526, label %2543

2526:                                             ; preds = %2521
  %2527 = load i32, ptr %51, align 4, !tbaa !5
  %2528 = call ptr @__errno_location() #13
  store i32 %2527, ptr %2528, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror(i32 noundef %2532, ptr noundef @.str.3)
  %2534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror_debug(i32 noundef %2535, ptr noundef @.str.3)
  %2537 = call ptr @__errno_location() #13
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @strerror(i32 noundef %2538) #12
  %2540 = call ptr @__errno_location() #13
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2529, ptr noundef @.str, i32 noundef %2530, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 236, ptr noundef %2533, ptr noundef %2536, ptr noundef %2539, i32 noundef %2541) #12
  br label %2560

2543:                                             ; preds = %2521, %2514
  %2544 = load i32, ptr %51, align 4, !tbaa !5
  %2545 = call ptr @__errno_location() #13
  store i32 %2544, ptr %2545, align 4, !tbaa !5
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror(i32 noundef %2549, ptr noundef @.str.3)
  %2551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror_debug(i32 noundef %2552, ptr noundef @.str.3)
  %2554 = call ptr @__errno_location() #13
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @strerror(i32 noundef %2555) #12
  %2557 = call ptr @__errno_location() #13
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2546, ptr noundef @.str.4, i32 noundef %2547, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 236, ptr noundef %2550, ptr noundef %2553, ptr noundef %2556, i32 noundef %2558) #12
  br label %2560

2560:                                             ; preds = %2543, %2526
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #12
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  call void @exit(i32 noundef 1) #14
  unreachable

2563:                                             ; No predecessors!
  br label %2564

2564:                                             ; preds = %2563
  br label %2565

2565:                                             ; preds = %2564, %2505
  br label %2566

2566:                                             ; preds = %2565
  br label %2567

2567:                                             ; preds = %2566
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #12
  %2568 = load ptr, ptr %48, align 8, !tbaa !9
  %2569 = getelementptr inbounds %struct.s2n_connection, ptr %2568, i32 0, i32 52
  %2570 = getelementptr inbounds %struct.s2n_handshake, ptr %2569, i32 0, i32 0
  store ptr %2570, ptr %52, align 8, !tbaa !9
  br label %2571

2571:                                             ; preds = %2567
  %2572 = load i32, ptr @test_count, align 4, !tbaa !5
  %2573 = add nsw i32 %2572, 1
  store i32 %2573, ptr @test_count, align 4, !tbaa !5
  %2574 = load ptr, ptr %48, align 8, !tbaa !9
  %2575 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %2574, i8 noundef zeroext 34)
  %2576 = icmp eq i32 %2575, -1
  br i1 %2576, label %2577, label %2630

2577:                                             ; preds = %2571
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #12
  %2580 = call ptr @__errno_location() #13
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  store i32 %2581, ptr %53, align 4, !tbaa !5
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = call i32 @s2n_print_stacktrace(ptr noundef %2582)
  %2584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2585 = trunc i8 %2584 to i1
  br i1 %2585, label %2586, label %2608

2586:                                             ; preds = %2579
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = call i32 @fileno(ptr noundef %2587) #12
  %2589 = call i32 @isatty(i32 noundef %2588) #12
  %2590 = icmp ne i32 %2589, 0
  br i1 %2590, label %2591, label %2608

2591:                                             ; preds = %2586
  %2592 = load i32, ptr %53, align 4, !tbaa !5
  %2593 = call ptr @__errno_location() #13
  store i32 %2592, ptr %2593, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror(i32 noundef %2597, ptr noundef @.str.3)
  %2599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2600 = load i32, ptr %2599, align 4, !tbaa !5
  %2601 = call ptr @s2n_strerror_debug(i32 noundef %2600, ptr noundef @.str.3)
  %2602 = call ptr @__errno_location() #13
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = call ptr @strerror(i32 noundef %2603) #12
  %2605 = call ptr @__errno_location() #13
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2594, ptr noundef @.str, i32 noundef %2595, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 239, ptr noundef %2598, ptr noundef %2601, ptr noundef %2604, i32 noundef %2606) #12
  br label %2625

2608:                                             ; preds = %2586, %2579
  %2609 = load i32, ptr %53, align 4, !tbaa !5
  %2610 = call ptr @__errno_location() #13
  store i32 %2609, ptr %2610, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = call ptr @s2n_strerror(i32 noundef %2614, ptr noundef @.str.3)
  %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_debug(i32 noundef %2617, ptr noundef @.str.3)
  %2619 = call ptr @__errno_location() #13
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call ptr @strerror(i32 noundef %2620) #12
  %2622 = call ptr @__errno_location() #13
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2611, ptr noundef @.str.4, i32 noundef %2612, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 239, ptr noundef %2615, ptr noundef %2618, ptr noundef %2621, i32 noundef %2623) #12
  br label %2625

2625:                                             ; preds = %2608, %2591
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #12
  br label %2626

2626:                                             ; preds = %2625
  br label %2627

2627:                                             ; preds = %2626
  call void @exit(i32 noundef 1) #14
  unreachable

2628:                                             ; No predecessors!
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

2630:                                             ; preds = %2629, %2571
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  %2634 = load i32, ptr @test_count, align 4, !tbaa !5
  %2635 = add nsw i32 %2634, 1
  store i32 %2635, ptr @test_count, align 4, !tbaa !5
  %2636 = load ptr, ptr %52, align 8, !tbaa !9
  %2637 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2636, i8 noundef zeroext 3)
  %2638 = icmp eq i32 %2637, -1
  br i1 %2638, label %2639, label %2692

2639:                                             ; preds = %2633
  br label %2640

2640:                                             ; preds = %2639
  br label %2641

2641:                                             ; preds = %2640
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #12
  %2642 = call ptr @__errno_location() #13
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  store i32 %2643, ptr %54, align 4, !tbaa !5
  %2644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2645 = call i32 @s2n_print_stacktrace(ptr noundef %2644)
  %2646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2647 = trunc i8 %2646 to i1
  br i1 %2647, label %2648, label %2670

2648:                                             ; preds = %2641
  %2649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2650 = call i32 @fileno(ptr noundef %2649) #12
  %2651 = call i32 @isatty(i32 noundef %2650) #12
  %2652 = icmp ne i32 %2651, 0
  br i1 %2652, label %2653, label %2670

2653:                                             ; preds = %2648
  %2654 = load i32, ptr %54, align 4, !tbaa !5
  %2655 = call ptr @__errno_location() #13
  store i32 %2654, ptr %2655, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @s2n_strerror(i32 noundef %2659, ptr noundef @.str.3)
  %2661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call ptr @s2n_strerror_debug(i32 noundef %2662, ptr noundef @.str.3)
  %2664 = call ptr @__errno_location() #13
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call ptr @strerror(i32 noundef %2665) #12
  %2667 = call ptr @__errno_location() #13
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2656, ptr noundef @.str, i32 noundef %2657, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 242, ptr noundef %2660, ptr noundef %2663, ptr noundef %2666, i32 noundef %2668) #12
  br label %2687

2670:                                             ; preds = %2648, %2641
  %2671 = load i32, ptr %54, align 4, !tbaa !5
  %2672 = call ptr @__errno_location() #13
  store i32 %2671, ptr %2672, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = load i32, ptr @test_count, align 4, !tbaa !5
  %2675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror(i32 noundef %2676, ptr noundef @.str.3)
  %2678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call ptr @s2n_strerror_debug(i32 noundef %2679, ptr noundef @.str.3)
  %2681 = call ptr @__errno_location() #13
  %2682 = load i32, ptr %2681, align 4, !tbaa !5
  %2683 = call ptr @strerror(i32 noundef %2682) #12
  %2684 = call ptr @__errno_location() #13
  %2685 = load i32, ptr %2684, align 4, !tbaa !5
  %2686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2673, ptr noundef @.str.4, i32 noundef %2674, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 242, ptr noundef %2677, ptr noundef %2680, ptr noundef %2683, i32 noundef %2685) #12
  br label %2687

2687:                                             ; preds = %2670, %2653
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #12
  br label %2688

2688:                                             ; preds = %2687
  br label %2689

2689:                                             ; preds = %2688
  call void @exit(i32 noundef 1) #14
  unreachable

2690:                                             ; No predecessors!
  br label %2691

2691:                                             ; preds = %2690
  br label %2692

2692:                                             ; preds = %2691, %2633
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

2694:                                             ; preds = %2693
  br label %2695

2695:                                             ; preds = %2694
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = add nsw i32 %2696, 1
  store i32 %2697, ptr @test_count, align 4, !tbaa !5
  %2698 = load ptr, ptr %52, align 8, !tbaa !9
  %2699 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2698, i8 noundef zeroext 3)
  %2700 = icmp eq i32 %2699, -1
  br i1 %2700, label %2701, label %2754

2701:                                             ; preds = %2695
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #12
  %2704 = call ptr @__errno_location() #13
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  store i32 %2705, ptr %55, align 4, !tbaa !5
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = call i32 @s2n_print_stacktrace(ptr noundef %2706)
  %2708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2709 = trunc i8 %2708 to i1
  br i1 %2709, label %2710, label %2732

2710:                                             ; preds = %2703
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @fileno(ptr noundef %2711) #12
  %2713 = call i32 @isatty(i32 noundef %2712) #12
  %2714 = icmp ne i32 %2713, 0
  br i1 %2714, label %2715, label %2732

2715:                                             ; preds = %2710
  %2716 = load i32, ptr %55, align 4, !tbaa !5
  %2717 = call ptr @__errno_location() #13
  store i32 %2716, ptr %2717, align 4, !tbaa !5
  %2718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2719 = load i32, ptr @test_count, align 4, !tbaa !5
  %2720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror(i32 noundef %2721, ptr noundef @.str.3)
  %2723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror_debug(i32 noundef %2724, ptr noundef @.str.3)
  %2726 = call ptr @__errno_location() #13
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @strerror(i32 noundef %2727) #12
  %2729 = call ptr @__errno_location() #13
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2718, ptr noundef @.str, i32 noundef %2719, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 243, ptr noundef %2722, ptr noundef %2725, ptr noundef %2728, i32 noundef %2730) #12
  br label %2749

2732:                                             ; preds = %2710, %2703
  %2733 = load i32, ptr %55, align 4, !tbaa !5
  %2734 = call ptr @__errno_location() #13
  store i32 %2733, ptr %2734, align 4, !tbaa !5
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = load i32, ptr @test_count, align 4, !tbaa !5
  %2737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @s2n_strerror(i32 noundef %2738, ptr noundef @.str.3)
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror_debug(i32 noundef %2741, ptr noundef @.str.3)
  %2743 = call ptr @__errno_location() #13
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @strerror(i32 noundef %2744) #12
  %2746 = call ptr @__errno_location() #13
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2735, ptr noundef @.str.4, i32 noundef %2736, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 243, ptr noundef %2739, ptr noundef %2742, ptr noundef %2745, i32 noundef %2747) #12
  br label %2749

2749:                                             ; preds = %2732, %2715
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  br label %2750

2750:                                             ; preds = %2749
  br label %2751

2751:                                             ; preds = %2750
  call void @exit(i32 noundef 1) #14
  unreachable

2752:                                             ; No predecessors!
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

2754:                                             ; preds = %2753, %2695
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

2756:                                             ; preds = %2755
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #12
  call void @llvm.memset.p0.i64(ptr align 16 %56, i8 0, i64 32, i1 false)
  br label %2757

2757:                                             ; preds = %2756
  %2758 = load i32, ptr @test_count, align 4, !tbaa !5
  %2759 = add nsw i32 %2758, 1
  store i32 %2759, ptr @test_count, align 4, !tbaa !5
  %2760 = load ptr, ptr %52, align 8, !tbaa !9
  %2761 = getelementptr inbounds [32 x i8], ptr %56, i64 0, i64 0
  %2762 = call i32 @s2n_stuffer_write_bytes(ptr noundef %2760, ptr noundef %2761, i32 noundef 32)
  %2763 = icmp eq i32 %2762, -1
  br i1 %2763, label %2764, label %2817

2764:                                             ; preds = %2757
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

2766:                                             ; preds = %2765
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #12
  %2767 = call ptr @__errno_location() #13
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  store i32 %2768, ptr %57, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = call i32 @s2n_print_stacktrace(ptr noundef %2769)
  %2771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2772 = trunc i8 %2771 to i1
  br i1 %2772, label %2773, label %2795

2773:                                             ; preds = %2766
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = call i32 @fileno(ptr noundef %2774) #12
  %2776 = call i32 @isatty(i32 noundef %2775) #12
  %2777 = icmp ne i32 %2776, 0
  br i1 %2777, label %2778, label %2795

2778:                                             ; preds = %2773
  %2779 = load i32, ptr %57, align 4, !tbaa !5
  %2780 = call ptr @__errno_location() #13
  store i32 %2779, ptr %2780, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef @.str.3)
  %2786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef %2787, ptr noundef @.str.3)
  %2789 = call ptr @__errno_location() #13
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #12
  %2792 = call ptr @__errno_location() #13
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef @.str, i32 noundef %2782, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 247, ptr noundef %2785, ptr noundef %2788, ptr noundef %2791, i32 noundef %2793) #12
  br label %2812

2795:                                             ; preds = %2773, %2766
  %2796 = load i32, ptr %57, align 4, !tbaa !5
  %2797 = call ptr @__errno_location() #13
  store i32 %2796, ptr %2797, align 4, !tbaa !5
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = load i32, ptr @test_count, align 4, !tbaa !5
  %2800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror(i32 noundef %2801, ptr noundef @.str.3)
  %2803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror_debug(i32 noundef %2804, ptr noundef @.str.3)
  %2806 = call ptr @__errno_location() #13
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @strerror(i32 noundef %2807) #12
  %2809 = call ptr @__errno_location() #13
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2798, ptr noundef @.str.4, i32 noundef %2799, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 247, ptr noundef %2802, ptr noundef %2805, ptr noundef %2808, i32 noundef %2810) #12
  br label %2812

2812:                                             ; preds = %2795, %2778
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  br label %2813

2813:                                             ; preds = %2812
  br label %2814

2814:                                             ; preds = %2813
  call void @exit(i32 noundef 1) #14
  unreachable

2815:                                             ; No predecessors!
  br label %2816

2816:                                             ; preds = %2815
  br label %2817

2817:                                             ; preds = %2816, %2757
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #12
  call void @llvm.memset.p0.i64(ptr align 16 %58, i8 0, i64 32, i1 false)
  br label %2820

2820:                                             ; preds = %2819
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = add nsw i32 %2821, 1
  store i32 %2822, ptr @test_count, align 4, !tbaa !5
  %2823 = load ptr, ptr %52, align 8, !tbaa !9
  %2824 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2823, i8 noundef zeroext 32)
  %2825 = icmp eq i32 %2824, -1
  br i1 %2825, label %2826, label %2879

2826:                                             ; preds = %2820
  br label %2827

2827:                                             ; preds = %2826
  br label %2828

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

2835:                                             ; preds = %2828
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = call i32 @fileno(ptr noundef %2836) #12
  %2838 = call i32 @isatty(i32 noundef %2837) #12
  %2839 = icmp ne i32 %2838, 0
  br i1 %2839, label %2840, label %2857

2840:                                             ; preds = %2835
  %2841 = load i32, ptr %59, align 4, !tbaa !5
  %2842 = call ptr @__errno_location() #13
  store i32 %2841, ptr %2842, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %2845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @s2n_strerror(i32 noundef %2846, ptr noundef @.str.3)
  %2848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call ptr @s2n_strerror_debug(i32 noundef %2849, ptr noundef @.str.3)
  %2851 = call ptr @__errno_location() #13
  %2852 = load i32, ptr %2851, align 4, !tbaa !5
  %2853 = call ptr @strerror(i32 noundef %2852) #12
  %2854 = call ptr @__errno_location() #13
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2843, ptr noundef @.str, i32 noundef %2844, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 251, ptr noundef %2847, ptr noundef %2850, ptr noundef %2853, i32 noundef %2855) #12
  br label %2874

2857:                                             ; preds = %2835, %2828
  %2858 = load i32, ptr %59, align 4, !tbaa !5
  %2859 = call ptr @__errno_location() #13
  store i32 %2858, ptr %2859, align 4, !tbaa !5
  %2860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2861 = load i32, ptr @test_count, align 4, !tbaa !5
  %2862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror(i32 noundef %2863, ptr noundef @.str.3)
  %2865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror_debug(i32 noundef %2866, ptr noundef @.str.3)
  %2868 = call ptr @__errno_location() #13
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @strerror(i32 noundef %2869) #12
  %2871 = call ptr @__errno_location() #13
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2860, ptr noundef @.str.4, i32 noundef %2861, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 251, ptr noundef %2864, ptr noundef %2867, ptr noundef %2870, i32 noundef %2872) #12
  br label %2874

2874:                                             ; preds = %2857, %2840
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

2876:                                             ; preds = %2875
  call void @exit(i32 noundef 1) #14
  unreachable

2877:                                             ; No predecessors!
  br label %2878

2878:                                             ; preds = %2877
  br label %2879

2879:                                             ; preds = %2878, %2820
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  br label %2882

2882:                                             ; preds = %2881
  %2883 = load i32, ptr @test_count, align 4, !tbaa !5
  %2884 = add nsw i32 %2883, 1
  store i32 %2884, ptr @test_count, align 4, !tbaa !5
  %2885 = load ptr, ptr %52, align 8, !tbaa !9
  %2886 = getelementptr inbounds [32 x i8], ptr %58, i64 0, i64 0
  %2887 = call i32 @s2n_stuffer_write_bytes(ptr noundef %2885, ptr noundef %2886, i32 noundef 32)
  %2888 = icmp eq i32 %2887, -1
  br i1 %2888, label %2889, label %2942

2889:                                             ; preds = %2882
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

2891:                                             ; preds = %2890
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #12
  %2892 = call ptr @__errno_location() #13
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  store i32 %2893, ptr %60, align 4, !tbaa !5
  %2894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2895 = call i32 @s2n_print_stacktrace(ptr noundef %2894)
  %2896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2897 = trunc i8 %2896 to i1
  br i1 %2897, label %2898, label %2920

2898:                                             ; preds = %2891
  %2899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2900 = call i32 @fileno(ptr noundef %2899) #12
  %2901 = call i32 @isatty(i32 noundef %2900) #12
  %2902 = icmp ne i32 %2901, 0
  br i1 %2902, label %2903, label %2920

2903:                                             ; preds = %2898
  %2904 = load i32, ptr %60, align 4, !tbaa !5
  %2905 = call ptr @__errno_location() #13
  store i32 %2904, ptr %2905, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = load i32, ptr @test_count, align 4, !tbaa !5
  %2908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @s2n_strerror(i32 noundef %2909, ptr noundef @.str.3)
  %2911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call ptr @s2n_strerror_debug(i32 noundef %2912, ptr noundef @.str.3)
  %2914 = call ptr @__errno_location() #13
  %2915 = load i32, ptr %2914, align 4, !tbaa !5
  %2916 = call ptr @strerror(i32 noundef %2915) #12
  %2917 = call ptr @__errno_location() #13
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  %2919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2906, ptr noundef @.str, i32 noundef %2907, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 252, ptr noundef %2910, ptr noundef %2913, ptr noundef %2916, i32 noundef %2918) #12
  br label %2937

2920:                                             ; preds = %2898, %2891
  %2921 = load i32, ptr %60, align 4, !tbaa !5
  %2922 = call ptr @__errno_location() #13
  store i32 %2921, ptr %2922, align 4, !tbaa !5
  %2923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2924 = load i32, ptr @test_count, align 4, !tbaa !5
  %2925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @s2n_strerror(i32 noundef %2926, ptr noundef @.str.3)
  %2928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call ptr @s2n_strerror_debug(i32 noundef %2929, ptr noundef @.str.3)
  %2931 = call ptr @__errno_location() #13
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = call ptr @strerror(i32 noundef %2932) #12
  %2934 = call ptr @__errno_location() #13
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2923, ptr noundef @.str.4, i32 noundef %2924, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 252, ptr noundef %2927, ptr noundef %2930, ptr noundef %2933, i32 noundef %2935) #12
  br label %2937

2937:                                             ; preds = %2920, %2903
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #12
  br label %2938

2938:                                             ; preds = %2937
  br label %2939

2939:                                             ; preds = %2938
  call void @exit(i32 noundef 1) #14
  unreachable

2940:                                             ; No predecessors!
  br label %2941

2941:                                             ; preds = %2940
  br label %2942

2942:                                             ; preds = %2941, %2882
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

2944:                                             ; preds = %2943
  br label %2945

2945:                                             ; preds = %2944
  %2946 = load i32, ptr @test_count, align 4, !tbaa !5
  %2947 = add nsw i32 %2946, 1
  store i32 %2947, ptr @test_count, align 4, !tbaa !5
  %2948 = load ptr, ptr %52, align 8, !tbaa !9
  %2949 = call i32 @s2n_stuffer_write_uint16(ptr noundef %2948, i16 noundef zeroext 4865)
  %2950 = icmp eq i32 %2949, -1
  br i1 %2950, label %2951, label %3004

2951:                                             ; preds = %2945
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

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

2960:                                             ; preds = %2953
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @fileno(ptr noundef %2961) #12
  %2963 = call i32 @isatty(i32 noundef %2962) #12
  %2964 = icmp ne i32 %2963, 0
  br i1 %2964, label %2965, label %2982

2965:                                             ; preds = %2960
  %2966 = load i32, ptr %61, align 4, !tbaa !5
  %2967 = call ptr @__errno_location() #13
  store i32 %2966, ptr %2967, align 4, !tbaa !5
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef @.str.3)
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror_debug(i32 noundef %2974, ptr noundef @.str.3)
  %2976 = call ptr @__errno_location() #13
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #12
  %2979 = call ptr @__errno_location() #13
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2968, ptr noundef @.str, i32 noundef %2969, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 255, ptr noundef %2972, ptr noundef %2975, ptr noundef %2978, i32 noundef %2980) #12
  br label %2999

2982:                                             ; preds = %2960, %2953
  %2983 = load i32, ptr %61, align 4, !tbaa !5
  %2984 = call ptr @__errno_location() #13
  store i32 %2983, ptr %2984, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call ptr @s2n_strerror(i32 noundef %2988, ptr noundef @.str.3)
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror_debug(i32 noundef %2991, ptr noundef @.str.3)
  %2993 = call ptr @__errno_location() #13
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @strerror(i32 noundef %2994) #12
  %2996 = call ptr @__errno_location() #13
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2985, ptr noundef @.str.4, i32 noundef %2986, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 255, ptr noundef %2989, ptr noundef %2992, ptr noundef %2995, i32 noundef %2997) #12
  br label %2999

2999:                                             ; preds = %2982, %2965
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

3001:                                             ; preds = %3000
  call void @exit(i32 noundef 1) #14
  unreachable

3002:                                             ; No predecessors!
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003, %2945
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006
  %3008 = load i32, ptr @test_count, align 4, !tbaa !5
  %3009 = add nsw i32 %3008, 1
  store i32 %3009, ptr @test_count, align 4, !tbaa !5
  %3010 = load ptr, ptr %52, align 8, !tbaa !9
  %3011 = call i32 @s2n_stuffer_write_uint8(ptr noundef %3010, i8 noundef zeroext 0)
  %3012 = icmp eq i32 %3011, -1
  br i1 %3012, label %3013, label %3066

3013:                                             ; preds = %3007
  br label %3014

3014:                                             ; preds = %3013
  br label %3015

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

3022:                                             ; preds = %3015
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = call i32 @fileno(ptr noundef %3023) #12
  %3025 = call i32 @isatty(i32 noundef %3024) #12
  %3026 = icmp ne i32 %3025, 0
  br i1 %3026, label %3027, label %3044

3027:                                             ; preds = %3022
  %3028 = load i32, ptr %62, align 4, !tbaa !5
  %3029 = call ptr @__errno_location() #13
  store i32 %3028, ptr %3029, align 4, !tbaa !5
  %3030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3031 = load i32, ptr @test_count, align 4, !tbaa !5
  %3032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror(i32 noundef %3033, ptr noundef @.str.3)
  %3035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror_debug(i32 noundef %3036, ptr noundef @.str.3)
  %3038 = call ptr @__errno_location() #13
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @strerror(i32 noundef %3039) #12
  %3041 = call ptr @__errno_location() #13
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3030, ptr noundef @.str, i32 noundef %3031, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 258, ptr noundef %3034, ptr noundef %3037, ptr noundef %3040, i32 noundef %3042) #12
  br label %3061

3044:                                             ; preds = %3022, %3015
  %3045 = load i32, ptr %62, align 4, !tbaa !5
  %3046 = call ptr @__errno_location() #13
  store i32 %3045, ptr %3046, align 4, !tbaa !5
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call ptr @s2n_strerror(i32 noundef %3050, ptr noundef @.str.3)
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror_debug(i32 noundef %3053, ptr noundef @.str.3)
  %3055 = call ptr @__errno_location() #13
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @strerror(i32 noundef %3056) #12
  %3058 = call ptr @__errno_location() #13
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3047, ptr noundef @.str.4, i32 noundef %3048, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 258, ptr noundef %3051, ptr noundef %3054, ptr noundef %3057, i32 noundef %3059) #12
  br label %3061

3061:                                             ; preds = %3044, %3027
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #12
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062
  call void @exit(i32 noundef 1) #14
  unreachable

3064:                                             ; No predecessors!
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

3066:                                             ; preds = %3065, %3007
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  %3072 = load i32, ptr @test_count, align 4, !tbaa !5
  %3073 = add nsw i32 %3072, 1
  store i32 %3073, ptr @test_count, align 4, !tbaa !5
  %3074 = load ptr, ptr %48, align 8, !tbaa !9
  %3075 = call i32 @s2n_server_hello_recv(ptr noundef %3074)
  %3076 = icmp eq i32 %3075, -1
  br i1 %3076, label %3130, label %3077

3077:                                             ; preds = %3071
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

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

3086:                                             ; preds = %3079
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = call i32 @fileno(ptr noundef %3087) #12
  %3089 = call i32 @isatty(i32 noundef %3088) #12
  %3090 = icmp ne i32 %3089, 0
  br i1 %3090, label %3091, label %3108

3091:                                             ; preds = %3086
  %3092 = load i32, ptr %63, align 4, !tbaa !5
  %3093 = call ptr @__errno_location() #13
  store i32 %3092, ptr %3093, align 4, !tbaa !5
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = load i32, ptr @test_count, align 4, !tbaa !5
  %3096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call ptr @s2n_strerror(i32 noundef %3097, ptr noundef @.str.3)
  %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_debug(i32 noundef %3100, ptr noundef @.str.3)
  %3102 = call ptr @__errno_location() #13
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @strerror(i32 noundef %3103) #12
  %3105 = call ptr @__errno_location() #13
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3094, ptr noundef @.str, i32 noundef %3095, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 260, ptr noundef %3098, ptr noundef %3101, ptr noundef %3104, i32 noundef %3106) #12
  br label %3125

3108:                                             ; preds = %3086, %3079
  %3109 = load i32, ptr %63, align 4, !tbaa !5
  %3110 = call ptr @__errno_location() #13
  store i32 %3109, ptr %3110, align 4, !tbaa !5
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = load i32, ptr @test_count, align 4, !tbaa !5
  %3113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror(i32 noundef %3114, ptr noundef @.str.3)
  %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_debug(i32 noundef %3117, ptr noundef @.str.3)
  %3119 = call ptr @__errno_location() #13
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @strerror(i32 noundef %3120) #12
  %3122 = call ptr @__errno_location() #13
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3111, ptr noundef @.str.4, i32 noundef %3112, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 260, ptr noundef %3115, ptr noundef %3118, ptr noundef %3121, i32 noundef %3123) #12
  br label %3125

3125:                                             ; preds = %3108, %3091
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  br label %3126

3126:                                             ; preds = %3125
  br label %3127

3127:                                             ; preds = %3126
  call void @exit(i32 noundef 1) #14
  unreachable

3128:                                             ; No predecessors!
  br label %3129

3129:                                             ; preds = %3128
  br label %3130

3130:                                             ; preds = %3129, %3071
  br label %3131

3131:                                             ; preds = %3130
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132
  %3134 = load i32, ptr @test_count, align 4, !tbaa !5
  %3135 = add nsw i32 %3134, 1
  store i32 %3135, ptr @test_count, align 4, !tbaa !5
  %3136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3137 = load i32, ptr %3136, align 4, !tbaa !5
  %3138 = icmp eq i32 %3137, 335544322
  br i1 %3138, label %3192, label %3139

3139:                                             ; preds = %3133
  br label %3140

3140:                                             ; preds = %3139
  br label %3141

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

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

3153:                                             ; preds = %3148
  %3154 = load i32, ptr %64, align 4, !tbaa !5
  %3155 = call ptr @__errno_location() #13
  store i32 %3154, ptr %3155, align 4, !tbaa !5
  %3156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3157 = load i32, ptr @test_count, align 4, !tbaa !5
  %3158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  %3160 = call ptr @s2n_strerror(i32 noundef %3159, ptr noundef @.str.3)
  %3161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror_debug(i32 noundef %3162, ptr noundef @.str.3)
  %3164 = call ptr @__errno_location() #13
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call ptr @strerror(i32 noundef %3165) #12
  %3167 = call ptr @__errno_location() #13
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3156, ptr noundef @.str, i32 noundef %3157, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 260, ptr noundef %3160, ptr noundef %3163, ptr noundef %3166, i32 noundef %3168) #12
  br label %3187

3170:                                             ; preds = %3148, %3141
  %3171 = load i32, ptr %64, align 4, !tbaa !5
  %3172 = call ptr @__errno_location() #13
  store i32 %3171, ptr %3172, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3176, ptr noundef @.str.3)
  %3178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef @.str.3)
  %3181 = call ptr @__errno_location() #13
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call ptr @strerror(i32 noundef %3182) #12
  %3184 = call ptr @__errno_location() #13
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3173, ptr noundef @.str.4, i32 noundef %3174, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 260, ptr noundef %3177, ptr noundef %3180, ptr noundef %3183, i32 noundef %3185) #12
  br label %3187

3187:                                             ; preds = %3170, %3153
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %3188

3188:                                             ; preds = %3187
  br label %3189

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

3190:                                             ; No predecessors!
  br label %3191

3191:                                             ; preds = %3190
  br label %3192

3192:                                             ; preds = %3191, %3133
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193
  br label %3195

3195:                                             ; preds = %3194
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = add nsw i32 %3196, 1
  store i32 %3197, ptr @test_count, align 4, !tbaa !5
  %3198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @s2n_strerror_debug(i32 noundef %3199, ptr noundef @.str.3)
  %3201 = icmp eq ptr %3200, null
  br i1 %3201, label %3202, label %3255

3202:                                             ; preds = %3195
  br label %3203

3203:                                             ; preds = %3202
  br label %3204

3204:                                             ; preds = %3203
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #12
  %3205 = call ptr @__errno_location() #13
  %3206 = load i32, ptr %3205, align 4, !tbaa !5
  store i32 %3206, ptr %65, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = call i32 @s2n_print_stacktrace(ptr noundef %3207)
  %3209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3210 = trunc i8 %3209 to i1
  br i1 %3210, label %3211, label %3233

3211:                                             ; preds = %3204
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = call i32 @fileno(ptr noundef %3212) #12
  %3214 = call i32 @isatty(i32 noundef %3213) #12
  %3215 = icmp ne i32 %3214, 0
  br i1 %3215, label %3216, label %3233

3216:                                             ; preds = %3211
  %3217 = load i32, ptr %65, align 4, !tbaa !5
  %3218 = call ptr @__errno_location() #13
  store i32 %3217, ptr %3218, align 4, !tbaa !5
  %3219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3220 = load i32, ptr @test_count, align 4, !tbaa !5
  %3221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3222 = load i32, ptr %3221, align 4, !tbaa !5
  %3223 = call ptr @s2n_strerror(i32 noundef %3222, ptr noundef @.str.3)
  %3224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = call ptr @s2n_strerror_debug(i32 noundef %3225, ptr noundef @.str.3)
  %3227 = call ptr @__errno_location() #13
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call ptr @strerror(i32 noundef %3228) #12
  %3230 = call ptr @__errno_location() #13
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3219, ptr noundef @.str, i32 noundef %3220, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 260, ptr noundef %3223, ptr noundef %3226, ptr noundef %3229, i32 noundef %3231) #12
  br label %3250

3233:                                             ; preds = %3211, %3204
  %3234 = load i32, ptr %65, align 4, !tbaa !5
  %3235 = call ptr @__errno_location() #13
  store i32 %3234, ptr %3235, align 4, !tbaa !5
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = load i32, ptr @test_count, align 4, !tbaa !5
  %3238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call ptr @s2n_strerror(i32 noundef %3239, ptr noundef @.str.3)
  %3241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror_debug(i32 noundef %3242, ptr noundef @.str.3)
  %3244 = call ptr @__errno_location() #13
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  %3246 = call ptr @strerror(i32 noundef %3245) #12
  %3247 = call ptr @__errno_location() #13
  %3248 = load i32, ptr %3247, align 4, !tbaa !5
  %3249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3236, ptr noundef @.str.4, i32 noundef %3237, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 260, ptr noundef %3240, ptr noundef %3243, ptr noundef %3246, i32 noundef %3248) #12
  br label %3250

3250:                                             ; preds = %3233, %3216
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #12
  br label %3251

3251:                                             ; preds = %3250
  br label %3252

3252:                                             ; preds = %3251
  call void @exit(i32 noundef 1) #14
  unreachable

3253:                                             ; No predecessors!
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254, %3195
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259
  %3261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3261, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3262 = call ptr @__errno_location() #13
  store i32 0, ptr %3262, align 4, !tbaa !5
  br label %3263

3263:                                             ; preds = %3260
  br label %3264

3264:                                             ; preds = %3263
  br label %3265

3265:                                             ; preds = %3264
  br label %3266

3266:                                             ; preds = %3265
  br label %3267

3267:                                             ; preds = %3266
  %3268 = load i32, ptr @test_count, align 4, !tbaa !5
  %3269 = add nsw i32 %3268, 1
  store i32 %3269, ptr @test_count, align 4, !tbaa !5
  %3270 = load ptr, ptr %48, align 8, !tbaa !9
  %3271 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef %3270)
  br i1 %3271, label %3272, label %3325

3272:                                             ; preds = %3267
  br label %3273

3273:                                             ; preds = %3272
  br label %3274

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

3281:                                             ; preds = %3274
  %3282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3283 = call i32 @fileno(ptr noundef %3282) #12
  %3284 = call i32 @isatty(i32 noundef %3283) #12
  %3285 = icmp ne i32 %3284, 0
  br i1 %3285, label %3286, label %3303

3286:                                             ; preds = %3281
  %3287 = load i32, ptr %66, align 4, !tbaa !5
  %3288 = call ptr @__errno_location() #13
  store i32 %3287, ptr %3288, align 4, !tbaa !5
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3292 = load i32, ptr %3291, align 4, !tbaa !5
  %3293 = call ptr @s2n_strerror(i32 noundef %3292, ptr noundef @.str.3)
  %3294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3295 = load i32, ptr %3294, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror_debug(i32 noundef %3295, ptr noundef @.str.3)
  %3297 = call ptr @__errno_location() #13
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  %3299 = call ptr @strerror(i32 noundef %3298) #12
  %3300 = call ptr @__errno_location() #13
  %3301 = load i32, ptr %3300, align 4, !tbaa !5
  %3302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3289, ptr noundef @.str, i32 noundef %3290, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 262, ptr noundef %3293, ptr noundef %3296, ptr noundef %3299, i32 noundef %3301) #12
  br label %3320

3303:                                             ; preds = %3281, %3274
  %3304 = load i32, ptr %66, align 4, !tbaa !5
  %3305 = call ptr @__errno_location() #13
  store i32 %3304, ptr %3305, align 4, !tbaa !5
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = load i32, ptr @test_count, align 4, !tbaa !5
  %3308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror(i32 noundef %3309, ptr noundef @.str.3)
  %3311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @s2n_strerror_debug(i32 noundef %3312, ptr noundef @.str.3)
  %3314 = call ptr @__errno_location() #13
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @strerror(i32 noundef %3315) #12
  %3317 = call ptr @__errno_location() #13
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3306, ptr noundef @.str.4, i32 noundef %3307, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 262, ptr noundef %3310, ptr noundef %3313, ptr noundef %3316, i32 noundef %3318) #12
  br label %3320

3320:                                             ; preds = %3303, %3286
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #12
  br label %3321

3321:                                             ; preds = %3320
  br label %3322

3322:                                             ; preds = %3321
  call void @exit(i32 noundef 1) #14
  unreachable

3323:                                             ; No predecessors!
  br label %3324

3324:                                             ; preds = %3323
  br label %3325

3325:                                             ; preds = %3324, %3267
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

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

3334:                                             ; preds = %3328
  br label %3335

3335:                                             ; preds = %3334
  br label %3336

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

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

3348:                                             ; preds = %3343
  %3349 = load i32, ptr %67, align 4, !tbaa !5
  %3350 = call ptr @__errno_location() #13
  store i32 %3349, ptr %3350, align 4, !tbaa !5
  %3351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3352 = load i32, ptr @test_count, align 4, !tbaa !5
  %3353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3354 = load i32, ptr %3353, align 4, !tbaa !5
  %3355 = call ptr @s2n_strerror(i32 noundef %3354, ptr noundef @.str.3)
  %3356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3357 = load i32, ptr %3356, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror_debug(i32 noundef %3357, ptr noundef @.str.3)
  %3359 = call ptr @__errno_location() #13
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call ptr @strerror(i32 noundef %3360) #12
  %3362 = call ptr @__errno_location() #13
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3351, ptr noundef @.str, i32 noundef %3352, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 264, ptr noundef %3355, ptr noundef %3358, ptr noundef %3361, i32 noundef %3363) #12
  br label %3382

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

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

3383:                                             ; preds = %3382
  br label %3384

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

3385:                                             ; No predecessors!
  br label %3386

3386:                                             ; preds = %3385
  br label %3387

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

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388
  br label %3390

3390:                                             ; preds = %3389
  %3391 = load i32, ptr @test_count, align 4, !tbaa !5
  %3392 = add nsw i32 %3391, 1
  store i32 %3392, ptr @test_count, align 4, !tbaa !5
  %3393 = load ptr, ptr %48, align 8, !tbaa !9
  %3394 = call i32 @s2n_connection_free(ptr noundef %3393)
  %3395 = icmp eq i32 %3394, -1
  br i1 %3395, label %3396, label %3449

3396:                                             ; preds = %3390
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

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

3405:                                             ; preds = %3398
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = call i32 @fileno(ptr noundef %3406) #12
  %3408 = call i32 @isatty(i32 noundef %3407) #12
  %3409 = icmp ne i32 %3408, 0
  br i1 %3409, label %3410, label %3427

3410:                                             ; preds = %3405
  %3411 = load i32, ptr %68, align 4, !tbaa !5
  %3412 = call ptr @__errno_location() #13
  store i32 %3411, ptr %3412, align 4, !tbaa !5
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror(i32 noundef %3416, ptr noundef @.str.3)
  %3418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror_debug(i32 noundef %3419, ptr noundef @.str.3)
  %3421 = call ptr @__errno_location() #13
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call ptr @strerror(i32 noundef %3422) #12
  %3424 = call ptr @__errno_location() #13
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3413, ptr noundef @.str, i32 noundef %3414, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 265, ptr noundef %3417, ptr noundef %3420, ptr noundef %3423, i32 noundef %3425) #12
  br label %3444

3427:                                             ; preds = %3405, %3398
  %3428 = load i32, ptr %68, align 4, !tbaa !5
  %3429 = call ptr @__errno_location() #13
  store i32 %3428, ptr %3429, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = load i32, ptr @test_count, align 4, !tbaa !5
  %3432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call ptr @s2n_strerror(i32 noundef %3433, ptr noundef @.str.3)
  %3435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror_debug(i32 noundef %3436, ptr noundef @.str.3)
  %3438 = call ptr @__errno_location() #13
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call ptr @strerror(i32 noundef %3439) #12
  %3441 = call ptr @__errno_location() #13
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3430, ptr noundef @.str.4, i32 noundef %3431, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 265, ptr noundef %3434, ptr noundef %3437, ptr noundef %3440, i32 noundef %3442) #12
  br label %3444

3444:                                             ; preds = %3427, %3410
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #12
  br label %3445

3445:                                             ; preds = %3444
  br label %3446

3446:                                             ; preds = %3445
  call void @exit(i32 noundef 1) #14
  unreachable

3447:                                             ; No predecessors!
  br label %3448

3448:                                             ; preds = %3447
  br label %3449

3449:                                             ; preds = %3448, %3390
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #12
  store ptr null, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #12
  store ptr null, ptr %70, align 8, !tbaa !9
  br label %3452

3452:                                             ; preds = %3451
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = add nsw i32 %3453, 1
  store i32 %3454, ptr @test_count, align 4, !tbaa !5
  %3455 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3455, ptr %69, align 8, !tbaa !9
  %3456 = icmp eq ptr %3455, null
  br i1 %3456, label %3457, label %3510

3457:                                             ; preds = %3452
  br label %3458

3458:                                             ; preds = %3457
  br label %3459

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

3466:                                             ; preds = %3459
  %3467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3468 = call i32 @fileno(ptr noundef %3467) #12
  %3469 = call i32 @isatty(i32 noundef %3468) #12
  %3470 = icmp ne i32 %3469, 0
  br i1 %3470, label %3471, label %3488

3471:                                             ; preds = %3466
  %3472 = load i32, ptr %71, align 4, !tbaa !5
  %3473 = call ptr @__errno_location() #13
  store i32 %3472, ptr %3473, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror(i32 noundef %3477, ptr noundef @.str.3)
  %3479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror_debug(i32 noundef %3480, ptr noundef @.str.3)
  %3482 = call ptr @__errno_location() #13
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @strerror(i32 noundef %3483) #12
  %3485 = call ptr @__errno_location() #13
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3474, ptr noundef @.str, i32 noundef %3475, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 273, ptr noundef %3478, ptr noundef %3481, ptr noundef %3484, i32 noundef %3486) #12
  br label %3505

3488:                                             ; preds = %3466, %3459
  %3489 = load i32, ptr %71, align 4, !tbaa !5
  %3490 = call ptr @__errno_location() #13
  store i32 %3489, ptr %3490, align 4, !tbaa !5
  %3491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3492 = load i32, ptr @test_count, align 4, !tbaa !5
  %3493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror(i32 noundef %3494, ptr noundef @.str.3)
  %3496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror_debug(i32 noundef %3497, ptr noundef @.str.3)
  %3499 = call ptr @__errno_location() #13
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @strerror(i32 noundef %3500) #12
  %3502 = call ptr @__errno_location() #13
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3491, ptr noundef @.str.4, i32 noundef %3492, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 273, ptr noundef %3495, ptr noundef %3498, ptr noundef %3501, i32 noundef %3503) #12
  br label %3505

3505:                                             ; preds = %3488, %3471
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #12
  br label %3506

3506:                                             ; preds = %3505
  br label %3507

3507:                                             ; preds = %3506
  call void @exit(i32 noundef 1) #14
  unreachable

3508:                                             ; No predecessors!
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

3510:                                             ; preds = %3509, %3452
  br label %3511

3511:                                             ; preds = %3510
  br label %3512

3512:                                             ; preds = %3511
  br label %3513

3513:                                             ; preds = %3512
  %3514 = load i32, ptr @test_count, align 4, !tbaa !5
  %3515 = add nsw i32 %3514, 1
  store i32 %3515, ptr @test_count, align 4, !tbaa !5
  %3516 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3516, ptr %70, align 8, !tbaa !9
  %3517 = icmp eq ptr %3516, null
  br i1 %3517, label %3518, label %3571

3518:                                             ; preds = %3513
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

3520:                                             ; preds = %3519
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #12
  %3521 = call ptr @__errno_location() #13
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  store i32 %3522, ptr %72, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = call i32 @s2n_print_stacktrace(ptr noundef %3523)
  %3525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3526 = trunc i8 %3525 to i1
  br i1 %3526, label %3527, label %3549

3527:                                             ; preds = %3520
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3529 = call i32 @fileno(ptr noundef %3528) #12
  %3530 = call i32 @isatty(i32 noundef %3529) #12
  %3531 = icmp ne i32 %3530, 0
  br i1 %3531, label %3532, label %3549

3532:                                             ; preds = %3527
  %3533 = load i32, ptr %72, align 4, !tbaa !5
  %3534 = call ptr @__errno_location() #13
  store i32 %3533, ptr %3534, align 4, !tbaa !5
  %3535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3536 = load i32, ptr @test_count, align 4, !tbaa !5
  %3537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3538 = load i32, ptr %3537, align 4, !tbaa !5
  %3539 = call ptr @s2n_strerror(i32 noundef %3538, ptr noundef @.str.3)
  %3540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call ptr @s2n_strerror_debug(i32 noundef %3541, ptr noundef @.str.3)
  %3543 = call ptr @__errno_location() #13
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call ptr @strerror(i32 noundef %3544) #12
  %3546 = call ptr @__errno_location() #13
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3535, ptr noundef @.str, i32 noundef %3536, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 274, ptr noundef %3539, ptr noundef %3542, ptr noundef %3545, i32 noundef %3547) #12
  br label %3566

3549:                                             ; preds = %3527, %3520
  %3550 = load i32, ptr %72, align 4, !tbaa !5
  %3551 = call ptr @__errno_location() #13
  store i32 %3550, ptr %3551, align 4, !tbaa !5
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = load i32, ptr @test_count, align 4, !tbaa !5
  %3554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror(i32 noundef %3555, ptr noundef @.str.3)
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror_debug(i32 noundef %3558, ptr noundef @.str.3)
  %3560 = call ptr @__errno_location() #13
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @strerror(i32 noundef %3561) #12
  %3563 = call ptr @__errno_location() #13
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3552, ptr noundef @.str.4, i32 noundef %3553, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 274, ptr noundef %3556, ptr noundef %3559, ptr noundef %3562, i32 noundef %3564) #12
  br label %3566

3566:                                             ; preds = %3549, %3532
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #12
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567
  call void @exit(i32 noundef 1) #14
  unreachable

3569:                                             ; No predecessors!
  br label %3570

3570:                                             ; preds = %3569
  br label %3571

3571:                                             ; preds = %3570, %3513
  br label %3572

3572:                                             ; preds = %3571
  br label %3573

3573:                                             ; preds = %3572
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #12
  %3574 = load ptr, ptr %69, align 8, !tbaa !9
  %3575 = getelementptr inbounds %struct.s2n_connection, ptr %3574, i32 0, i32 52
  %3576 = getelementptr inbounds %struct.s2n_handshake, ptr %3575, i32 0, i32 0
  store ptr %3576, ptr %73, align 8, !tbaa !9
  br label %3577

3577:                                             ; preds = %3573
  %3578 = load i32, ptr @test_count, align 4, !tbaa !5
  %3579 = add nsw i32 %3578, 1
  store i32 %3579, ptr @test_count, align 4, !tbaa !5
  %3580 = load ptr, ptr %70, align 8, !tbaa !9
  %3581 = load i16, ptr @s2n_server_key_share_extension, align 8, !tbaa !53
  %3582 = call i32 @s2n_connection_allow_response_extension(ptr noundef %3580, i16 noundef zeroext %3581)
  %3583 = icmp eq i32 %3582, -1
  br i1 %3583, label %3584, label %3637

3584:                                             ; preds = %3577
  br label %3585

3585:                                             ; preds = %3584
  br label %3586

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

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

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

3615:                                             ; preds = %3593, %3586
  %3616 = load i32, ptr %74, align 4, !tbaa !5
  %3617 = call ptr @__errno_location() #13
  store i32 %3616, ptr %3617, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror(i32 noundef %3621, ptr noundef @.str.3)
  %3623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror_debug(i32 noundef %3624, ptr noundef @.str.3)
  %3626 = call ptr @__errno_location() #13
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @strerror(i32 noundef %3627) #12
  %3629 = call ptr @__errno_location() #13
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3618, ptr noundef @.str.4, i32 noundef %3619, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 278, ptr noundef %3622, ptr noundef %3625, ptr noundef %3628, i32 noundef %3630) #12
  br label %3632

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

3633:                                             ; preds = %3632
  br label %3634

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

3635:                                             ; No predecessors!
  br label %3636

3636:                                             ; preds = %3635
  br label %3637

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

3638:                                             ; preds = %3637
  br label %3639

3639:                                             ; preds = %3638
  br label %3640

3640:                                             ; preds = %3639
  %3641 = load i32, ptr @test_count, align 4, !tbaa !5
  %3642 = add nsw i32 %3641, 1
  store i32 %3642, ptr @test_count, align 4, !tbaa !5
  %3643 = load ptr, ptr %69, align 8, !tbaa !9
  %3644 = load i16, ptr @s2n_server_key_share_extension, align 8, !tbaa !53
  %3645 = call i32 @s2n_connection_allow_response_extension(ptr noundef %3643, i16 noundef zeroext %3644)
  %3646 = icmp eq i32 %3645, -1
  br i1 %3646, label %3647, label %3700

3647:                                             ; preds = %3640
  br label %3648

3648:                                             ; preds = %3647
  br label %3649

3649:                                             ; preds = %3648
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #12
  %3650 = call ptr @__errno_location() #13
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  store i32 %3651, ptr %75, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = call i32 @s2n_print_stacktrace(ptr noundef %3652)
  %3654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3655 = trunc i8 %3654 to i1
  br i1 %3655, label %3656, label %3678

3656:                                             ; preds = %3649
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @fileno(ptr noundef %3657) #12
  %3659 = call i32 @isatty(i32 noundef %3658) #12
  %3660 = icmp ne i32 %3659, 0
  br i1 %3660, label %3661, label %3678

3661:                                             ; preds = %3656
  %3662 = load i32, ptr %75, align 4, !tbaa !5
  %3663 = call ptr @__errno_location() #13
  store i32 %3662, ptr %3663, align 4, !tbaa !5
  %3664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3665 = load i32, ptr @test_count, align 4, !tbaa !5
  %3666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call ptr @s2n_strerror(i32 noundef %3667, ptr noundef @.str.3)
  %3669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  %3671 = call ptr @s2n_strerror_debug(i32 noundef %3670, ptr noundef @.str.3)
  %3672 = call ptr @__errno_location() #13
  %3673 = load i32, ptr %3672, align 4, !tbaa !5
  %3674 = call ptr @strerror(i32 noundef %3673) #12
  %3675 = call ptr @__errno_location() #13
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3664, ptr noundef @.str, i32 noundef %3665, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 279, ptr noundef %3668, ptr noundef %3671, ptr noundef %3674, i32 noundef %3676) #12
  br label %3695

3678:                                             ; preds = %3656, %3649
  %3679 = load i32, ptr %75, align 4, !tbaa !5
  %3680 = call ptr @__errno_location() #13
  store i32 %3679, ptr %3680, align 4, !tbaa !5
  %3681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3682 = load i32, ptr @test_count, align 4, !tbaa !5
  %3683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3684 = load i32, ptr %3683, align 4, !tbaa !5
  %3685 = call ptr @s2n_strerror(i32 noundef %3684, ptr noundef @.str.3)
  %3686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  %3688 = call ptr @s2n_strerror_debug(i32 noundef %3687, ptr noundef @.str.3)
  %3689 = call ptr @__errno_location() #13
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @strerror(i32 noundef %3690) #12
  %3692 = call ptr @__errno_location() #13
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3681, ptr noundef @.str.4, i32 noundef %3682, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 279, ptr noundef %3685, ptr noundef %3688, ptr noundef %3691, i32 noundef %3693) #12
  br label %3695

3695:                                             ; preds = %3678, %3661
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #12
  br label %3696

3696:                                             ; preds = %3695
  br label %3697

3697:                                             ; preds = %3696
  call void @exit(i32 noundef 1) #14
  unreachable

3698:                                             ; No predecessors!
  br label %3699

3699:                                             ; preds = %3698
  br label %3700

3700:                                             ; preds = %3699, %3640
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

3702:                                             ; preds = %3701
  br label %3703

3703:                                             ; preds = %3702
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #12
  store i32 32, ptr %76, align 4, !tbaa !5
  %3704 = load i32, ptr %76, align 4, !tbaa !5
  %3705 = icmp ne i32 %3704, 0
  %3706 = xor i1 %3705, true
  %3707 = xor i1 %3706, true
  %3708 = zext i1 %3707 to i32
  %3709 = sext i32 %3708 to i64
  %3710 = call i64 @llvm.expect.i64(i64 %3709, i64 1)
  %3711 = icmp ne i64 %3710, 0
  br i1 %3711, label %3712, label %3762

3712:                                             ; preds = %3703
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #12
  %3713 = load ptr, ptr %69, align 8, !tbaa !9
  %3714 = getelementptr inbounds %struct.s2n_connection, ptr %3713, i32 0, i32 32
  %3715 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3714, i32 0, i32 13
  %3716 = getelementptr inbounds [32 x i8], ptr %3715, i64 0, i64 0
  %3717 = load i32, ptr %76, align 4, !tbaa !5
  %3718 = sext i32 %3717 to i64
  %3719 = call ptr @s2n_ensure_memmove_trace(ptr noundef %3716, ptr noundef @hello_retry_req_random, i64 noundef %3718)
  store ptr %3719, ptr %77, align 8, !tbaa !9
  br label %3720

3720:                                             ; preds = %3712
  %3721 = load ptr, ptr %77, align 8, !tbaa !9
  %3722 = icmp ne ptr %3721, null
  br i1 %3722, label %3756, label %3723

3723:                                             ; preds = %3720
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

3725:                                             ; preds = %3724
  %3726 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3727 = getelementptr inbounds %struct.s2n_debug_info, ptr %3726, i32 0, i32 0
  store ptr @.str.83, ptr %3727, align 8, !tbaa !55
  %3728 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3729 = getelementptr inbounds %struct.s2n_debug_info, ptr %3728, i32 0, i32 0
  %3730 = load ptr, ptr %3729, align 8, !tbaa !55
  %3731 = getelementptr inbounds i8, ptr %3730, i64 21
  %3732 = call ptr @strrchr(ptr noundef %3731, i32 noundef 47) #15
  %3733 = icmp ne ptr %3732, null
  br i1 %3733, label %3734, label %3741

3734:                                             ; preds = %3725
  %3735 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3736 = getelementptr inbounds %struct.s2n_debug_info, ptr %3735, i32 0, i32 0
  %3737 = load ptr, ptr %3736, align 8, !tbaa !55
  %3738 = getelementptr inbounds i8, ptr %3737, i64 21
  %3739 = call ptr @strrchr(ptr noundef %3738, i32 noundef 47) #15
  %3740 = getelementptr inbounds i8, ptr %3739, i64 1
  br label %3746

3741:                                             ; preds = %3725
  %3742 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3743 = getelementptr inbounds %struct.s2n_debug_info, ptr %3742, i32 0, i32 0
  %3744 = load ptr, ptr %3743, align 8, !tbaa !55
  %3745 = getelementptr inbounds i8, ptr %3744, i64 21
  br label %3746

3746:                                             ; preds = %3741, %3734
  %3747 = phi ptr [ %3740, %3734 ], [ %3745, %3741 ]
  %3748 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3749 = getelementptr inbounds %struct.s2n_debug_info, ptr %3748, i32 0, i32 1
  store ptr %3747, ptr %3749, align 8, !tbaa !57
  %3750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %3750, align 4, !tbaa !5
  %3751 = call i32 @s2n_calculate_stacktrace()
  br label %3752

3752:                                             ; preds = %3746
  br label %3753

3753:                                             ; preds = %3752
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %3759

3754:                                             ; No predecessors!
  br label %3755

3755:                                             ; preds = %3754
  br label %3756

3756:                                             ; preds = %3755, %3720
  br label %3757

3757:                                             ; preds = %3756
  br label %3758

3758:                                             ; preds = %3757
  store i32 0, ptr %78, align 4
  br label %3759

3759:                                             ; preds = %3758, %3753
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #12
  %3760 = load i32, ptr %78, align 4
  switch i32 %3760, label %3763 [
    i32 0, label %3761
  ]

3761:                                             ; preds = %3759
  br label %3762

3762:                                             ; preds = %3761, %3703
  store i32 0, ptr %78, align 4
  br label %3763

3763:                                             ; preds = %3762, %3759
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #12
  %3764 = load i32, ptr %78, align 4
  switch i32 %3764, label %5055 [
    i32 0, label %3765
  ]

3765:                                             ; preds = %3763
  br label %3766

3766:                                             ; preds = %3765
  br label %3767

3767:                                             ; preds = %3766
  br label %3768

3768:                                             ; preds = %3767
  %3769 = load i32, ptr @test_count, align 4, !tbaa !5
  %3770 = add nsw i32 %3769, 1
  store i32 %3770, ptr @test_count, align 4, !tbaa !5
  %3771 = load ptr, ptr %69, align 8, !tbaa !9
  %3772 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %3771, i8 noundef zeroext 34)
  %3773 = icmp eq i32 %3772, -1
  br i1 %3773, label %3774, label %3827

3774:                                             ; preds = %3768
  br label %3775

3775:                                             ; preds = %3774
  br label %3776

3776:                                             ; preds = %3775
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #12
  %3777 = call ptr @__errno_location() #13
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  store i32 %3778, ptr %79, align 4, !tbaa !5
  %3779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3780 = call i32 @s2n_print_stacktrace(ptr noundef %3779)
  %3781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3782 = trunc i8 %3781 to i1
  br i1 %3782, label %3783, label %3805

3783:                                             ; preds = %3776
  %3784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3785 = call i32 @fileno(ptr noundef %3784) #12
  %3786 = call i32 @isatty(i32 noundef %3785) #12
  %3787 = icmp ne i32 %3786, 0
  br i1 %3787, label %3788, label %3805

3788:                                             ; preds = %3783
  %3789 = load i32, ptr %79, align 4, !tbaa !5
  %3790 = call ptr @__errno_location() #13
  store i32 %3789, ptr %3790, align 4, !tbaa !5
  %3791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3792 = load i32, ptr @test_count, align 4, !tbaa !5
  %3793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  %3795 = call ptr @s2n_strerror(i32 noundef %3794, ptr noundef @.str.3)
  %3796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3797 = load i32, ptr %3796, align 4, !tbaa !5
  %3798 = call ptr @s2n_strerror_debug(i32 noundef %3797, ptr noundef @.str.3)
  %3799 = call ptr @__errno_location() #13
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = call ptr @strerror(i32 noundef %3800) #12
  %3802 = call ptr @__errno_location() #13
  %3803 = load i32, ptr %3802, align 4, !tbaa !5
  %3804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3791, ptr noundef @.str, i32 noundef %3792, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 282, ptr noundef %3795, ptr noundef %3798, ptr noundef %3801, i32 noundef %3803) #12
  br label %3822

3805:                                             ; preds = %3783, %3776
  %3806 = load i32, ptr %79, align 4, !tbaa !5
  %3807 = call ptr @__errno_location() #13
  store i32 %3806, ptr %3807, align 4, !tbaa !5
  %3808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3809 = load i32, ptr @test_count, align 4, !tbaa !5
  %3810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3811 = load i32, ptr %3810, align 4, !tbaa !5
  %3812 = call ptr @s2n_strerror(i32 noundef %3811, ptr noundef @.str.3)
  %3813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  %3815 = call ptr @s2n_strerror_debug(i32 noundef %3814, ptr noundef @.str.3)
  %3816 = call ptr @__errno_location() #13
  %3817 = load i32, ptr %3816, align 4, !tbaa !5
  %3818 = call ptr @strerror(i32 noundef %3817) #12
  %3819 = call ptr @__errno_location() #13
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  %3821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3808, ptr noundef @.str.4, i32 noundef %3809, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 282, ptr noundef %3812, ptr noundef %3815, ptr noundef %3818, i32 noundef %3820) #12
  br label %3822

3822:                                             ; preds = %3805, %3788
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #12
  br label %3823

3823:                                             ; preds = %3822
  br label %3824

3824:                                             ; preds = %3823
  call void @exit(i32 noundef 1) #14
  unreachable

3825:                                             ; No predecessors!
  br label %3826

3826:                                             ; preds = %3825
  br label %3827

3827:                                             ; preds = %3826, %3768
  br label %3828

3828:                                             ; preds = %3827
  br label %3829

3829:                                             ; preds = %3828
  %3830 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %3831 = load ptr, ptr %69, align 8, !tbaa !9
  %3832 = getelementptr inbounds %struct.s2n_connection, ptr %3831, i32 0, i32 31
  %3833 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3832, i32 0, i32 1
  %3834 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3833, i32 0, i32 0
  store ptr %3830, ptr %3834, align 8, !tbaa !48
  %3835 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %3836 = load ptr, ptr %69, align 8, !tbaa !9
  %3837 = getelementptr inbounds %struct.s2n_connection, ptr %3836, i32 0, i32 31
  %3838 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3837, i32 0, i32 3
  %3839 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3838, i32 0, i32 0
  store ptr %3835, ptr %3839, align 8, !tbaa !49
  br label %3840

3840:                                             ; preds = %3829
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = add nsw i32 %3841, 1
  store i32 %3842, ptr @test_count, align 4, !tbaa !5
  %3843 = load ptr, ptr %69, align 8, !tbaa !9
  %3844 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %3843)
  %3845 = icmp eq i32 %3844, -1
  br i1 %3845, label %3846, label %3899

3846:                                             ; preds = %3840
  br label %3847

3847:                                             ; preds = %3846
  br label %3848

3848:                                             ; preds = %3847
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #12
  %3849 = call ptr @__errno_location() #13
  %3850 = load i32, ptr %3849, align 4, !tbaa !5
  store i32 %3850, ptr %80, align 4, !tbaa !5
  %3851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3852 = call i32 @s2n_print_stacktrace(ptr noundef %3851)
  %3853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3854 = trunc i8 %3853 to i1
  br i1 %3854, label %3855, label %3877

3855:                                             ; preds = %3848
  %3856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3857 = call i32 @fileno(ptr noundef %3856) #12
  %3858 = call i32 @isatty(i32 noundef %3857) #12
  %3859 = icmp ne i32 %3858, 0
  br i1 %3859, label %3860, label %3877

3860:                                             ; preds = %3855
  %3861 = load i32, ptr %80, align 4, !tbaa !5
  %3862 = call ptr @__errno_location() #13
  store i32 %3861, ptr %3862, align 4, !tbaa !5
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3866 = load i32, ptr %3865, align 4, !tbaa !5
  %3867 = call ptr @s2n_strerror(i32 noundef %3866, ptr noundef @.str.3)
  %3868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3869 = load i32, ptr %3868, align 4, !tbaa !5
  %3870 = call ptr @s2n_strerror_debug(i32 noundef %3869, ptr noundef @.str.3)
  %3871 = call ptr @__errno_location() #13
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  %3873 = call ptr @strerror(i32 noundef %3872) #12
  %3874 = call ptr @__errno_location() #13
  %3875 = load i32, ptr %3874, align 4, !tbaa !5
  %3876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3863, ptr noundef @.str, i32 noundef %3864, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 285, ptr noundef %3867, ptr noundef %3870, ptr noundef %3873, i32 noundef %3875) #12
  br label %3894

3877:                                             ; preds = %3855, %3848
  %3878 = load i32, ptr %80, align 4, !tbaa !5
  %3879 = call ptr @__errno_location() #13
  store i32 %3878, ptr %3879, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror(i32 noundef %3883, ptr noundef @.str.3)
  %3885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  %3887 = call ptr @s2n_strerror_debug(i32 noundef %3886, ptr noundef @.str.3)
  %3888 = call ptr @__errno_location() #13
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  %3890 = call ptr @strerror(i32 noundef %3889) #12
  %3891 = call ptr @__errno_location() #13
  %3892 = load i32, ptr %3891, align 4, !tbaa !5
  %3893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3880, ptr noundef @.str.4, i32 noundef %3881, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 285, ptr noundef %3884, ptr noundef %3887, ptr noundef %3890, i32 noundef %3892) #12
  br label %3894

3894:                                             ; preds = %3877, %3860
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

3896:                                             ; preds = %3895
  call void @exit(i32 noundef 1) #14
  unreachable

3897:                                             ; No predecessors!
  br label %3898

3898:                                             ; preds = %3897
  br label %3899

3899:                                             ; preds = %3898, %3840
  br label %3900

3900:                                             ; preds = %3899
  br label %3901

3901:                                             ; preds = %3900
  br label %3902

3902:                                             ; preds = %3901
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = add nsw i32 %3903, 1
  store i32 %3904, ptr @test_count, align 4, !tbaa !5
  %3905 = load ptr, ptr %69, align 8, !tbaa !9
  %3906 = call i32 @s2n_conn_choose_state_machine(ptr noundef %3905, i8 noundef zeroext 34)
  %3907 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3906, ptr %3907, align 4
  %3908 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %3909 = load i32, ptr %3908, align 4
  %3910 = call zeroext i1 @s2n_result_is_ok(i32 %3909)
  br i1 %3910, label %3964, label %3911

3911:                                             ; preds = %3902
  br label %3912

3912:                                             ; preds = %3911
  br label %3913

3913:                                             ; preds = %3912
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #12
  %3914 = call ptr @__errno_location() #13
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  store i32 %3915, ptr %82, align 4, !tbaa !5
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = call i32 @s2n_print_stacktrace(ptr noundef %3916)
  %3918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3919 = trunc i8 %3918 to i1
  br i1 %3919, label %3920, label %3942

3920:                                             ; preds = %3913
  %3921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3922 = call i32 @fileno(ptr noundef %3921) #12
  %3923 = call i32 @isatty(i32 noundef %3922) #12
  %3924 = icmp ne i32 %3923, 0
  br i1 %3924, label %3925, label %3942

3925:                                             ; preds = %3920
  %3926 = load i32, ptr %82, align 4, !tbaa !5
  %3927 = call ptr @__errno_location() #13
  store i32 %3926, ptr %3927, align 4, !tbaa !5
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef @.str.3)
  %3933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3934 = load i32, ptr %3933, align 4, !tbaa !5
  %3935 = call ptr @s2n_strerror_debug(i32 noundef %3934, ptr noundef @.str.3)
  %3936 = call ptr @__errno_location() #13
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @strerror(i32 noundef %3937) #12
  %3939 = call ptr @__errno_location() #13
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3928, ptr noundef @.str, i32 noundef %3929, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 286, ptr noundef %3932, ptr noundef %3935, ptr noundef %3938, i32 noundef %3940) #12
  br label %3959

3942:                                             ; preds = %3920, %3913
  %3943 = load i32, ptr %82, align 4, !tbaa !5
  %3944 = call ptr @__errno_location() #13
  store i32 %3943, ptr %3944, align 4, !tbaa !5
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = load i32, ptr @test_count, align 4, !tbaa !5
  %3947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = call ptr @s2n_strerror(i32 noundef %3948, ptr noundef @.str.3)
  %3950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3951 = load i32, ptr %3950, align 4, !tbaa !5
  %3952 = call ptr @s2n_strerror_debug(i32 noundef %3951, ptr noundef @.str.3)
  %3953 = call ptr @__errno_location() #13
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @strerror(i32 noundef %3954) #12
  %3956 = call ptr @__errno_location() #13
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3945, ptr noundef @.str.4, i32 noundef %3946, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 286, ptr noundef %3949, ptr noundef %3952, ptr noundef %3955, i32 noundef %3957) #12
  br label %3959

3959:                                             ; preds = %3942, %3925
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #12
  br label %3960

3960:                                             ; preds = %3959
  br label %3961

3961:                                             ; preds = %3960
  call void @exit(i32 noundef 1) #14
  unreachable

3962:                                             ; No predecessors!
  br label %3963

3963:                                             ; preds = %3962
  br label %3964

3964:                                             ; preds = %3963, %3902
  br label %3965

3965:                                             ; preds = %3964
  br label %3966

3966:                                             ; preds = %3965
  br label %3967

3967:                                             ; preds = %3966
  %3968 = load i32, ptr @test_count, align 4, !tbaa !5
  %3969 = add nsw i32 %3968, 1
  store i32 %3969, ptr @test_count, align 4, !tbaa !5
  %3970 = load ptr, ptr %69, align 8, !tbaa !9
  %3971 = getelementptr inbounds %struct.s2n_connection, ptr %3970, i32 0, i32 31
  %3972 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3971, i32 0, i32 3
  %3973 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %3972)
  %3974 = icmp eq i32 %3973, -1
  br i1 %3974, label %3975, label %4028

3975:                                             ; preds = %3967
  br label %3976

3976:                                             ; preds = %3975
  br label %3977

3977:                                             ; preds = %3976
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #12
  %3978 = call ptr @__errno_location() #13
  %3979 = load i32, ptr %3978, align 4, !tbaa !5
  store i32 %3979, ptr %83, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = call i32 @s2n_print_stacktrace(ptr noundef %3980)
  %3982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3983 = trunc i8 %3982 to i1
  br i1 %3983, label %3984, label %4006

3984:                                             ; preds = %3977
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = call i32 @fileno(ptr noundef %3985) #12
  %3987 = call i32 @isatty(i32 noundef %3986) #12
  %3988 = icmp ne i32 %3987, 0
  br i1 %3988, label %3989, label %4006

3989:                                             ; preds = %3984
  %3990 = load i32, ptr %83, align 4, !tbaa !5
  %3991 = call ptr @__errno_location() #13
  store i32 %3990, ptr %3991, align 4, !tbaa !5
  %3992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3993 = load i32, ptr @test_count, align 4, !tbaa !5
  %3994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3995 = load i32, ptr %3994, align 4, !tbaa !5
  %3996 = call ptr @s2n_strerror(i32 noundef %3995, ptr noundef @.str.3)
  %3997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3998 = load i32, ptr %3997, align 4, !tbaa !5
  %3999 = call ptr @s2n_strerror_debug(i32 noundef %3998, ptr noundef @.str.3)
  %4000 = call ptr @__errno_location() #13
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call ptr @strerror(i32 noundef %4001) #12
  %4003 = call ptr @__errno_location() #13
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3992, ptr noundef @.str, i32 noundef %3993, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 287, ptr noundef %3996, ptr noundef %3999, ptr noundef %4002, i32 noundef %4004) #12
  br label %4023

4006:                                             ; preds = %3984, %3977
  %4007 = load i32, ptr %83, align 4, !tbaa !5
  %4008 = call ptr @__errno_location() #13
  store i32 %4007, ptr %4008, align 4, !tbaa !5
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = load i32, ptr @test_count, align 4, !tbaa !5
  %4011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4012 = load i32, ptr %4011, align 4, !tbaa !5
  %4013 = call ptr @s2n_strerror(i32 noundef %4012, ptr noundef @.str.3)
  %4014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4015 = load i32, ptr %4014, align 4, !tbaa !5
  %4016 = call ptr @s2n_strerror_debug(i32 noundef %4015, ptr noundef @.str.3)
  %4017 = call ptr @__errno_location() #13
  %4018 = load i32, ptr %4017, align 4, !tbaa !5
  %4019 = call ptr @strerror(i32 noundef %4018) #12
  %4020 = call ptr @__errno_location() #13
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  %4022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4009, ptr noundef @.str.4, i32 noundef %4010, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 287, ptr noundef %4013, ptr noundef %4016, ptr noundef %4019, i32 noundef %4021) #12
  br label %4023

4023:                                             ; preds = %4006, %3989
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #12
  br label %4024

4024:                                             ; preds = %4023
  br label %4025

4025:                                             ; preds = %4024
  call void @exit(i32 noundef 1) #14
  unreachable

4026:                                             ; No predecessors!
  br label %4027

4027:                                             ; preds = %4026
  br label %4028

4028:                                             ; preds = %4027, %3967
  br label %4029

4029:                                             ; preds = %4028
  br label %4030

4030:                                             ; preds = %4029
  br label %4031

4031:                                             ; preds = %4030
  %4032 = load i32, ptr @test_count, align 4, !tbaa !5
  %4033 = add nsw i32 %4032, 1
  store i32 %4033, ptr @test_count, align 4, !tbaa !5
  %4034 = load ptr, ptr %69, align 8, !tbaa !9
  %4035 = load ptr, ptr %73, align 8, !tbaa !9
  %4036 = call i32 @s2n_extensions_server_key_share_send(ptr noundef %4034, ptr noundef %4035)
  %4037 = icmp eq i32 %4036, -1
  br i1 %4037, label %4038, label %4091

4038:                                             ; preds = %4031
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

4040:                                             ; preds = %4039
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #12
  %4041 = call ptr @__errno_location() #13
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  store i32 %4042, ptr %84, align 4, !tbaa !5
  %4043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4044 = call i32 @s2n_print_stacktrace(ptr noundef %4043)
  %4045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4046 = trunc i8 %4045 to i1
  br i1 %4046, label %4047, label %4069

4047:                                             ; preds = %4040
  %4048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4049 = call i32 @fileno(ptr noundef %4048) #12
  %4050 = call i32 @isatty(i32 noundef %4049) #12
  %4051 = icmp ne i32 %4050, 0
  br i1 %4051, label %4052, label %4069

4052:                                             ; preds = %4047
  %4053 = load i32, ptr %84, align 4, !tbaa !5
  %4054 = call ptr @__errno_location() #13
  store i32 %4053, ptr %4054, align 4, !tbaa !5
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = load i32, ptr @test_count, align 4, !tbaa !5
  %4057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call ptr @s2n_strerror(i32 noundef %4058, ptr noundef @.str.3)
  %4060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call ptr @s2n_strerror_debug(i32 noundef %4061, ptr noundef @.str.3)
  %4063 = call ptr @__errno_location() #13
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call ptr @strerror(i32 noundef %4064) #12
  %4066 = call ptr @__errno_location() #13
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4055, ptr noundef @.str, i32 noundef %4056, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 288, ptr noundef %4059, ptr noundef %4062, ptr noundef %4065, i32 noundef %4067) #12
  br label %4086

4069:                                             ; preds = %4047, %4040
  %4070 = load i32, ptr %84, align 4, !tbaa !5
  %4071 = call ptr @__errno_location() #13
  store i32 %4070, ptr %4071, align 4, !tbaa !5
  %4072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4073 = load i32, ptr @test_count, align 4, !tbaa !5
  %4074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4075 = load i32, ptr %4074, align 4, !tbaa !5
  %4076 = call ptr @s2n_strerror(i32 noundef %4075, ptr noundef @.str.3)
  %4077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4078 = load i32, ptr %4077, align 4, !tbaa !5
  %4079 = call ptr @s2n_strerror_debug(i32 noundef %4078, ptr noundef @.str.3)
  %4080 = call ptr @__errno_location() #13
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call ptr @strerror(i32 noundef %4081) #12
  %4083 = call ptr @__errno_location() #13
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4072, ptr noundef @.str.4, i32 noundef %4073, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 288, ptr noundef %4076, ptr noundef %4079, ptr noundef %4082, i32 noundef %4084) #12
  br label %4086

4086:                                             ; preds = %4069, %4052
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #12
  br label %4087

4087:                                             ; preds = %4086
  br label %4088

4088:                                             ; preds = %4087
  call void @exit(i32 noundef 1) #14
  unreachable

4089:                                             ; No predecessors!
  br label %4090

4090:                                             ; preds = %4089
  br label %4091

4091:                                             ; preds = %4090, %4031
  br label %4092

4092:                                             ; preds = %4091
  br label %4093

4093:                                             ; preds = %4092
  br label %4094

4094:                                             ; preds = %4093
  call void @llvm.lifetime.start.p0(i64 2, ptr %85) #12
  br label %4095

4095:                                             ; preds = %4094
  %4096 = load i32, ptr @test_count, align 4, !tbaa !5
  %4097 = add nsw i32 %4096, 1
  store i32 %4097, ptr @test_count, align 4, !tbaa !5
  %4098 = load ptr, ptr %73, align 8, !tbaa !9
  %4099 = call i32 @s2n_stuffer_read_uint16(ptr noundef %4098, ptr noundef %85)
  %4100 = icmp eq i32 %4099, -1
  br i1 %4100, label %4101, label %4154

4101:                                             ; preds = %4095
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

4103:                                             ; preds = %4102
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #12
  %4104 = call ptr @__errno_location() #13
  %4105 = load i32, ptr %4104, align 4, !tbaa !5
  store i32 %4105, ptr %86, align 4, !tbaa !5
  %4106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4107 = call i32 @s2n_print_stacktrace(ptr noundef %4106)
  %4108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4109 = trunc i8 %4108 to i1
  br i1 %4109, label %4110, label %4132

4110:                                             ; preds = %4103
  %4111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4112 = call i32 @fileno(ptr noundef %4111) #12
  %4113 = call i32 @isatty(i32 noundef %4112) #12
  %4114 = icmp ne i32 %4113, 0
  br i1 %4114, label %4115, label %4132

4115:                                             ; preds = %4110
  %4116 = load i32, ptr %86, align 4, !tbaa !5
  %4117 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %4126 = call ptr @__errno_location() #13
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @strerror(i32 noundef %4127) #12
  %4129 = call ptr @__errno_location() #13
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4118, ptr noundef @.str, i32 noundef %4119, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 290, ptr noundef %4122, ptr noundef %4125, ptr noundef %4128, i32 noundef %4130) #12
  br label %4149

4132:                                             ; preds = %4110, %4103
  %4133 = load i32, ptr %86, align 4, !tbaa !5
  %4134 = call ptr @__errno_location() #13
  store i32 %4133, ptr %4134, align 4, !tbaa !5
  %4135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4136 = load i32, ptr @test_count, align 4, !tbaa !5
  %4137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @s2n_strerror(i32 noundef %4138, ptr noundef @.str.3)
  %4140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call ptr @s2n_strerror_debug(i32 noundef %4141, ptr noundef @.str.3)
  %4143 = call ptr @__errno_location() #13
  %4144 = load i32, ptr %4143, align 4, !tbaa !5
  %4145 = call ptr @strerror(i32 noundef %4144) #12
  %4146 = call ptr @__errno_location() #13
  %4147 = load i32, ptr %4146, align 4, !tbaa !5
  %4148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4135, ptr noundef @.str.4, i32 noundef %4136, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 290, ptr noundef %4139, ptr noundef %4142, ptr noundef %4145, i32 noundef %4147) #12
  br label %4149

4149:                                             ; preds = %4132, %4115
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #12
  br label %4150

4150:                                             ; preds = %4149
  br label %4151

4151:                                             ; preds = %4150
  call void @exit(i32 noundef 1) #14
  unreachable

4152:                                             ; No predecessors!
  br label %4153

4153:                                             ; preds = %4152
  br label %4154

4154:                                             ; preds = %4153, %4095
  br label %4155

4155:                                             ; preds = %4154
  br label %4156

4156:                                             ; preds = %4155
  br label %4157

4157:                                             ; preds = %4156
  %4158 = load i32, ptr @test_count, align 4, !tbaa !5
  %4159 = add nsw i32 %4158, 1
  store i32 %4159, ptr @test_count, align 4, !tbaa !5
  %4160 = load i16, ptr %85, align 2, !tbaa !58
  %4161 = zext i16 %4160 to i32
  %4162 = icmp eq i32 %4161, 51
  br i1 %4162, label %4216, label %4163

4163:                                             ; preds = %4157
  br label %4164

4164:                                             ; preds = %4163
  br label %4165

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

4172:                                             ; preds = %4165
  %4173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4174 = call i32 @fileno(ptr noundef %4173) #12
  %4175 = call i32 @isatty(i32 noundef %4174) #12
  %4176 = icmp ne i32 %4175, 0
  br i1 %4176, label %4177, label %4194

4177:                                             ; preds = %4172
  %4178 = load i32, ptr %87, align 4, !tbaa !5
  %4179 = call ptr @__errno_location() #13
  store i32 %4178, ptr %4179, align 4, !tbaa !5
  %4180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4181 = load i32, ptr @test_count, align 4, !tbaa !5
  %4182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror(i32 noundef %4183, ptr noundef @.str.3)
  %4185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4186 = load i32, ptr %4185, align 4, !tbaa !5
  %4187 = call ptr @s2n_strerror_debug(i32 noundef %4186, ptr noundef @.str.3)
  %4188 = call ptr @__errno_location() #13
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call ptr @strerror(i32 noundef %4189) #12
  %4191 = call ptr @__errno_location() #13
  %4192 = load i32, ptr %4191, align 4, !tbaa !5
  %4193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4180, ptr noundef @.str, i32 noundef %4181, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 290, ptr noundef %4184, ptr noundef %4187, ptr noundef %4190, i32 noundef %4192) #12
  br label %4211

4194:                                             ; preds = %4172, %4165
  %4195 = load i32, ptr %87, align 4, !tbaa !5
  %4196 = call ptr @__errno_location() #13
  store i32 %4195, ptr %4196, align 4, !tbaa !5
  %4197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4198 = load i32, ptr @test_count, align 4, !tbaa !5
  %4199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4200 = load i32, ptr %4199, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror(i32 noundef %4200, ptr noundef @.str.3)
  %4202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4203 = load i32, ptr %4202, align 4, !tbaa !5
  %4204 = call ptr @s2n_strerror_debug(i32 noundef %4203, ptr noundef @.str.3)
  %4205 = call ptr @__errno_location() #13
  %4206 = load i32, ptr %4205, align 4, !tbaa !5
  %4207 = call ptr @strerror(i32 noundef %4206) #12
  %4208 = call ptr @__errno_location() #13
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4197, ptr noundef @.str.4, i32 noundef %4198, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 290, ptr noundef %4201, ptr noundef %4204, ptr noundef %4207, i32 noundef %4209) #12
  br label %4211

4211:                                             ; preds = %4194, %4177
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #12
  br label %4212

4212:                                             ; preds = %4211
  br label %4213

4213:                                             ; preds = %4212
  call void @exit(i32 noundef 1) #14
  unreachable

4214:                                             ; No predecessors!
  br label %4215

4215:                                             ; preds = %4214
  br label %4216

4216:                                             ; preds = %4215, %4157
  br label %4217

4217:                                             ; preds = %4216
  br label %4218

4218:                                             ; preds = %4217
  call void @llvm.lifetime.end.p0(i64 2, ptr %85) #12
  br label %4219

4219:                                             ; preds = %4218
  br label %4220

4220:                                             ; preds = %4219
  br label %4221

4221:                                             ; preds = %4220
  call void @llvm.lifetime.start.p0(i64 2, ptr %88) #12
  br label %4222

4222:                                             ; preds = %4221
  %4223 = load i32, ptr @test_count, align 4, !tbaa !5
  %4224 = add nsw i32 %4223, 1
  store i32 %4224, ptr @test_count, align 4, !tbaa !5
  %4225 = load ptr, ptr %73, align 8, !tbaa !9
  %4226 = call i32 @s2n_stuffer_read_uint16(ptr noundef %4225, ptr noundef %88)
  %4227 = icmp eq i32 %4226, -1
  br i1 %4227, label %4228, label %4281

4228:                                             ; preds = %4222
  br label %4229

4229:                                             ; preds = %4228
  br label %4230

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

4237:                                             ; preds = %4230
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = call i32 @fileno(ptr noundef %4238) #12
  %4240 = call i32 @isatty(i32 noundef %4239) #12
  %4241 = icmp ne i32 %4240, 0
  br i1 %4241, label %4242, label %4259

4242:                                             ; preds = %4237
  %4243 = load i32, ptr %89, align 4, !tbaa !5
  %4244 = call ptr @__errno_location() #13
  store i32 %4243, ptr %4244, align 4, !tbaa !5
  %4245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4246 = load i32, ptr @test_count, align 4, !tbaa !5
  %4247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  %4249 = call ptr @s2n_strerror(i32 noundef %4248, ptr noundef @.str.3)
  %4250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call ptr @s2n_strerror_debug(i32 noundef %4251, ptr noundef @.str.3)
  %4253 = call ptr @__errno_location() #13
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  %4255 = call ptr @strerror(i32 noundef %4254) #12
  %4256 = call ptr @__errno_location() #13
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  %4258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4245, ptr noundef @.str, i32 noundef %4246, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 292, ptr noundef %4249, ptr noundef %4252, ptr noundef %4255, i32 noundef %4257) #12
  br label %4276

4259:                                             ; preds = %4237, %4230
  %4260 = load i32, ptr %89, align 4, !tbaa !5
  %4261 = call ptr @__errno_location() #13
  store i32 %4260, ptr %4261, align 4, !tbaa !5
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = load i32, ptr @test_count, align 4, !tbaa !5
  %4264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror(i32 noundef %4265, ptr noundef @.str.3)
  %4267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @s2n_strerror_debug(i32 noundef %4268, ptr noundef @.str.3)
  %4270 = call ptr @__errno_location() #13
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call ptr @strerror(i32 noundef %4271) #12
  %4273 = call ptr @__errno_location() #13
  %4274 = load i32, ptr %4273, align 4, !tbaa !5
  %4275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4262, ptr noundef @.str.4, i32 noundef %4263, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 292, ptr noundef %4266, ptr noundef %4269, ptr noundef %4272, i32 noundef %4274) #12
  br label %4276

4276:                                             ; preds = %4259, %4242
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #12
  br label %4277

4277:                                             ; preds = %4276
  br label %4278

4278:                                             ; preds = %4277
  call void @exit(i32 noundef 1) #14
  unreachable

4279:                                             ; No predecessors!
  br label %4280

4280:                                             ; preds = %4279
  br label %4281

4281:                                             ; preds = %4280, %4222
  br label %4282

4282:                                             ; preds = %4281
  br label %4283

4283:                                             ; preds = %4282
  br label %4284

4284:                                             ; preds = %4283
  %4285 = load i32, ptr @test_count, align 4, !tbaa !5
  %4286 = add nsw i32 %4285, 1
  store i32 %4286, ptr @test_count, align 4, !tbaa !5
  %4287 = load i16, ptr %88, align 2, !tbaa !58
  %4288 = zext i16 %4287 to i32
  %4289 = load ptr, ptr %69, align 8, !tbaa !9
  %4290 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef %4289)
  %4291 = sub nsw i32 %4290, 4
  %4292 = icmp eq i32 %4288, %4291
  br i1 %4292, label %4346, label %4293

4293:                                             ; preds = %4284
  br label %4294

4294:                                             ; preds = %4293
  br label %4295

4295:                                             ; preds = %4294
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #12
  %4296 = call ptr @__errno_location() #13
  %4297 = load i32, ptr %4296, align 4, !tbaa !5
  store i32 %4297, ptr %90, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = call i32 @s2n_print_stacktrace(ptr noundef %4298)
  %4300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4301 = trunc i8 %4300 to i1
  br i1 %4301, label %4302, label %4324

4302:                                             ; preds = %4295
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @fileno(ptr noundef %4303) #12
  %4305 = call i32 @isatty(i32 noundef %4304) #12
  %4306 = icmp ne i32 %4305, 0
  br i1 %4306, label %4307, label %4324

4307:                                             ; preds = %4302
  %4308 = load i32, ptr %90, align 4, !tbaa !5
  %4309 = call ptr @__errno_location() #13
  store i32 %4308, ptr %4309, align 4, !tbaa !5
  %4310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4311 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4313, ptr noundef @.str.3)
  %4315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror_debug(i32 noundef %4316, ptr noundef @.str.3)
  %4318 = call ptr @__errno_location() #13
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @strerror(i32 noundef %4319) #12
  %4321 = call ptr @__errno_location() #13
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4310, ptr noundef @.str, i32 noundef %4311, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 292, ptr noundef %4314, ptr noundef %4317, ptr noundef %4320, i32 noundef %4322) #12
  br label %4341

4324:                                             ; preds = %4302, %4295
  %4325 = load i32, ptr %90, align 4, !tbaa !5
  %4326 = call ptr @__errno_location() #13
  store i32 %4325, ptr %4326, align 4, !tbaa !5
  %4327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4328 = load i32, ptr @test_count, align 4, !tbaa !5
  %4329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4330 = load i32, ptr %4329, align 4, !tbaa !5
  %4331 = call ptr @s2n_strerror(i32 noundef %4330, ptr noundef @.str.3)
  %4332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @s2n_strerror_debug(i32 noundef %4333, ptr noundef @.str.3)
  %4335 = call ptr @__errno_location() #13
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call ptr @strerror(i32 noundef %4336) #12
  %4338 = call ptr @__errno_location() #13
  %4339 = load i32, ptr %4338, align 4, !tbaa !5
  %4340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4327, ptr noundef @.str.4, i32 noundef %4328, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 292, ptr noundef %4331, ptr noundef %4334, ptr noundef %4337, i32 noundef %4339) #12
  br label %4341

4341:                                             ; preds = %4324, %4307
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #12
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

4343:                                             ; preds = %4342
  call void @exit(i32 noundef 1) #14
  unreachable

4344:                                             ; No predecessors!
  br label %4345

4345:                                             ; preds = %4344
  br label %4346

4346:                                             ; preds = %4345, %4284
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347
  call void @llvm.lifetime.end.p0(i64 2, ptr %88) #12
  br label %4349

4349:                                             ; preds = %4348
  br label %4350

4350:                                             ; preds = %4349
  %4351 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %4352 = load ptr, ptr %70, align 8, !tbaa !9
  %4353 = getelementptr inbounds %struct.s2n_connection, ptr %4352, i32 0, i32 31
  %4354 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4353, i32 0, i32 3
  %4355 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4354, i32 0, i32 0
  store ptr %4351, ptr %4355, align 8, !tbaa !49
  br label %4356

4356:                                             ; preds = %4350
  %4357 = load i32, ptr @test_count, align 4, !tbaa !5
  %4358 = add nsw i32 %4357, 1
  store i32 %4358, ptr @test_count, align 4, !tbaa !5
  %4359 = load ptr, ptr %70, align 8, !tbaa !9
  %4360 = getelementptr inbounds %struct.s2n_connection, ptr %4359, i32 0, i32 31
  %4361 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4360, i32 0, i32 3
  %4362 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %4361)
  %4363 = icmp eq i32 %4362, -1
  br i1 %4363, label %4364, label %4417

4364:                                             ; preds = %4356
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

4366:                                             ; preds = %4365
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #12
  %4367 = call ptr @__errno_location() #13
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  store i32 %4368, ptr %91, align 4, !tbaa !5
  %4369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4370 = call i32 @s2n_print_stacktrace(ptr noundef %4369)
  %4371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4372 = trunc i8 %4371 to i1
  br i1 %4372, label %4373, label %4395

4373:                                             ; preds = %4366
  %4374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4375 = call i32 @fileno(ptr noundef %4374) #12
  %4376 = call i32 @isatty(i32 noundef %4375) #12
  %4377 = icmp ne i32 %4376, 0
  br i1 %4377, label %4378, label %4395

4378:                                             ; preds = %4373
  %4379 = load i32, ptr %91, align 4, !tbaa !5
  %4380 = call ptr @__errno_location() #13
  store i32 %4379, ptr %4380, align 4, !tbaa !5
  %4381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4382 = load i32, ptr @test_count, align 4, !tbaa !5
  %4383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4384 = load i32, ptr %4383, align 4, !tbaa !5
  %4385 = call ptr @s2n_strerror(i32 noundef %4384, ptr noundef @.str.3)
  %4386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror_debug(i32 noundef %4387, ptr noundef @.str.3)
  %4389 = call ptr @__errno_location() #13
  %4390 = load i32, ptr %4389, align 4, !tbaa !5
  %4391 = call ptr @strerror(i32 noundef %4390) #12
  %4392 = call ptr @__errno_location() #13
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4381, ptr noundef @.str, i32 noundef %4382, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 295, ptr noundef %4385, ptr noundef %4388, ptr noundef %4391, i32 noundef %4393) #12
  br label %4412

4395:                                             ; preds = %4373, %4366
  %4396 = load i32, ptr %91, align 4, !tbaa !5
  %4397 = call ptr @__errno_location() #13
  store i32 %4396, ptr %4397, align 4, !tbaa !5
  %4398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4399 = load i32, ptr @test_count, align 4, !tbaa !5
  %4400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4401 = load i32, ptr %4400, align 4, !tbaa !5
  %4402 = call ptr @s2n_strerror(i32 noundef %4401, ptr noundef @.str.3)
  %4403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4404 = load i32, ptr %4403, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror_debug(i32 noundef %4404, ptr noundef @.str.3)
  %4406 = call ptr @__errno_location() #13
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @strerror(i32 noundef %4407) #12
  %4409 = call ptr @__errno_location() #13
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4398, ptr noundef @.str.4, i32 noundef %4399, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 295, ptr noundef %4402, ptr noundef %4405, ptr noundef %4408, i32 noundef %4410) #12
  br label %4412

4412:                                             ; preds = %4395, %4378
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #12
  br label %4413

4413:                                             ; preds = %4412
  br label %4414

4414:                                             ; preds = %4413
  call void @exit(i32 noundef 1) #14
  unreachable

4415:                                             ; No predecessors!
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416, %4356
  br label %4418

4418:                                             ; preds = %4417
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

4420:                                             ; preds = %4419
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #12
  store i32 32, ptr %92, align 4, !tbaa !5
  %4421 = load i32, ptr %92, align 4, !tbaa !5
  %4422 = icmp ne i32 %4421, 0
  %4423 = xor i1 %4422, true
  %4424 = xor i1 %4423, true
  %4425 = zext i1 %4424 to i32
  %4426 = sext i32 %4425 to i64
  %4427 = call i64 @llvm.expect.i64(i64 %4426, i64 1)
  %4428 = icmp ne i64 %4427, 0
  br i1 %4428, label %4429, label %4479

4429:                                             ; preds = %4420
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #12
  %4430 = load ptr, ptr %70, align 8, !tbaa !9
  %4431 = getelementptr inbounds %struct.s2n_connection, ptr %4430, i32 0, i32 32
  %4432 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4431, i32 0, i32 13
  %4433 = getelementptr inbounds [32 x i8], ptr %4432, i64 0, i64 0
  %4434 = load i32, ptr %92, align 4, !tbaa !5
  %4435 = sext i32 %4434 to i64
  %4436 = call ptr @s2n_ensure_memmove_trace(ptr noundef %4433, ptr noundef @hello_retry_req_random, i64 noundef %4435)
  store ptr %4436, ptr %93, align 8, !tbaa !9
  br label %4437

4437:                                             ; preds = %4429
  %4438 = load ptr, ptr %93, align 8, !tbaa !9
  %4439 = icmp ne ptr %4438, null
  br i1 %4439, label %4473, label %4440

4440:                                             ; preds = %4437
  br label %4441

4441:                                             ; preds = %4440
  br label %4442

4442:                                             ; preds = %4441
  %4443 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4444 = getelementptr inbounds %struct.s2n_debug_info, ptr %4443, i32 0, i32 0
  store ptr @.str.89, ptr %4444, align 8, !tbaa !55
  %4445 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4446 = getelementptr inbounds %struct.s2n_debug_info, ptr %4445, i32 0, i32 0
  %4447 = load ptr, ptr %4446, align 8, !tbaa !55
  %4448 = getelementptr inbounds i8, ptr %4447, i64 21
  %4449 = call ptr @strrchr(ptr noundef %4448, i32 noundef 47) #15
  %4450 = icmp ne ptr %4449, null
  br i1 %4450, label %4451, label %4458

4451:                                             ; preds = %4442
  %4452 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4453 = getelementptr inbounds %struct.s2n_debug_info, ptr %4452, i32 0, i32 0
  %4454 = load ptr, ptr %4453, align 8, !tbaa !55
  %4455 = getelementptr inbounds i8, ptr %4454, i64 21
  %4456 = call ptr @strrchr(ptr noundef %4455, i32 noundef 47) #15
  %4457 = getelementptr inbounds i8, ptr %4456, i64 1
  br label %4463

4458:                                             ; preds = %4442
  %4459 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4460 = getelementptr inbounds %struct.s2n_debug_info, ptr %4459, i32 0, i32 0
  %4461 = load ptr, ptr %4460, align 8, !tbaa !55
  %4462 = getelementptr inbounds i8, ptr %4461, i64 21
  br label %4463

4463:                                             ; preds = %4458, %4451
  %4464 = phi ptr [ %4457, %4451 ], [ %4462, %4458 ]
  %4465 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4466 = getelementptr inbounds %struct.s2n_debug_info, ptr %4465, i32 0, i32 1
  store ptr %4464, ptr %4466, align 8, !tbaa !57
  %4467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %4467, align 4, !tbaa !5
  %4468 = call i32 @s2n_calculate_stacktrace()
  br label %4469

4469:                                             ; preds = %4463
  br label %4470

4470:                                             ; preds = %4469
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %4476

4471:                                             ; No predecessors!
  br label %4472

4472:                                             ; preds = %4471
  br label %4473

4473:                                             ; preds = %4472, %4437
  br label %4474

4474:                                             ; preds = %4473
  br label %4475

4475:                                             ; preds = %4474
  store i32 0, ptr %78, align 4
  br label %4476

4476:                                             ; preds = %4475, %4470
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #12
  %4477 = load i32, ptr %78, align 4
  switch i32 %4477, label %4480 [
    i32 0, label %4478
  ]

4478:                                             ; preds = %4476
  br label %4479

4479:                                             ; preds = %4478, %4420
  store i32 0, ptr %78, align 4
  br label %4480

4480:                                             ; preds = %4479, %4476
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #12
  %4481 = load i32, ptr %78, align 4
  switch i32 %4481, label %5055 [
    i32 0, label %4482
  ]

4482:                                             ; preds = %4480
  br label %4483

4483:                                             ; preds = %4482
  br label %4484

4484:                                             ; preds = %4483
  br label %4485

4485:                                             ; preds = %4484
  %4486 = load i32, ptr @test_count, align 4, !tbaa !5
  %4487 = add nsw i32 %4486, 1
  store i32 %4487, ptr @test_count, align 4, !tbaa !5
  %4488 = load ptr, ptr %70, align 8, !tbaa !9
  %4489 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %4488, i8 noundef zeroext 34)
  %4490 = icmp eq i32 %4489, -1
  br i1 %4490, label %4491, label %4544

4491:                                             ; preds = %4485
  br label %4492

4492:                                             ; preds = %4491
  br label %4493

4493:                                             ; preds = %4492
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #12
  %4494 = call ptr @__errno_location() #13
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  store i32 %4495, ptr %94, align 4, !tbaa !5
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4497 = call i32 @s2n_print_stacktrace(ptr noundef %4496)
  %4498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4499 = trunc i8 %4498 to i1
  br i1 %4499, label %4500, label %4522

4500:                                             ; preds = %4493
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = call i32 @fileno(ptr noundef %4501) #12
  %4503 = call i32 @isatty(i32 noundef %4502) #12
  %4504 = icmp ne i32 %4503, 0
  br i1 %4504, label %4505, label %4522

4505:                                             ; preds = %4500
  %4506 = load i32, ptr %94, align 4, !tbaa !5
  %4507 = call ptr @__errno_location() #13
  store i32 %4506, ptr %4507, align 4, !tbaa !5
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4511, ptr noundef @.str.3)
  %4513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @s2n_strerror_debug(i32 noundef %4514, ptr noundef @.str.3)
  %4516 = call ptr @__errno_location() #13
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call ptr @strerror(i32 noundef %4517) #12
  %4519 = call ptr @__errno_location() #13
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4508, ptr noundef @.str, i32 noundef %4509, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 299, ptr noundef %4512, ptr noundef %4515, ptr noundef %4518, i32 noundef %4520) #12
  br label %4539

4522:                                             ; preds = %4500, %4493
  %4523 = load i32, ptr %94, align 4, !tbaa !5
  %4524 = call ptr @__errno_location() #13
  store i32 %4523, ptr %4524, align 4, !tbaa !5
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = load i32, ptr @test_count, align 4, !tbaa !5
  %4527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4528 = load i32, ptr %4527, align 4, !tbaa !5
  %4529 = call ptr @s2n_strerror(i32 noundef %4528, ptr noundef @.str.3)
  %4530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4531 = load i32, ptr %4530, align 4, !tbaa !5
  %4532 = call ptr @s2n_strerror_debug(i32 noundef %4531, ptr noundef @.str.3)
  %4533 = call ptr @__errno_location() #13
  %4534 = load i32, ptr %4533, align 4, !tbaa !5
  %4535 = call ptr @strerror(i32 noundef %4534) #12
  %4536 = call ptr @__errno_location() #13
  %4537 = load i32, ptr %4536, align 4, !tbaa !5
  %4538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4525, ptr noundef @.str.4, i32 noundef %4526, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 299, ptr noundef %4529, ptr noundef %4532, ptr noundef %4535, i32 noundef %4537) #12
  br label %4539

4539:                                             ; preds = %4522, %4505
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #12
  br label %4540

4540:                                             ; preds = %4539
  br label %4541

4541:                                             ; preds = %4540
  call void @exit(i32 noundef 1) #14
  unreachable

4542:                                             ; No predecessors!
  br label %4543

4543:                                             ; preds = %4542
  br label %4544

4544:                                             ; preds = %4543, %4485
  br label %4545

4545:                                             ; preds = %4544
  br label %4546

4546:                                             ; preds = %4545
  br label %4547

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

4553:                                             ; preds = %4547
  br label %4554

4554:                                             ; preds = %4553
  br label %4555

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

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

4567:                                             ; preds = %4562
  %4568 = load i32, ptr %95, align 4, !tbaa !5
  %4569 = call ptr @__errno_location() #13
  store i32 %4568, ptr %4569, align 4, !tbaa !5
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = load i32, ptr @test_count, align 4, !tbaa !5
  %4572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call ptr @s2n_strerror(i32 noundef %4573, ptr noundef @.str.3)
  %4575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call ptr @s2n_strerror_debug(i32 noundef %4576, ptr noundef @.str.3)
  %4578 = call ptr @__errno_location() #13
  %4579 = load i32, ptr %4578, align 4, !tbaa !5
  %4580 = call ptr @strerror(i32 noundef %4579) #12
  %4581 = call ptr @__errno_location() #13
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  %4583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4570, ptr noundef @.str, i32 noundef %4571, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 302, ptr noundef %4574, ptr noundef %4577, ptr noundef %4580, i32 noundef %4582) #12
  br label %4601

4584:                                             ; preds = %4562, %4555
  %4585 = load i32, ptr %95, align 4, !tbaa !5
  %4586 = call ptr @__errno_location() #13
  store i32 %4585, ptr %4586, align 4, !tbaa !5
  %4587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4588 = load i32, ptr @test_count, align 4, !tbaa !5
  %4589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4590 = load i32, ptr %4589, align 4, !tbaa !5
  %4591 = call ptr @s2n_strerror(i32 noundef %4590, ptr noundef @.str.3)
  %4592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4593 = load i32, ptr %4592, align 4, !tbaa !5
  %4594 = call ptr @s2n_strerror_debug(i32 noundef %4593, ptr noundef @.str.3)
  %4595 = call ptr @__errno_location() #13
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  %4597 = call ptr @strerror(i32 noundef %4596) #12
  %4598 = call ptr @__errno_location() #13
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  %4600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4587, ptr noundef @.str.4, i32 noundef %4588, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 302, ptr noundef %4591, ptr noundef %4594, ptr noundef %4597, i32 noundef %4599) #12
  br label %4601

4601:                                             ; preds = %4584, %4567
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #12
  br label %4602

4602:                                             ; preds = %4601
  br label %4603

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

4604:                                             ; No predecessors!
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

4606:                                             ; preds = %4605, %4547
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

4608:                                             ; preds = %4607
  br label %4609

4609:                                             ; preds = %4608
  %4610 = load i32, ptr @test_count, align 4, !tbaa !5
  %4611 = add nsw i32 %4610, 1
  store i32 %4611, ptr @test_count, align 4, !tbaa !5
  %4612 = load ptr, ptr %70, align 8, !tbaa !9
  %4613 = call i32 @s2n_conn_choose_state_machine(ptr noundef %4612, i8 noundef zeroext 34)
  %4614 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %4613, ptr %4614, align 4
  %4615 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %4616 = load i32, ptr %4615, align 4
  %4617 = call zeroext i1 @s2n_result_is_ok(i32 %4616)
  br i1 %4617, label %4671, label %4618

4618:                                             ; preds = %4609
  br label %4619

4619:                                             ; preds = %4618
  br label %4620

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

4627:                                             ; preds = %4620
  %4628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4629 = call i32 @fileno(ptr noundef %4628) #12
  %4630 = call i32 @isatty(i32 noundef %4629) #12
  %4631 = icmp ne i32 %4630, 0
  br i1 %4631, label %4632, label %4649

4632:                                             ; preds = %4627
  %4633 = load i32, ptr %97, align 4, !tbaa !5
  %4634 = call ptr @__errno_location() #13
  store i32 %4633, ptr %4634, align 4, !tbaa !5
  %4635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4636 = load i32, ptr @test_count, align 4, !tbaa !5
  %4637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @s2n_strerror(i32 noundef %4638, ptr noundef @.str.3)
  %4640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror_debug(i32 noundef %4641, ptr noundef @.str.3)
  %4643 = call ptr @__errno_location() #13
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @strerror(i32 noundef %4644) #12
  %4646 = call ptr @__errno_location() #13
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4635, ptr noundef @.str, i32 noundef %4636, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 303, ptr noundef %4639, ptr noundef %4642, ptr noundef %4645, i32 noundef %4647) #12
  br label %4666

4649:                                             ; preds = %4627, %4620
  %4650 = load i32, ptr %97, align 4, !tbaa !5
  %4651 = call ptr @__errno_location() #13
  store i32 %4650, ptr %4651, align 4, !tbaa !5
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror(i32 noundef %4655, ptr noundef @.str.3)
  %4657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror_debug(i32 noundef %4658, ptr noundef @.str.3)
  %4660 = call ptr @__errno_location() #13
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @strerror(i32 noundef %4661) #12
  %4663 = call ptr @__errno_location() #13
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4652, ptr noundef @.str.4, i32 noundef %4653, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 303, ptr noundef %4656, ptr noundef %4659, ptr noundef %4662, i32 noundef %4664) #12
  br label %4666

4666:                                             ; preds = %4649, %4632
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #12
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

4668:                                             ; preds = %4667
  call void @exit(i32 noundef 1) #14
  unreachable

4669:                                             ; No predecessors!
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670, %4609
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  br label %4674

4674:                                             ; preds = %4673
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %4676 = add nsw i32 %4675, 1
  store i32 %4676, ptr @test_count, align 4, !tbaa !5
  %4677 = load ptr, ptr %70, align 8, !tbaa !9
  %4678 = call i32 @s2n_set_hello_retry_required(ptr noundef %4677)
  %4679 = icmp eq i32 %4678, -1
  br i1 %4679, label %4680, label %4733

4680:                                             ; preds = %4674
  br label %4681

4681:                                             ; preds = %4680
  br label %4682

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

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

4694:                                             ; preds = %4689
  %4695 = load i32, ptr %98, align 4, !tbaa !5
  %4696 = call ptr @__errno_location() #13
  store i32 %4695, ptr %4696, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call ptr @s2n_strerror(i32 noundef %4700, ptr noundef @.str.3)
  %4702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @s2n_strerror_debug(i32 noundef %4703, ptr noundef @.str.3)
  %4705 = call ptr @__errno_location() #13
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @strerror(i32 noundef %4706) #12
  %4708 = call ptr @__errno_location() #13
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4697, ptr noundef @.str, i32 noundef %4698, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 304, ptr noundef %4701, ptr noundef %4704, ptr noundef %4707, i32 noundef %4709) #12
  br label %4728

4711:                                             ; preds = %4689, %4682
  %4712 = load i32, ptr %98, align 4, !tbaa !5
  %4713 = call ptr @__errno_location() #13
  store i32 %4712, ptr %4713, align 4, !tbaa !5
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror(i32 noundef %4717, ptr noundef @.str.3)
  %4719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @s2n_strerror_debug(i32 noundef %4720, ptr noundef @.str.3)
  %4722 = call ptr @__errno_location() #13
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call ptr @strerror(i32 noundef %4723) #12
  %4725 = call ptr @__errno_location() #13
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  %4727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4714, ptr noundef @.str.4, i32 noundef %4715, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 304, ptr noundef %4718, ptr noundef %4721, ptr noundef %4724, i32 noundef %4726) #12
  br label %4728

4728:                                             ; preds = %4711, %4694
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #12
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

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

4731:                                             ; No predecessors!
  br label %4732

4732:                                             ; preds = %4731
  br label %4733

4733:                                             ; preds = %4732, %4674
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

4735:                                             ; preds = %4734
  br label %4736

4736:                                             ; preds = %4735
  %4737 = load i32, ptr @test_count, align 4, !tbaa !5
  %4738 = add nsw i32 %4737, 1
  store i32 %4738, ptr @test_count, align 4, !tbaa !5
  %4739 = load ptr, ptr %70, align 8, !tbaa !9
  %4740 = load ptr, ptr %73, align 8, !tbaa !9
  %4741 = call i32 @s2n_extensions_server_key_share_recv(ptr noundef %4739, ptr noundef %4740)
  %4742 = icmp eq i32 %4741, -1
  br i1 %4742, label %4743, label %4796

4743:                                             ; preds = %4736
  br label %4744

4744:                                             ; preds = %4743
  br label %4745

4745:                                             ; preds = %4744
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #12
  %4746 = call ptr @__errno_location() #13
  %4747 = load i32, ptr %4746, align 4, !tbaa !5
  store i32 %4747, ptr %99, align 4, !tbaa !5
  %4748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4749 = call i32 @s2n_print_stacktrace(ptr noundef %4748)
  %4750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4751 = trunc i8 %4750 to i1
  br i1 %4751, label %4752, label %4774

4752:                                             ; preds = %4745
  %4753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4754 = call i32 @fileno(ptr noundef %4753) #12
  %4755 = call i32 @isatty(i32 noundef %4754) #12
  %4756 = icmp ne i32 %4755, 0
  br i1 %4756, label %4757, label %4774

4757:                                             ; preds = %4752
  %4758 = load i32, ptr %99, align 4, !tbaa !5
  %4759 = call ptr @__errno_location() #13
  store i32 %4758, ptr %4759, align 4, !tbaa !5
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = load i32, ptr @test_count, align 4, !tbaa !5
  %4762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4763 = load i32, ptr %4762, align 4, !tbaa !5
  %4764 = call ptr @s2n_strerror(i32 noundef %4763, ptr noundef @.str.3)
  %4765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @s2n_strerror_debug(i32 noundef %4766, ptr noundef @.str.3)
  %4768 = call ptr @__errno_location() #13
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call ptr @strerror(i32 noundef %4769) #12
  %4771 = call ptr @__errno_location() #13
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4760, ptr noundef @.str, i32 noundef %4761, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 307, ptr noundef %4764, ptr noundef %4767, ptr noundef %4770, i32 noundef %4772) #12
  br label %4791

4774:                                             ; preds = %4752, %4745
  %4775 = load i32, ptr %99, align 4, !tbaa !5
  %4776 = call ptr @__errno_location() #13
  store i32 %4775, ptr %4776, align 4, !tbaa !5
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = load i32, ptr @test_count, align 4, !tbaa !5
  %4779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4780 = load i32, ptr %4779, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror(i32 noundef %4780, ptr noundef @.str.3)
  %4782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4783 = load i32, ptr %4782, align 4, !tbaa !5
  %4784 = call ptr @s2n_strerror_debug(i32 noundef %4783, ptr noundef @.str.3)
  %4785 = call ptr @__errno_location() #13
  %4786 = load i32, ptr %4785, align 4, !tbaa !5
  %4787 = call ptr @strerror(i32 noundef %4786) #12
  %4788 = call ptr @__errno_location() #13
  %4789 = load i32, ptr %4788, align 4, !tbaa !5
  %4790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4777, ptr noundef @.str.4, i32 noundef %4778, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 307, ptr noundef %4781, ptr noundef %4784, ptr noundef %4787, i32 noundef %4789) #12
  br label %4791

4791:                                             ; preds = %4774, %4757
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #12
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

4793:                                             ; preds = %4792
  call void @exit(i32 noundef 1) #14
  unreachable

4794:                                             ; No predecessors!
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795, %4736
  br label %4797

4797:                                             ; preds = %4796
  br label %4798

4798:                                             ; preds = %4797
  br label %4799

4799:                                             ; preds = %4798
  %4800 = load i32, ptr @test_count, align 4, !tbaa !5
  %4801 = add nsw i32 %4800, 1
  store i32 %4801, ptr @test_count, align 4, !tbaa !5
  %4802 = load ptr, ptr %73, align 8, !tbaa !9
  %4803 = getelementptr inbounds %struct.s2n_stuffer, ptr %4802, i32 0, i32 2
  %4804 = load i32, ptr %4803, align 4, !tbaa !50
  %4805 = load ptr, ptr %73, align 8, !tbaa !9
  %4806 = getelementptr inbounds %struct.s2n_stuffer, ptr %4805, i32 0, i32 1
  %4807 = load i32, ptr %4806, align 8, !tbaa !51
  %4808 = sub i32 %4804, %4807
  %4809 = icmp eq i32 %4808, 0
  br i1 %4809, label %4863, label %4810

4810:                                             ; preds = %4799
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

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

4819:                                             ; preds = %4812
  %4820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4821 = call i32 @fileno(ptr noundef %4820) #12
  %4822 = call i32 @isatty(i32 noundef %4821) #12
  %4823 = icmp ne i32 %4822, 0
  br i1 %4823, label %4824, label %4841

4824:                                             ; preds = %4819
  %4825 = load i32, ptr %100, align 4, !tbaa !5
  %4826 = call ptr @__errno_location() #13
  store i32 %4825, ptr %4826, align 4, !tbaa !5
  %4827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @s2n_strerror(i32 noundef %4830, ptr noundef @.str.3)
  %4832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call ptr @s2n_strerror_debug(i32 noundef %4833, ptr noundef @.str.3)
  %4835 = call ptr @__errno_location() #13
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @strerror(i32 noundef %4836) #12
  %4838 = call ptr @__errno_location() #13
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4827, ptr noundef @.str, i32 noundef %4828, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 308, ptr noundef %4831, ptr noundef %4834, ptr noundef %4837, i32 noundef %4839) #12
  br label %4858

4841:                                             ; preds = %4819, %4812
  %4842 = load i32, ptr %100, align 4, !tbaa !5
  %4843 = call ptr @__errno_location() #13
  store i32 %4842, ptr %4843, align 4, !tbaa !5
  %4844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4845 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4847, ptr noundef @.str.3)
  %4849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4850 = load i32, ptr %4849, align 4, !tbaa !5
  %4851 = call ptr @s2n_strerror_debug(i32 noundef %4850, ptr noundef @.str.3)
  %4852 = call ptr @__errno_location() #13
  %4853 = load i32, ptr %4852, align 4, !tbaa !5
  %4854 = call ptr @strerror(i32 noundef %4853) #12
  %4855 = call ptr @__errno_location() #13
  %4856 = load i32, ptr %4855, align 4, !tbaa !5
  %4857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4844, ptr noundef @.str.4, i32 noundef %4845, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 308, ptr noundef %4848, ptr noundef %4851, ptr noundef %4854, i32 noundef %4856) #12
  br label %4858

4858:                                             ; preds = %4841, %4824
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #12
  br label %4859

4859:                                             ; preds = %4858
  br label %4860

4860:                                             ; preds = %4859
  call void @exit(i32 noundef 1) #14
  unreachable

4861:                                             ; No predecessors!
  br label %4862

4862:                                             ; preds = %4861
  br label %4863

4863:                                             ; preds = %4862, %4799
  br label %4864

4864:                                             ; preds = %4863
  br label %4865

4865:                                             ; preds = %4864
  br label %4866

4866:                                             ; preds = %4865
  %4867 = load i32, ptr @test_count, align 4, !tbaa !5
  %4868 = add nsw i32 %4867, 1
  store i32 %4868, ptr @test_count, align 4, !tbaa !5
  %4869 = load ptr, ptr %70, align 8, !tbaa !9
  %4870 = getelementptr inbounds %struct.s2n_connection, ptr %4869, i32 0, i32 31
  %4871 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4870, i32 0, i32 1
  %4872 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4871, i32 0, i32 0
  %4873 = load ptr, ptr %4872, align 8, !tbaa !48
  %4874 = icmp eq ptr %4873, null
  br i1 %4874, label %4875, label %4928

4875:                                             ; preds = %4866
  br label %4876

4876:                                             ; preds = %4875
  br label %4877

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

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

4889:                                             ; preds = %4884
  %4890 = load i32, ptr %101, align 4, !tbaa !5
  %4891 = call ptr @__errno_location() #13
  store i32 %4890, ptr %4891, align 4, !tbaa !5
  %4892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4893 = load i32, ptr @test_count, align 4, !tbaa !5
  %4894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call ptr @s2n_strerror(i32 noundef %4895, ptr noundef @.str.3)
  %4897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4898 = load i32, ptr %4897, align 4, !tbaa !5
  %4899 = call ptr @s2n_strerror_debug(i32 noundef %4898, ptr noundef @.str.3)
  %4900 = call ptr @__errno_location() #13
  %4901 = load i32, ptr %4900, align 4, !tbaa !5
  %4902 = call ptr @strerror(i32 noundef %4901) #12
  %4903 = call ptr @__errno_location() #13
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4892, ptr noundef @.str, i32 noundef %4893, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 311, ptr noundef %4896, ptr noundef %4899, ptr noundef %4902, i32 noundef %4904) #12
  br label %4923

4906:                                             ; preds = %4884, %4877
  %4907 = load i32, ptr %101, align 4, !tbaa !5
  %4908 = call ptr @__errno_location() #13
  store i32 %4907, ptr %4908, align 4, !tbaa !5
  %4909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4910 = load i32, ptr @test_count, align 4, !tbaa !5
  %4911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4912 = load i32, ptr %4911, align 4, !tbaa !5
  %4913 = call ptr @s2n_strerror(i32 noundef %4912, ptr noundef @.str.3)
  %4914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4915 = load i32, ptr %4914, align 4, !tbaa !5
  %4916 = call ptr @s2n_strerror_debug(i32 noundef %4915, ptr noundef @.str.3)
  %4917 = call ptr @__errno_location() #13
  %4918 = load i32, ptr %4917, align 4, !tbaa !5
  %4919 = call ptr @strerror(i32 noundef %4918) #12
  %4920 = call ptr @__errno_location() #13
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4909, ptr noundef @.str.4, i32 noundef %4910, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 311, ptr noundef %4913, ptr noundef %4916, ptr noundef %4919, i32 noundef %4921) #12
  br label %4923

4923:                                             ; preds = %4906, %4889
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #12
  br label %4924

4924:                                             ; preds = %4923
  br label %4925

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

4926:                                             ; No predecessors!
  br label %4927

4927:                                             ; preds = %4926
  br label %4928

4928:                                             ; preds = %4927, %4866
  br label %4929

4929:                                             ; preds = %4928
  br label %4930

4930:                                             ; preds = %4929
  br label %4931

4931:                                             ; preds = %4930
  %4932 = load i32, ptr @test_count, align 4, !tbaa !5
  %4933 = add nsw i32 %4932, 1
  store i32 %4933, ptr @test_count, align 4, !tbaa !5
  %4934 = load ptr, ptr %69, align 8, !tbaa !9
  %4935 = call i32 @s2n_connection_free(ptr noundef %4934)
  %4936 = icmp eq i32 %4935, -1
  br i1 %4936, label %4937, label %4990

4937:                                             ; preds = %4931
  br label %4938

4938:                                             ; preds = %4937
  br label %4939

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

4946:                                             ; preds = %4939
  %4947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4948 = call i32 @fileno(ptr noundef %4947) #12
  %4949 = call i32 @isatty(i32 noundef %4948) #12
  %4950 = icmp ne i32 %4949, 0
  br i1 %4950, label %4951, label %4968

4951:                                             ; preds = %4946
  %4952 = load i32, ptr %102, align 4, !tbaa !5
  %4953 = call ptr @__errno_location() #13
  store i32 %4952, ptr %4953, align 4, !tbaa !5
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = load i32, ptr @test_count, align 4, !tbaa !5
  %4956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call ptr @s2n_strerror(i32 noundef %4957, ptr noundef @.str.3)
  %4959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  %4961 = call ptr @s2n_strerror_debug(i32 noundef %4960, ptr noundef @.str.3)
  %4962 = call ptr @__errno_location() #13
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  %4964 = call ptr @strerror(i32 noundef %4963) #12
  %4965 = call ptr @__errno_location() #13
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4954, ptr noundef @.str, i32 noundef %4955, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 313, ptr noundef %4958, ptr noundef %4961, ptr noundef %4964, i32 noundef %4966) #12
  br label %4985

4968:                                             ; preds = %4946, %4939
  %4969 = load i32, ptr %102, align 4, !tbaa !5
  %4970 = call ptr @__errno_location() #13
  store i32 %4969, ptr %4970, align 4, !tbaa !5
  %4971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4972 = load i32, ptr @test_count, align 4, !tbaa !5
  %4973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4974 = load i32, ptr %4973, align 4, !tbaa !5
  %4975 = call ptr @s2n_strerror(i32 noundef %4974, ptr noundef @.str.3)
  %4976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4977 = load i32, ptr %4976, align 4, !tbaa !5
  %4978 = call ptr @s2n_strerror_debug(i32 noundef %4977, ptr noundef @.str.3)
  %4979 = call ptr @__errno_location() #13
  %4980 = load i32, ptr %4979, align 4, !tbaa !5
  %4981 = call ptr @strerror(i32 noundef %4980) #12
  %4982 = call ptr @__errno_location() #13
  %4983 = load i32, ptr %4982, align 4, !tbaa !5
  %4984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4971, ptr noundef @.str.4, i32 noundef %4972, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 313, ptr noundef %4975, ptr noundef %4978, ptr noundef %4981, i32 noundef %4983) #12
  br label %4985

4985:                                             ; preds = %4968, %4951
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #12
  br label %4986

4986:                                             ; preds = %4985
  br label %4987

4987:                                             ; preds = %4986
  call void @exit(i32 noundef 1) #14
  unreachable

4988:                                             ; No predecessors!
  br label %4989

4989:                                             ; preds = %4988
  br label %4990

4990:                                             ; preds = %4989, %4931
  br label %4991

4991:                                             ; preds = %4990
  br label %4992

4992:                                             ; preds = %4991
  br label %4993

4993:                                             ; preds = %4992
  %4994 = load i32, ptr @test_count, align 4, !tbaa !5
  %4995 = add nsw i32 %4994, 1
  store i32 %4995, ptr @test_count, align 4, !tbaa !5
  %4996 = load ptr, ptr %70, align 8, !tbaa !9
  %4997 = call i32 @s2n_connection_free(ptr noundef %4996)
  %4998 = icmp eq i32 %4997, -1
  br i1 %4998, label %4999, label %5052

4999:                                             ; preds = %4993
  br label %5000

5000:                                             ; preds = %4999
  br label %5001

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

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

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

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

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

5048:                                             ; preds = %5047
  br label %5049

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

5050:                                             ; No predecessors!
  br label %5051

5051:                                             ; preds = %5050
  br label %5052

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

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053
  store i32 0, ptr %78, align 4
  br label %5055

5055:                                             ; preds = %5054, %4480, %3763
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #12
  %5056 = load i32, ptr %78, align 4
  switch i32 %5056, label %12564 [
    i32 0, label %5057
    i32 1, label %12562
  ]

5057:                                             ; preds = %5055
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #12
  store ptr null, ptr %104, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #12
  store ptr null, ptr %105, align 8, !tbaa !9
  br label %5058

5058:                                             ; preds = %5057
  %5059 = load i32, ptr @test_count, align 4, !tbaa !5
  %5060 = add nsw i32 %5059, 1
  store i32 %5060, ptr @test_count, align 4, !tbaa !5
  %5061 = call ptr @s2n_config_new()
  store ptr %5061, ptr %104, align 8, !tbaa !9
  %5062 = icmp eq ptr %5061, null
  br i1 %5062, label %5063, label %5116

5063:                                             ; preds = %5058
  br label %5064

5064:                                             ; preds = %5063
  br label %5065

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

5072:                                             ; preds = %5065
  %5073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5074 = call i32 @fileno(ptr noundef %5073) #12
  %5075 = call i32 @isatty(i32 noundef %5074) #12
  %5076 = icmp ne i32 %5075, 0
  br i1 %5076, label %5077, label %5094

5077:                                             ; preds = %5072
  %5078 = load i32, ptr %106, align 4, !tbaa !5
  %5079 = call ptr @__errno_location() #13
  store i32 %5078, ptr %5079, align 4, !tbaa !5
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = load i32, ptr @test_count, align 4, !tbaa !5
  %5082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror(i32 noundef %5083, ptr noundef @.str.3)
  %5085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror_debug(i32 noundef %5086, ptr noundef @.str.3)
  %5088 = call ptr @__errno_location() #13
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @strerror(i32 noundef %5089) #12
  %5091 = call ptr @__errno_location() #13
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5080, ptr noundef @.str, i32 noundef %5081, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 323, ptr noundef %5084, ptr noundef %5087, ptr noundef %5090, i32 noundef %5092) #12
  br label %5111

5094:                                             ; preds = %5072, %5065
  %5095 = load i32, ptr %106, align 4, !tbaa !5
  %5096 = call ptr @__errno_location() #13
  store i32 %5095, ptr %5096, align 4, !tbaa !5
  %5097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5098 = load i32, ptr @test_count, align 4, !tbaa !5
  %5099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @s2n_strerror(i32 noundef %5100, ptr noundef @.str.3)
  %5102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call ptr @s2n_strerror_debug(i32 noundef %5103, ptr noundef @.str.3)
  %5105 = call ptr @__errno_location() #13
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call ptr @strerror(i32 noundef %5106) #12
  %5108 = call ptr @__errno_location() #13
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  %5110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5097, ptr noundef @.str.4, i32 noundef %5098, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 323, ptr noundef %5101, ptr noundef %5104, ptr noundef %5107, i32 noundef %5109) #12
  br label %5111

5111:                                             ; preds = %5094, %5077
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #12
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

5113:                                             ; preds = %5112
  call void @exit(i32 noundef 1) #14
  unreachable

5114:                                             ; No predecessors!
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115, %5058
  br label %5117

5117:                                             ; preds = %5116
  br label %5118

5118:                                             ; preds = %5117
  br label %5119

5119:                                             ; preds = %5118
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = add nsw i32 %5120, 1
  store i32 %5121, ptr @test_count, align 4, !tbaa !5
  %5122 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5122, ptr %105, align 8, !tbaa !9
  %5123 = icmp eq ptr %5122, null
  br i1 %5123, label %5124, label %5177

5124:                                             ; preds = %5119
  br label %5125

5125:                                             ; preds = %5124
  br label %5126

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

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

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

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

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

5173:                                             ; preds = %5172
  br label %5174

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

5175:                                             ; No predecessors!
  br label %5176

5176:                                             ; preds = %5175
  br label %5177

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

5178:                                             ; preds = %5177
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  %5181 = load i32, ptr @test_count, align 4, !tbaa !5
  %5182 = add nsw i32 %5181, 1
  store i32 %5182, ptr @test_count, align 4, !tbaa !5
  %5183 = load ptr, ptr %105, align 8, !tbaa !9
  %5184 = load ptr, ptr %104, align 8, !tbaa !9
  %5185 = call i32 @s2n_connection_set_config(ptr noundef %5183, ptr noundef %5184)
  %5186 = icmp eq i32 %5185, -1
  br i1 %5186, label %5187, label %5240

5187:                                             ; preds = %5180
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

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

5196:                                             ; preds = %5189
  %5197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5198 = call i32 @fileno(ptr noundef %5197) #12
  %5199 = call i32 @isatty(i32 noundef %5198) #12
  %5200 = icmp ne i32 %5199, 0
  br i1 %5200, label %5201, label %5218

5201:                                             ; preds = %5196
  %5202 = load i32, ptr %108, align 4, !tbaa !5
  %5203 = call ptr @__errno_location() #13
  store i32 %5202, ptr %5203, align 4, !tbaa !5
  %5204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5205 = load i32, ptr @test_count, align 4, !tbaa !5
  %5206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call ptr @s2n_strerror(i32 noundef %5207, ptr noundef @.str.3)
  %5209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call ptr @s2n_strerror_debug(i32 noundef %5210, ptr noundef @.str.3)
  %5212 = call ptr @__errno_location() #13
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call ptr @strerror(i32 noundef %5213) #12
  %5215 = call ptr @__errno_location() #13
  %5216 = load i32, ptr %5215, align 4, !tbaa !5
  %5217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5204, ptr noundef @.str, i32 noundef %5205, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 325, ptr noundef %5208, ptr noundef %5211, ptr noundef %5214, i32 noundef %5216) #12
  br label %5235

5218:                                             ; preds = %5196, %5189
  %5219 = load i32, ptr %108, align 4, !tbaa !5
  %5220 = call ptr @__errno_location() #13
  store i32 %5219, ptr %5220, align 4, !tbaa !5
  %5221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5222 = load i32, ptr @test_count, align 4, !tbaa !5
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror(i32 noundef %5224, ptr noundef @.str.3)
  %5226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @s2n_strerror_debug(i32 noundef %5227, ptr noundef @.str.3)
  %5229 = call ptr @__errno_location() #13
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call ptr @strerror(i32 noundef %5230) #12
  %5232 = call ptr @__errno_location() #13
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  %5234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5221, ptr noundef @.str.4, i32 noundef %5222, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 325, ptr noundef %5225, ptr noundef %5228, ptr noundef %5231, i32 noundef %5233) #12
  br label %5235

5235:                                             ; preds = %5218, %5201
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #12
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236
  call void @exit(i32 noundef 1) #14
  unreachable

5238:                                             ; No predecessors!
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239, %5180
  br label %5241

5241:                                             ; preds = %5240
  br label %5242

5242:                                             ; preds = %5241
  %5243 = load ptr, ptr %105, align 8, !tbaa !9
  %5244 = getelementptr inbounds %struct.s2n_connection, ptr %5243, i32 0, i32 22
  store i8 34, ptr %5244, align 1, !tbaa !59
  %5245 = load ptr, ptr %105, align 8, !tbaa !9
  %5246 = getelementptr inbounds %struct.s2n_connection, ptr %5245, i32 0, i32 27
  %5247 = load ptr, ptr %5246, align 8, !tbaa !42
  %5248 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5247, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %5248, align 8, !tbaa !43
  %5249 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %5250 = load ptr, ptr %105, align 8, !tbaa !9
  %5251 = getelementptr inbounds %struct.s2n_connection, ptr %5250, i32 0, i32 31
  %5252 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5251, i32 0, i32 1
  %5253 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5252, i32 0, i32 0
  store ptr %5249, ptr %5253, align 8, !tbaa !48
  %5254 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %5255 = load ptr, ptr %105, align 8, !tbaa !9
  %5256 = getelementptr inbounds %struct.s2n_connection, ptr %5255, i32 0, i32 31
  %5257 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5256, i32 0, i32 3
  %5258 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5257, i32 0, i32 0
  store ptr %5254, ptr %5258, align 8, !tbaa !49
  br label %5259

5259:                                             ; preds = %5242
  %5260 = load i32, ptr @test_count, align 4, !tbaa !5
  %5261 = add nsw i32 %5260, 1
  store i32 %5261, ptr @test_count, align 4, !tbaa !5
  %5262 = load ptr, ptr %105, align 8, !tbaa !9
  %5263 = getelementptr inbounds %struct.s2n_connection, ptr %5262, i32 0, i32 31
  %5264 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5263, i32 0, i32 3
  %5265 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %5264)
  %5266 = icmp eq i32 %5265, -1
  br i1 %5266, label %5267, label %5320

5267:                                             ; preds = %5259
  br label %5268

5268:                                             ; preds = %5267
  br label %5269

5269:                                             ; preds = %5268
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #12
  %5270 = call ptr @__errno_location() #13
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  store i32 %5271, ptr %109, align 4, !tbaa !5
  %5272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5273 = call i32 @s2n_print_stacktrace(ptr noundef %5272)
  %5274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5275 = trunc i8 %5274 to i1
  br i1 %5275, label %5276, label %5298

5276:                                             ; preds = %5269
  %5277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5278 = call i32 @fileno(ptr noundef %5277) #12
  %5279 = call i32 @isatty(i32 noundef %5278) #12
  %5280 = icmp ne i32 %5279, 0
  br i1 %5280, label %5281, label %5298

5281:                                             ; preds = %5276
  %5282 = load i32, ptr %109, align 4, !tbaa !5
  %5283 = call ptr @__errno_location() #13
  store i32 %5282, ptr %5283, align 4, !tbaa !5
  %5284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5285 = load i32, ptr @test_count, align 4, !tbaa !5
  %5286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5287 = load i32, ptr %5286, align 4, !tbaa !5
  %5288 = call ptr @s2n_strerror(i32 noundef %5287, ptr noundef @.str.3)
  %5289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5290 = load i32, ptr %5289, align 4, !tbaa !5
  %5291 = call ptr @s2n_strerror_debug(i32 noundef %5290, ptr noundef @.str.3)
  %5292 = call ptr @__errno_location() #13
  %5293 = load i32, ptr %5292, align 4, !tbaa !5
  %5294 = call ptr @strerror(i32 noundef %5293) #12
  %5295 = call ptr @__errno_location() #13
  %5296 = load i32, ptr %5295, align 4, !tbaa !5
  %5297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5284, ptr noundef @.str, i32 noundef %5285, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 331, ptr noundef %5288, ptr noundef %5291, ptr noundef %5294, i32 noundef %5296) #12
  br label %5315

5298:                                             ; preds = %5276, %5269
  %5299 = load i32, ptr %109, align 4, !tbaa !5
  %5300 = call ptr @__errno_location() #13
  store i32 %5299, ptr %5300, align 4, !tbaa !5
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = load i32, ptr @test_count, align 4, !tbaa !5
  %5303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5304 = load i32, ptr %5303, align 4, !tbaa !5
  %5305 = call ptr @s2n_strerror(i32 noundef %5304, ptr noundef @.str.3)
  %5306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5307 = load i32, ptr %5306, align 4, !tbaa !5
  %5308 = call ptr @s2n_strerror_debug(i32 noundef %5307, ptr noundef @.str.3)
  %5309 = call ptr @__errno_location() #13
  %5310 = load i32, ptr %5309, align 4, !tbaa !5
  %5311 = call ptr @strerror(i32 noundef %5310) #12
  %5312 = call ptr @__errno_location() #13
  %5313 = load i32, ptr %5312, align 4, !tbaa !5
  %5314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5301, ptr noundef @.str.4, i32 noundef %5302, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 331, ptr noundef %5305, ptr noundef %5308, ptr noundef %5311, i32 noundef %5313) #12
  br label %5315

5315:                                             ; preds = %5298, %5281
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #12
  br label %5316

5316:                                             ; preds = %5315
  br label %5317

5317:                                             ; preds = %5316
  call void @exit(i32 noundef 1) #14
  unreachable

5318:                                             ; No predecessors!
  br label %5319

5319:                                             ; preds = %5318
  br label %5320

5320:                                             ; preds = %5319, %5259
  br label %5321

5321:                                             ; preds = %5320
  br label %5322

5322:                                             ; preds = %5321
  call void @llvm.lifetime.start.p0(i64 24, ptr %110) #12
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 24, i1 false)
  br label %5323

5323:                                             ; preds = %5322
  %5324 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %110, ptr noundef @.str.98)
  %5325 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %5324, ptr %5325, align 4
  %5326 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  %5327 = load i32, ptr %5326, align 4
  %5328 = call zeroext i1 @s2n_result_is_ok(i32 %5327)
  br i1 %5328, label %5330, label %5329

5329:                                             ; preds = %5323
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %6311

5330:                                             ; preds = %5323
  br label %5331

5331:                                             ; preds = %5330
  br label %5332

5332:                                             ; preds = %5331
  call void @llvm.lifetime.start.p0(i64 24, ptr %112) #12
  call void @llvm.memset.p0.i64(ptr align 8 %112, i8 0, i64 24, i1 false)
  br label %5333

5333:                                             ; preds = %5332
  %5334 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %112, ptr noundef @.str.99)
  %5335 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  store i32 %5334, ptr %5335, align 4
  %5336 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  %5337 = load i32, ptr %5336, align 4
  %5338 = call zeroext i1 @s2n_result_is_ok(i32 %5337)
  br i1 %5338, label %5340, label %5339

5339:                                             ; preds = %5333
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %6309

5340:                                             ; preds = %5333
  br label %5341

5341:                                             ; preds = %5340
  br label %5342

5342:                                             ; preds = %5341
  call void @llvm.lifetime.start.p0(i64 24, ptr %114) #12
  call void @llvm.memset.p0.i64(ptr align 8 %114, i8 0, i64 24, i1 false)
  br label %5343

5343:                                             ; preds = %5342
  %5344 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %114, ptr noundef @.str.100)
  %5345 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  store i32 %5344, ptr %5345, align 4
  %5346 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  %5347 = load i32, ptr %5346, align 4
  %5348 = call zeroext i1 @s2n_result_is_ok(i32 %5347)
  br i1 %5348, label %5350, label %5349

5349:                                             ; preds = %5343
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %6307

5350:                                             ; preds = %5343
  br label %5351

5351:                                             ; preds = %5350
  br label %5352

5352:                                             ; preds = %5351
  br label %5353

5353:                                             ; preds = %5352
  %5354 = load i32, ptr @test_count, align 4, !tbaa !5
  %5355 = add nsw i32 %5354, 1
  store i32 %5355, ptr @test_count, align 4, !tbaa !5
  %5356 = load ptr, ptr %105, align 8, !tbaa !9
  %5357 = call i32 @s2n_conn_update_handshake_hashes(ptr noundef %5356, ptr noundef %110)
  %5358 = icmp eq i32 %5357, -1
  br i1 %5358, label %5359, label %5412

5359:                                             ; preds = %5353
  br label %5360

5360:                                             ; preds = %5359
  br label %5361

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

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

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

5390:                                             ; preds = %5368, %5361
  %5391 = load i32, ptr %116, align 4, !tbaa !5
  %5392 = call ptr @__errno_location() #13
  store i32 %5391, ptr %5392, align 4, !tbaa !5
  %5393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5394 = load i32, ptr @test_count, align 4, !tbaa !5
  %5395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5396 = load i32, ptr %5395, align 4, !tbaa !5
  %5397 = call ptr @s2n_strerror(i32 noundef %5396, ptr noundef @.str.3)
  %5398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5399 = load i32, ptr %5398, align 4, !tbaa !5
  %5400 = call ptr @s2n_strerror_debug(i32 noundef %5399, ptr noundef @.str.3)
  %5401 = call ptr @__errno_location() #13
  %5402 = load i32, ptr %5401, align 4, !tbaa !5
  %5403 = call ptr @strerror(i32 noundef %5402) #12
  %5404 = call ptr @__errno_location() #13
  %5405 = load i32, ptr %5404, align 4, !tbaa !5
  %5406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5393, ptr noundef @.str.4, i32 noundef %5394, ptr noundef @.str.101, ptr noundef @.str.2, i32 noundef 355, ptr noundef %5397, ptr noundef %5400, ptr noundef %5403, i32 noundef %5405) #12
  br label %5407

5407:                                             ; preds = %5390, %5373
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #12
  br label %5408

5408:                                             ; preds = %5407
  br label %5409

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

5410:                                             ; No predecessors!
  br label %5411

5411:                                             ; preds = %5410
  br label %5412

5412:                                             ; preds = %5411, %5353
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

5414:                                             ; preds = %5413
  call void @llvm.lifetime.start.p0(i64 592, ptr %117) #12
  call void @llvm.memset.p0.i64(ptr align 8 %117, i8 0, i64 592, i1 false)
  br label %5415

5415:                                             ; preds = %5414
  %5416 = load ptr, ptr %105, align 8, !tbaa !9
  %5417 = call i32 @s2n_tls13_keys_from_conn(ptr noundef %117, ptr noundef %5416)
  %5418 = icmp sgt i32 %5417, -1
  br i1 %5418, label %5420, label %5419

5419:                                             ; preds = %5415
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %6305

5420:                                             ; preds = %5415
  br label %5421

5421:                                             ; preds = %5420
  br label %5422

5422:                                             ; preds = %5421
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #12
  %5423 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %117, i32 0, i32 2
  %5424 = load i8, ptr %5423, align 8, !tbaa !60
  store i8 %5424, ptr %118, align 1, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 24, ptr %119) #12
  call void @llvm.memset.p0.i64(ptr align 8 %119, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %120) #12
  call void @llvm.memset.p0.i64(ptr align 8 %120, i8 0, i64 56, i1 false)
  br label %5425

5425:                                             ; preds = %5422
  %5426 = load i32, ptr @test_count, align 4, !tbaa !5
  %5427 = add nsw i32 %5426, 1
  store i32 %5427, ptr @test_count, align 4, !tbaa !5
  %5428 = call i32 @s2n_hash_new(ptr noundef %120)
  %5429 = icmp eq i32 %5428, -1
  br i1 %5429, label %5430, label %5483

5430:                                             ; preds = %5425
  br label %5431

5431:                                             ; preds = %5430
  br label %5432

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

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

5444:                                             ; preds = %5439
  %5445 = load i32, ptr %121, align 4, !tbaa !5
  %5446 = call ptr @__errno_location() #13
  store i32 %5445, ptr %5446, align 4, !tbaa !5
  %5447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5448 = load i32, ptr @test_count, align 4, !tbaa !5
  %5449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5450 = load i32, ptr %5449, align 4, !tbaa !5
  %5451 = call ptr @s2n_strerror(i32 noundef %5450, ptr noundef @.str.3)
  %5452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5453 = load i32, ptr %5452, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror_debug(i32 noundef %5453, ptr noundef @.str.3)
  %5455 = call ptr @__errno_location() #13
  %5456 = load i32, ptr %5455, align 4, !tbaa !5
  %5457 = call ptr @strerror(i32 noundef %5456) #12
  %5458 = call ptr @__errno_location() #13
  %5459 = load i32, ptr %5458, align 4, !tbaa !5
  %5460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5447, ptr noundef @.str, i32 noundef %5448, ptr noundef @.str.102, ptr noundef @.str.2, i32 noundef 362, ptr noundef %5451, ptr noundef %5454, ptr noundef %5457, i32 noundef %5459) #12
  br label %5478

5461:                                             ; preds = %5439, %5432
  %5462 = load i32, ptr %121, align 4, !tbaa !5
  %5463 = call ptr @__errno_location() #13
  store i32 %5462, ptr %5463, align 4, !tbaa !5
  %5464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5465 = load i32, ptr @test_count, align 4, !tbaa !5
  %5466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5467 = load i32, ptr %5466, align 4, !tbaa !5
  %5468 = call ptr @s2n_strerror(i32 noundef %5467, ptr noundef @.str.3)
  %5469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5470 = load i32, ptr %5469, align 4, !tbaa !5
  %5471 = call ptr @s2n_strerror_debug(i32 noundef %5470, ptr noundef @.str.3)
  %5472 = call ptr @__errno_location() #13
  %5473 = load i32, ptr %5472, align 4, !tbaa !5
  %5474 = call ptr @strerror(i32 noundef %5473) #12
  %5475 = call ptr @__errno_location() #13
  %5476 = load i32, ptr %5475, align 4, !tbaa !5
  %5477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5464, ptr noundef @.str.4, i32 noundef %5465, ptr noundef @.str.102, ptr noundef @.str.2, i32 noundef 362, ptr noundef %5468, ptr noundef %5471, ptr noundef %5474, i32 noundef %5476) #12
  br label %5478

5478:                                             ; preds = %5461, %5444
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #12
  br label %5479

5479:                                             ; preds = %5478
  br label %5480

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

5481:                                             ; No predecessors!
  br label %5482

5482:                                             ; preds = %5481
  br label %5483

5483:                                             ; preds = %5482, %5425
  br label %5484

5484:                                             ; preds = %5483
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485
  %5487 = load ptr, ptr %105, align 8, !tbaa !9
  %5488 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %117, i32 0, i32 1
  %5489 = load i32, ptr %5488, align 4, !tbaa !63
  %5490 = call i32 @s2n_handshake_copy_hash_state(ptr noundef %5487, i32 noundef %5489, ptr noundef %120)
  %5491 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %5490, ptr %5491, align 4
  %5492 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  %5493 = load i32, ptr %5492, align 4
  %5494 = call zeroext i1 @s2n_result_is_ok(i32 %5493)
  br i1 %5494, label %5496, label %5495

5495:                                             ; preds = %5486
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %6303

5496:                                             ; preds = %5486
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  call void @llvm.lifetime.start.p0(i64 64, ptr %123) #12
  call void @llvm.memset.p0.i64(ptr align 16 %123, i8 0, i64 64, i1 false)
  br label %5499

5499:                                             ; preds = %5498
  %5500 = load i32, ptr @test_count, align 4, !tbaa !5
  %5501 = add nsw i32 %5500, 1
  store i32 %5501, ptr @test_count, align 4, !tbaa !5
  %5502 = getelementptr inbounds [64 x i8], ptr %123, i64 0, i64 0
  %5503 = load i8, ptr %118, align 1, !tbaa !62
  %5504 = zext i8 %5503 to i32
  %5505 = call i32 @s2n_hash_digest(ptr noundef %120, ptr noundef %5502, i32 noundef %5504)
  %5506 = icmp eq i32 %5505, -1
  br i1 %5506, label %5507, label %5560

5507:                                             ; preds = %5499
  br label %5508

5508:                                             ; preds = %5507
  br label %5509

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

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

5521:                                             ; preds = %5516
  %5522 = load i32, ptr %124, align 4, !tbaa !5
  %5523 = call ptr @__errno_location() #13
  store i32 %5522, ptr %5523, align 4, !tbaa !5
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = load i32, ptr @test_count, align 4, !tbaa !5
  %5526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5527 = load i32, ptr %5526, align 4, !tbaa !5
  %5528 = call ptr @s2n_strerror(i32 noundef %5527, ptr noundef @.str.3)
  %5529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5530 = load i32, ptr %5529, align 4, !tbaa !5
  %5531 = call ptr @s2n_strerror_debug(i32 noundef %5530, ptr noundef @.str.3)
  %5532 = call ptr @__errno_location() #13
  %5533 = load i32, ptr %5532, align 4, !tbaa !5
  %5534 = call ptr @strerror(i32 noundef %5533) #12
  %5535 = call ptr @__errno_location() #13
  %5536 = load i32, ptr %5535, align 4, !tbaa !5
  %5537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5524, ptr noundef @.str, i32 noundef %5525, ptr noundef @.str.103, ptr noundef @.str.2, i32 noundef 366, ptr noundef %5528, ptr noundef %5531, ptr noundef %5534, i32 noundef %5536) #12
  br label %5555

5538:                                             ; preds = %5516, %5509
  %5539 = load i32, ptr %124, align 4, !tbaa !5
  %5540 = call ptr @__errno_location() #13
  store i32 %5539, ptr %5540, align 4, !tbaa !5
  %5541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5542 = load i32, ptr @test_count, align 4, !tbaa !5
  %5543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5544 = load i32, ptr %5543, align 4, !tbaa !5
  %5545 = call ptr @s2n_strerror(i32 noundef %5544, ptr noundef @.str.3)
  %5546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5547 = load i32, ptr %5546, align 4, !tbaa !5
  %5548 = call ptr @s2n_strerror_debug(i32 noundef %5547, ptr noundef @.str.3)
  %5549 = call ptr @__errno_location() #13
  %5550 = load i32, ptr %5549, align 4, !tbaa !5
  %5551 = call ptr @strerror(i32 noundef %5550) #12
  %5552 = call ptr @__errno_location() #13
  %5553 = load i32, ptr %5552, align 4, !tbaa !5
  %5554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5541, ptr noundef @.str.4, i32 noundef %5542, ptr noundef @.str.103, ptr noundef @.str.2, i32 noundef 366, ptr noundef %5545, ptr noundef %5548, ptr noundef %5551, i32 noundef %5553) #12
  br label %5555

5555:                                             ; preds = %5538, %5521
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #12
  br label %5556

5556:                                             ; preds = %5555
  br label %5557

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

5558:                                             ; No predecessors!
  br label %5559

5559:                                             ; preds = %5558
  br label %5560

5560:                                             ; preds = %5559, %5499
  br label %5561

5561:                                             ; preds = %5560
  br label %5562

5562:                                             ; preds = %5561
  br label %5563

5563:                                             ; preds = %5562
  %5564 = load i32, ptr @test_count, align 4, !tbaa !5
  %5565 = add nsw i32 %5564, 1
  store i32 %5565, ptr @test_count, align 4, !tbaa !5
  %5566 = getelementptr inbounds [64 x i8], ptr %123, i64 0, i64 0
  %5567 = load i8, ptr %118, align 1, !tbaa !62
  %5568 = zext i8 %5567 to i32
  %5569 = call i32 @s2n_blob_init(ptr noundef %119, ptr noundef %5566, i32 noundef %5568)
  %5570 = icmp eq i32 %5569, -1
  br i1 %5570, label %5571, label %5624

5571:                                             ; preds = %5563
  br label %5572

5572:                                             ; preds = %5571
  br label %5573

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

5580:                                             ; preds = %5573
  %5581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5582 = call i32 @fileno(ptr noundef %5581) #12
  %5583 = call i32 @isatty(i32 noundef %5582) #12
  %5584 = icmp ne i32 %5583, 0
  br i1 %5584, label %5585, label %5602

5585:                                             ; preds = %5580
  %5586 = load i32, ptr %125, align 4, !tbaa !5
  %5587 = call ptr @__errno_location() #13
  store i32 %5586, ptr %5587, align 4, !tbaa !5
  %5588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5589 = load i32, ptr @test_count, align 4, !tbaa !5
  %5590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5591 = load i32, ptr %5590, align 4, !tbaa !5
  %5592 = call ptr @s2n_strerror(i32 noundef %5591, ptr noundef @.str.3)
  %5593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @s2n_strerror_debug(i32 noundef %5594, ptr noundef @.str.3)
  %5596 = call ptr @__errno_location() #13
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call ptr @strerror(i32 noundef %5597) #12
  %5599 = call ptr @__errno_location() #13
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5588, ptr noundef @.str, i32 noundef %5589, ptr noundef @.str.104, ptr noundef @.str.2, i32 noundef 368, ptr noundef %5592, ptr noundef %5595, ptr noundef %5598, i32 noundef %5600) #12
  br label %5619

5602:                                             ; preds = %5580, %5573
  %5603 = load i32, ptr %125, align 4, !tbaa !5
  %5604 = call ptr @__errno_location() #13
  store i32 %5603, ptr %5604, align 4, !tbaa !5
  %5605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5606 = load i32, ptr @test_count, align 4, !tbaa !5
  %5607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5608 = load i32, ptr %5607, align 4, !tbaa !5
  %5609 = call ptr @s2n_strerror(i32 noundef %5608, ptr noundef @.str.3)
  %5610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5611 = load i32, ptr %5610, align 4, !tbaa !5
  %5612 = call ptr @s2n_strerror_debug(i32 noundef %5611, ptr noundef @.str.3)
  %5613 = call ptr @__errno_location() #13
  %5614 = load i32, ptr %5613, align 4, !tbaa !5
  %5615 = call ptr @strerror(i32 noundef %5614) #12
  %5616 = call ptr @__errno_location() #13
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5605, ptr noundef @.str.4, i32 noundef %5606, ptr noundef @.str.104, ptr noundef @.str.2, i32 noundef 368, ptr noundef %5609, ptr noundef %5612, ptr noundef %5615, i32 noundef %5617) #12
  br label %5619

5619:                                             ; preds = %5602, %5585
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #12
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

5621:                                             ; preds = %5620
  call void @exit(i32 noundef 1) #14
  unreachable

5622:                                             ; No predecessors!
  br label %5623

5623:                                             ; preds = %5622
  br label %5624

5624:                                             ; preds = %5623, %5563
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

5626:                                             ; preds = %5625
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

5628:                                             ; preds = %5627
  %5629 = load i32, ptr @test_count, align 4, !tbaa !5
  %5630 = add nsw i32 %5629, 1
  store i32 %5630, ptr @test_count, align 4, !tbaa !5
  %5631 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 1
  %5632 = load i32, ptr %5631, align 8, !tbaa !64
  %5633 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 1
  %5634 = load i32, ptr %5633, align 8, !tbaa !64
  %5635 = icmp eq i32 %5632, %5634
  br i1 %5635, label %5689, label %5636

5636:                                             ; preds = %5628
  br label %5637

5637:                                             ; preds = %5636
  br label %5638

5638:                                             ; preds = %5637
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #12
  %5639 = call ptr @__errno_location() #13
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  store i32 %5640, ptr %126, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = call i32 @s2n_print_stacktrace(ptr noundef %5641)
  %5643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5644 = trunc i8 %5643 to i1
  br i1 %5644, label %5645, label %5667

5645:                                             ; preds = %5638
  %5646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5647 = call i32 @fileno(ptr noundef %5646) #12
  %5648 = call i32 @isatty(i32 noundef %5647) #12
  %5649 = icmp ne i32 %5648, 0
  br i1 %5649, label %5650, label %5667

5650:                                             ; preds = %5645
  %5651 = load i32, ptr %126, align 4, !tbaa !5
  %5652 = call ptr @__errno_location() #13
  store i32 %5651, ptr %5652, align 4, !tbaa !5
  %5653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5654 = load i32, ptr @test_count, align 4, !tbaa !5
  %5655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @s2n_strerror(i32 noundef %5656, ptr noundef @.str.3)
  %5658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror_debug(i32 noundef %5659, ptr noundef @.str.3)
  %5661 = call ptr @__errno_location() #13
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @strerror(i32 noundef %5662) #12
  %5664 = call ptr @__errno_location() #13
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5653, ptr noundef @.str, i32 noundef %5654, ptr noundef @.str.105, ptr noundef @.str.2, i32 noundef 369, ptr noundef %5657, ptr noundef %5660, ptr noundef %5663, i32 noundef %5665) #12
  br label %5684

5667:                                             ; preds = %5645, %5638
  %5668 = load i32, ptr %126, align 4, !tbaa !5
  %5669 = call ptr @__errno_location() #13
  store i32 %5668, ptr %5669, align 4, !tbaa !5
  %5670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5671 = load i32, ptr @test_count, align 4, !tbaa !5
  %5672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5673 = load i32, ptr %5672, align 4, !tbaa !5
  %5674 = call ptr @s2n_strerror(i32 noundef %5673, ptr noundef @.str.3)
  %5675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5676 = load i32, ptr %5675, align 4, !tbaa !5
  %5677 = call ptr @s2n_strerror_debug(i32 noundef %5676, ptr noundef @.str.3)
  %5678 = call ptr @__errno_location() #13
  %5679 = load i32, ptr %5678, align 4, !tbaa !5
  %5680 = call ptr @strerror(i32 noundef %5679) #12
  %5681 = call ptr @__errno_location() #13
  %5682 = load i32, ptr %5681, align 4, !tbaa !5
  %5683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5670, ptr noundef @.str.4, i32 noundef %5671, ptr noundef @.str.105, ptr noundef @.str.2, i32 noundef 369, ptr noundef %5674, ptr noundef %5677, ptr noundef %5680, i32 noundef %5682) #12
  br label %5684

5684:                                             ; preds = %5667, %5650
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #12
  br label %5685

5685:                                             ; preds = %5684
  br label %5686

5686:                                             ; preds = %5685
  call void @exit(i32 noundef 1) #14
  unreachable

5687:                                             ; No predecessors!
  br label %5688

5688:                                             ; preds = %5687
  br label %5689

5689:                                             ; preds = %5688, %5628
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

5691:                                             ; preds = %5690
  br label %5692

5692:                                             ; preds = %5691
  %5693 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 1
  %5694 = load i32, ptr %5693, align 8, !tbaa !64
  %5695 = icmp ne i32 %5694, 0
  br i1 %5695, label %5696, label %5765

5696:                                             ; preds = %5692
  br label %5697

5697:                                             ; preds = %5696
  %5698 = load i32, ptr @test_count, align 4, !tbaa !5
  %5699 = add nsw i32 %5698, 1
  store i32 %5699, ptr @test_count, align 4, !tbaa !5
  %5700 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 0
  %5701 = load ptr, ptr %5700, align 8, !tbaa !65
  %5702 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 0
  %5703 = load ptr, ptr %5702, align 8, !tbaa !65
  %5704 = getelementptr inbounds %struct.s2n_blob, ptr %112, i32 0, i32 1
  %5705 = load i32, ptr %5704, align 8, !tbaa !64
  %5706 = zext i32 %5705 to i64
  %5707 = call i32 @memcmp(ptr noundef %5701, ptr noundef %5703, i64 noundef %5706) #15
  %5708 = icmp eq i32 %5707, 0
  br i1 %5708, label %5762, label %5709

5709:                                             ; preds = %5697
  br label %5710

5710:                                             ; preds = %5709
  br label %5711

5711:                                             ; preds = %5710
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #12
  %5712 = call ptr @__errno_location() #13
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  store i32 %5713, ptr %127, align 4, !tbaa !5
  %5714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5715 = call i32 @s2n_print_stacktrace(ptr noundef %5714)
  %5716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5717 = trunc i8 %5716 to i1
  br i1 %5717, label %5718, label %5740

5718:                                             ; preds = %5711
  %5719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5720 = call i32 @fileno(ptr noundef %5719) #12
  %5721 = call i32 @isatty(i32 noundef %5720) #12
  %5722 = icmp ne i32 %5721, 0
  br i1 %5722, label %5723, label %5740

5723:                                             ; preds = %5718
  %5724 = load i32, ptr %127, align 4, !tbaa !5
  %5725 = call ptr @__errno_location() #13
  store i32 %5724, ptr %5725, align 4, !tbaa !5
  %5726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5727 = load i32, ptr @test_count, align 4, !tbaa !5
  %5728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5729 = load i32, ptr %5728, align 4, !tbaa !5
  %5730 = call ptr @s2n_strerror(i32 noundef %5729, ptr noundef @.str.3)
  %5731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5732 = load i32, ptr %5731, align 4, !tbaa !5
  %5733 = call ptr @s2n_strerror_debug(i32 noundef %5732, ptr noundef @.str.3)
  %5734 = call ptr @__errno_location() #13
  %5735 = load i32, ptr %5734, align 4, !tbaa !5
  %5736 = call ptr @strerror(i32 noundef %5735) #12
  %5737 = call ptr @__errno_location() #13
  %5738 = load i32, ptr %5737, align 4, !tbaa !5
  %5739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5726, ptr noundef @.str, i32 noundef %5727, ptr noundef @.str.106, ptr noundef @.str.2, i32 noundef 369, ptr noundef %5730, ptr noundef %5733, ptr noundef %5736, i32 noundef %5738) #12
  br label %5757

5740:                                             ; preds = %5718, %5711
  %5741 = load i32, ptr %127, align 4, !tbaa !5
  %5742 = call ptr @__errno_location() #13
  store i32 %5741, ptr %5742, align 4, !tbaa !5
  %5743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5744 = load i32, ptr @test_count, align 4, !tbaa !5
  %5745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5746 = load i32, ptr %5745, align 4, !tbaa !5
  %5747 = call ptr @s2n_strerror(i32 noundef %5746, ptr noundef @.str.3)
  %5748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5749 = load i32, ptr %5748, align 4, !tbaa !5
  %5750 = call ptr @s2n_strerror_debug(i32 noundef %5749, ptr noundef @.str.3)
  %5751 = call ptr @__errno_location() #13
  %5752 = load i32, ptr %5751, align 4, !tbaa !5
  %5753 = call ptr @strerror(i32 noundef %5752) #12
  %5754 = call ptr @__errno_location() #13
  %5755 = load i32, ptr %5754, align 4, !tbaa !5
  %5756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5743, ptr noundef @.str.4, i32 noundef %5744, ptr noundef @.str.106, ptr noundef @.str.2, i32 noundef 369, ptr noundef %5747, ptr noundef %5750, ptr noundef %5753, i32 noundef %5755) #12
  br label %5757

5757:                                             ; preds = %5740, %5723
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #12
  br label %5758

5758:                                             ; preds = %5757
  br label %5759

5759:                                             ; preds = %5758
  call void @exit(i32 noundef 1) #14
  unreachable

5760:                                             ; No predecessors!
  br label %5761

5761:                                             ; preds = %5760
  br label %5762

5762:                                             ; preds = %5761, %5697
  br label %5763

5763:                                             ; preds = %5762
  br label %5764

5764:                                             ; preds = %5763
  br label %5765

5765:                                             ; preds = %5764, %5692
  br label %5766

5766:                                             ; preds = %5765
  br label %5767

5767:                                             ; preds = %5766
  br label %5768

5768:                                             ; preds = %5767
  br label %5769

5769:                                             ; preds = %5768
  br label %5770

5770:                                             ; preds = %5769
  %5771 = load i32, ptr @test_count, align 4, !tbaa !5
  %5772 = add nsw i32 %5771, 1
  store i32 %5772, ptr @test_count, align 4, !tbaa !5
  %5773 = load ptr, ptr %105, align 8, !tbaa !9
  %5774 = call i32 @s2n_server_hello_retry_recreate_transcript(ptr noundef %5773)
  %5775 = icmp eq i32 %5774, -1
  br i1 %5775, label %5776, label %5829

5776:                                             ; preds = %5770
  br label %5777

5777:                                             ; preds = %5776
  br label %5778

5778:                                             ; preds = %5777
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #12
  %5779 = call ptr @__errno_location() #13
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  store i32 %5780, ptr %128, align 4, !tbaa !5
  %5781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5782 = call i32 @s2n_print_stacktrace(ptr noundef %5781)
  %5783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5784 = trunc i8 %5783 to i1
  br i1 %5784, label %5785, label %5807

5785:                                             ; preds = %5778
  %5786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5787 = call i32 @fileno(ptr noundef %5786) #12
  %5788 = call i32 @isatty(i32 noundef %5787) #12
  %5789 = icmp ne i32 %5788, 0
  br i1 %5789, label %5790, label %5807

5790:                                             ; preds = %5785
  %5791 = load i32, ptr %128, align 4, !tbaa !5
  %5792 = call ptr @__errno_location() #13
  store i32 %5791, ptr %5792, align 4, !tbaa !5
  %5793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5794 = load i32, ptr @test_count, align 4, !tbaa !5
  %5795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5796 = load i32, ptr %5795, align 4, !tbaa !5
  %5797 = call ptr @s2n_strerror(i32 noundef %5796, ptr noundef @.str.3)
  %5798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5799 = load i32, ptr %5798, align 4, !tbaa !5
  %5800 = call ptr @s2n_strerror_debug(i32 noundef %5799, ptr noundef @.str.3)
  %5801 = call ptr @__errno_location() #13
  %5802 = load i32, ptr %5801, align 4, !tbaa !5
  %5803 = call ptr @strerror(i32 noundef %5802) #12
  %5804 = call ptr @__errno_location() #13
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5793, ptr noundef @.str, i32 noundef %5794, ptr noundef @.str.107, ptr noundef @.str.2, i32 noundef 371, ptr noundef %5797, ptr noundef %5800, ptr noundef %5803, i32 noundef %5805) #12
  br label %5824

5807:                                             ; preds = %5785, %5778
  %5808 = load i32, ptr %128, align 4, !tbaa !5
  %5809 = call ptr @__errno_location() #13
  store i32 %5808, ptr %5809, align 4, !tbaa !5
  %5810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5811 = load i32, ptr @test_count, align 4, !tbaa !5
  %5812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5813 = load i32, ptr %5812, align 4, !tbaa !5
  %5814 = call ptr @s2n_strerror(i32 noundef %5813, ptr noundef @.str.3)
  %5815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5816 = load i32, ptr %5815, align 4, !tbaa !5
  %5817 = call ptr @s2n_strerror_debug(i32 noundef %5816, ptr noundef @.str.3)
  %5818 = call ptr @__errno_location() #13
  %5819 = load i32, ptr %5818, align 4, !tbaa !5
  %5820 = call ptr @strerror(i32 noundef %5819) #12
  %5821 = call ptr @__errno_location() #13
  %5822 = load i32, ptr %5821, align 4, !tbaa !5
  %5823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5810, ptr noundef @.str.4, i32 noundef %5811, ptr noundef @.str.107, ptr noundef @.str.2, i32 noundef 371, ptr noundef %5814, ptr noundef %5817, ptr noundef %5820, i32 noundef %5822) #12
  br label %5824

5824:                                             ; preds = %5807, %5790
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #12
  br label %5825

5825:                                             ; preds = %5824
  br label %5826

5826:                                             ; preds = %5825
  call void @exit(i32 noundef 1) #14
  unreachable

5827:                                             ; No predecessors!
  br label %5828

5828:                                             ; preds = %5827
  br label %5829

5829:                                             ; preds = %5828, %5770
  br label %5830

5830:                                             ; preds = %5829
  br label %5831

5831:                                             ; preds = %5830
  call void @llvm.lifetime.start.p0(i64 56, ptr %129) #12
  call void @llvm.memset.p0.i64(ptr align 8 %129, i8 0, i64 56, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %130) #12
  call void @llvm.memset.p0.i64(ptr align 16 %130, i8 0, i64 64, i1 false)
  br label %5832

5832:                                             ; preds = %5831
  %5833 = load i32, ptr @test_count, align 4, !tbaa !5
  %5834 = add nsw i32 %5833, 1
  store i32 %5834, ptr @test_count, align 4, !tbaa !5
  %5835 = call i32 @s2n_hash_new(ptr noundef %129)
  %5836 = icmp eq i32 %5835, -1
  br i1 %5836, label %5837, label %5890

5837:                                             ; preds = %5832
  br label %5838

5838:                                             ; preds = %5837
  br label %5839

5839:                                             ; preds = %5838
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #12
  %5840 = call ptr @__errno_location() #13
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  store i32 %5841, ptr %131, align 4, !tbaa !5
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = call i32 @s2n_print_stacktrace(ptr noundef %5842)
  %5844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5845 = trunc i8 %5844 to i1
  br i1 %5845, label %5846, label %5868

5846:                                             ; preds = %5839
  %5847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5848 = call i32 @fileno(ptr noundef %5847) #12
  %5849 = call i32 @isatty(i32 noundef %5848) #12
  %5850 = icmp ne i32 %5849, 0
  br i1 %5850, label %5851, label %5868

5851:                                             ; preds = %5846
  %5852 = load i32, ptr %131, align 4, !tbaa !5
  %5853 = call ptr @__errno_location() #13
  store i32 %5852, ptr %5853, align 4, !tbaa !5
  %5854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5855 = load i32, ptr @test_count, align 4, !tbaa !5
  %5856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call ptr @s2n_strerror(i32 noundef %5857, ptr noundef @.str.3)
  %5859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call ptr @s2n_strerror_debug(i32 noundef %5860, ptr noundef @.str.3)
  %5862 = call ptr @__errno_location() #13
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  %5864 = call ptr @strerror(i32 noundef %5863) #12
  %5865 = call ptr @__errno_location() #13
  %5866 = load i32, ptr %5865, align 4, !tbaa !5
  %5867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5854, ptr noundef @.str, i32 noundef %5855, ptr noundef @.str.108, ptr noundef @.str.2, i32 noundef 375, ptr noundef %5858, ptr noundef %5861, ptr noundef %5864, i32 noundef %5866) #12
  br label %5885

5868:                                             ; preds = %5846, %5839
  %5869 = load i32, ptr %131, align 4, !tbaa !5
  %5870 = call ptr @__errno_location() #13
  store i32 %5869, ptr %5870, align 4, !tbaa !5
  %5871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5872 = load i32, ptr @test_count, align 4, !tbaa !5
  %5873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call ptr @s2n_strerror(i32 noundef %5874, ptr noundef @.str.3)
  %5876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call ptr @s2n_strerror_debug(i32 noundef %5877, ptr noundef @.str.3)
  %5879 = call ptr @__errno_location() #13
  %5880 = load i32, ptr %5879, align 4, !tbaa !5
  %5881 = call ptr @strerror(i32 noundef %5880) #12
  %5882 = call ptr @__errno_location() #13
  %5883 = load i32, ptr %5882, align 4, !tbaa !5
  %5884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5871, ptr noundef @.str.4, i32 noundef %5872, ptr noundef @.str.108, ptr noundef @.str.2, i32 noundef 375, ptr noundef %5875, ptr noundef %5878, ptr noundef %5881, i32 noundef %5883) #12
  br label %5885

5885:                                             ; preds = %5868, %5851
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #12
  br label %5886

5886:                                             ; preds = %5885
  br label %5887

5887:                                             ; preds = %5886
  call void @exit(i32 noundef 1) #14
  unreachable

5888:                                             ; No predecessors!
  br label %5889

5889:                                             ; preds = %5888
  br label %5890

5890:                                             ; preds = %5889, %5832
  br label %5891

5891:                                             ; preds = %5890
  br label %5892

5892:                                             ; preds = %5891
  br label %5893

5893:                                             ; preds = %5892
  %5894 = load ptr, ptr %105, align 8, !tbaa !9
  %5895 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %117, i32 0, i32 1
  %5896 = load i32, ptr %5895, align 4, !tbaa !63
  %5897 = call i32 @s2n_handshake_copy_hash_state(ptr noundef %5894, i32 noundef %5896, ptr noundef %129)
  %5898 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  store i32 %5897, ptr %5898, align 4
  %5899 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  %5900 = load i32, ptr %5899, align 4
  %5901 = call zeroext i1 @s2n_result_is_ok(i32 %5900)
  br i1 %5901, label %5903, label %5902

5902:                                             ; preds = %5893
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %78, align 4
  br label %6301

5903:                                             ; preds = %5893
  br label %5904

5904:                                             ; preds = %5903
  br label %5905

5905:                                             ; preds = %5904
  br label %5906

5906:                                             ; preds = %5905
  %5907 = load i32, ptr @test_count, align 4, !tbaa !5
  %5908 = add nsw i32 %5907, 1
  store i32 %5908, ptr @test_count, align 4, !tbaa !5
  %5909 = getelementptr inbounds [64 x i8], ptr %130, i64 0, i64 0
  %5910 = load i8, ptr %118, align 1, !tbaa !62
  %5911 = zext i8 %5910 to i32
  %5912 = call i32 @s2n_hash_digest(ptr noundef %129, ptr noundef %5909, i32 noundef %5911)
  %5913 = icmp eq i32 %5912, -1
  br i1 %5913, label %5914, label %5967

5914:                                             ; preds = %5906
  br label %5915

5915:                                             ; preds = %5914
  br label %5916

5916:                                             ; preds = %5915
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #12
  %5917 = call ptr @__errno_location() #13
  %5918 = load i32, ptr %5917, align 4, !tbaa !5
  store i32 %5918, ptr %133, align 4, !tbaa !5
  %5919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5920 = call i32 @s2n_print_stacktrace(ptr noundef %5919)
  %5921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5922 = trunc i8 %5921 to i1
  br i1 %5922, label %5923, label %5945

5923:                                             ; preds = %5916
  %5924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5925 = call i32 @fileno(ptr noundef %5924) #12
  %5926 = call i32 @isatty(i32 noundef %5925) #12
  %5927 = icmp ne i32 %5926, 0
  br i1 %5927, label %5928, label %5945

5928:                                             ; preds = %5923
  %5929 = load i32, ptr %133, align 4, !tbaa !5
  %5930 = call ptr @__errno_location() #13
  store i32 %5929, ptr %5930, align 4, !tbaa !5
  %5931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5932 = load i32, ptr @test_count, align 4, !tbaa !5
  %5933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5934 = load i32, ptr %5933, align 4, !tbaa !5
  %5935 = call ptr @s2n_strerror(i32 noundef %5934, ptr noundef @.str.3)
  %5936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5937 = load i32, ptr %5936, align 4, !tbaa !5
  %5938 = call ptr @s2n_strerror_debug(i32 noundef %5937, ptr noundef @.str.3)
  %5939 = call ptr @__errno_location() #13
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call ptr @strerror(i32 noundef %5940) #12
  %5942 = call ptr @__errno_location() #13
  %5943 = load i32, ptr %5942, align 4, !tbaa !5
  %5944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5931, ptr noundef @.str, i32 noundef %5932, ptr noundef @.str.109, ptr noundef @.str.2, i32 noundef 377, ptr noundef %5935, ptr noundef %5938, ptr noundef %5941, i32 noundef %5943) #12
  br label %5962

5945:                                             ; preds = %5923, %5916
  %5946 = load i32, ptr %133, align 4, !tbaa !5
  %5947 = call ptr @__errno_location() #13
  store i32 %5946, ptr %5947, align 4, !tbaa !5
  %5948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5949 = load i32, ptr @test_count, align 4, !tbaa !5
  %5950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call ptr @s2n_strerror(i32 noundef %5951, ptr noundef @.str.3)
  %5953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  %5955 = call ptr @s2n_strerror_debug(i32 noundef %5954, ptr noundef @.str.3)
  %5956 = call ptr @__errno_location() #13
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  %5958 = call ptr @strerror(i32 noundef %5957) #12
  %5959 = call ptr @__errno_location() #13
  %5960 = load i32, ptr %5959, align 4, !tbaa !5
  %5961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5948, ptr noundef @.str.4, i32 noundef %5949, ptr noundef @.str.109, ptr noundef @.str.2, i32 noundef 377, ptr noundef %5952, ptr noundef %5955, ptr noundef %5958, i32 noundef %5960) #12
  br label %5962

5962:                                             ; preds = %5945, %5928
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #12
  br label %5963

5963:                                             ; preds = %5962
  br label %5964

5964:                                             ; preds = %5963
  call void @exit(i32 noundef 1) #14
  unreachable

5965:                                             ; No predecessors!
  br label %5966

5966:                                             ; preds = %5965
  br label %5967

5967:                                             ; preds = %5966, %5906
  br label %5968

5968:                                             ; preds = %5967
  br label %5969

5969:                                             ; preds = %5968
  br label %5970

5970:                                             ; preds = %5969
  %5971 = load i32, ptr @test_count, align 4, !tbaa !5
  %5972 = add nsw i32 %5971, 1
  store i32 %5972, ptr @test_count, align 4, !tbaa !5
  %5973 = getelementptr inbounds [64 x i8], ptr %130, i64 0, i64 0
  %5974 = load i8, ptr %118, align 1, !tbaa !62
  %5975 = zext i8 %5974 to i32
  %5976 = call i32 @s2n_blob_init(ptr noundef %119, ptr noundef %5973, i32 noundef %5975)
  %5977 = icmp eq i32 %5976, -1
  br i1 %5977, label %5978, label %6031

5978:                                             ; preds = %5970
  br label %5979

5979:                                             ; preds = %5978
  br label %5980

5980:                                             ; preds = %5979
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #12
  %5981 = call ptr @__errno_location() #13
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  store i32 %5982, ptr %134, align 4, !tbaa !5
  %5983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5984 = call i32 @s2n_print_stacktrace(ptr noundef %5983)
  %5985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5986 = trunc i8 %5985 to i1
  br i1 %5986, label %5987, label %6009

5987:                                             ; preds = %5980
  %5988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5989 = call i32 @fileno(ptr noundef %5988) #12
  %5990 = call i32 @isatty(i32 noundef %5989) #12
  %5991 = icmp ne i32 %5990, 0
  br i1 %5991, label %5992, label %6009

5992:                                             ; preds = %5987
  %5993 = load i32, ptr %134, align 4, !tbaa !5
  %5994 = call ptr @__errno_location() #13
  store i32 %5993, ptr %5994, align 4, !tbaa !5
  %5995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5996 = load i32, ptr @test_count, align 4, !tbaa !5
  %5997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5998 = load i32, ptr %5997, align 4, !tbaa !5
  %5999 = call ptr @s2n_strerror(i32 noundef %5998, ptr noundef @.str.3)
  %6000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror_debug(i32 noundef %6001, ptr noundef @.str.3)
  %6003 = call ptr @__errno_location() #13
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @strerror(i32 noundef %6004) #12
  %6006 = call ptr @__errno_location() #13
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5995, ptr noundef @.str, i32 noundef %5996, ptr noundef @.str.110, ptr noundef @.str.2, i32 noundef 379, ptr noundef %5999, ptr noundef %6002, ptr noundef %6005, i32 noundef %6007) #12
  br label %6026

6009:                                             ; preds = %5987, %5980
  %6010 = load i32, ptr %134, align 4, !tbaa !5
  %6011 = call ptr @__errno_location() #13
  store i32 %6010, ptr %6011, align 4, !tbaa !5
  %6012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6013 = load i32, ptr @test_count, align 4, !tbaa !5
  %6014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6015 = load i32, ptr %6014, align 4, !tbaa !5
  %6016 = call ptr @s2n_strerror(i32 noundef %6015, ptr noundef @.str.3)
  %6017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6018 = load i32, ptr %6017, align 4, !tbaa !5
  %6019 = call ptr @s2n_strerror_debug(i32 noundef %6018, ptr noundef @.str.3)
  %6020 = call ptr @__errno_location() #13
  %6021 = load i32, ptr %6020, align 4, !tbaa !5
  %6022 = call ptr @strerror(i32 noundef %6021) #12
  %6023 = call ptr @__errno_location() #13
  %6024 = load i32, ptr %6023, align 4, !tbaa !5
  %6025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6012, ptr noundef @.str.4, i32 noundef %6013, ptr noundef @.str.110, ptr noundef @.str.2, i32 noundef 379, ptr noundef %6016, ptr noundef %6019, ptr noundef %6022, i32 noundef %6024) #12
  br label %6026

6026:                                             ; preds = %6009, %5992
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #12
  br label %6027

6027:                                             ; preds = %6026
  br label %6028

6028:                                             ; preds = %6027
  call void @exit(i32 noundef 1) #14
  unreachable

6029:                                             ; No predecessors!
  br label %6030

6030:                                             ; preds = %6029
  br label %6031

6031:                                             ; preds = %6030, %5970
  br label %6032

6032:                                             ; preds = %6031
  br label %6033

6033:                                             ; preds = %6032
  br label %6034

6034:                                             ; preds = %6033
  br label %6035

6035:                                             ; preds = %6034
  %6036 = load i32, ptr @test_count, align 4, !tbaa !5
  %6037 = add nsw i32 %6036, 1
  store i32 %6037, ptr @test_count, align 4, !tbaa !5
  %6038 = getelementptr inbounds %struct.s2n_blob, ptr %114, i32 0, i32 1
  %6039 = load i32, ptr %6038, align 8, !tbaa !64
  %6040 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 1
  %6041 = load i32, ptr %6040, align 8, !tbaa !64
  %6042 = icmp eq i32 %6039, %6041
  br i1 %6042, label %6096, label %6043

6043:                                             ; preds = %6035
  br label %6044

6044:                                             ; preds = %6043
  br label %6045

6045:                                             ; preds = %6044
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #12
  %6046 = call ptr @__errno_location() #13
  %6047 = load i32, ptr %6046, align 4, !tbaa !5
  store i32 %6047, ptr %135, align 4, !tbaa !5
  %6048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6049 = call i32 @s2n_print_stacktrace(ptr noundef %6048)
  %6050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6051 = trunc i8 %6050 to i1
  br i1 %6051, label %6052, label %6074

6052:                                             ; preds = %6045
  %6053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6054 = call i32 @fileno(ptr noundef %6053) #12
  %6055 = call i32 @isatty(i32 noundef %6054) #12
  %6056 = icmp ne i32 %6055, 0
  br i1 %6056, label %6057, label %6074

6057:                                             ; preds = %6052
  %6058 = load i32, ptr %135, align 4, !tbaa !5
  %6059 = call ptr @__errno_location() #13
  store i32 %6058, ptr %6059, align 4, !tbaa !5
  %6060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6061 = load i32, ptr @test_count, align 4, !tbaa !5
  %6062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror(i32 noundef %6063, ptr noundef @.str.3)
  %6065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  %6067 = call ptr @s2n_strerror_debug(i32 noundef %6066, ptr noundef @.str.3)
  %6068 = call ptr @__errno_location() #13
  %6069 = load i32, ptr %6068, align 4, !tbaa !5
  %6070 = call ptr @strerror(i32 noundef %6069) #12
  %6071 = call ptr @__errno_location() #13
  %6072 = load i32, ptr %6071, align 4, !tbaa !5
  %6073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6060, ptr noundef @.str, i32 noundef %6061, ptr noundef @.str.111, ptr noundef @.str.2, i32 noundef 380, ptr noundef %6064, ptr noundef %6067, ptr noundef %6070, i32 noundef %6072) #12
  br label %6091

6074:                                             ; preds = %6052, %6045
  %6075 = load i32, ptr %135, align 4, !tbaa !5
  %6076 = call ptr @__errno_location() #13
  store i32 %6075, ptr %6076, align 4, !tbaa !5
  %6077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6078 = load i32, ptr @test_count, align 4, !tbaa !5
  %6079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call ptr @s2n_strerror(i32 noundef %6080, ptr noundef @.str.3)
  %6082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  %6084 = call ptr @s2n_strerror_debug(i32 noundef %6083, ptr noundef @.str.3)
  %6085 = call ptr @__errno_location() #13
  %6086 = load i32, ptr %6085, align 4, !tbaa !5
  %6087 = call ptr @strerror(i32 noundef %6086) #12
  %6088 = call ptr @__errno_location() #13
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6077, ptr noundef @.str.4, i32 noundef %6078, ptr noundef @.str.111, ptr noundef @.str.2, i32 noundef 380, ptr noundef %6081, ptr noundef %6084, ptr noundef %6087, i32 noundef %6089) #12
  br label %6091

6091:                                             ; preds = %6074, %6057
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #12
  br label %6092

6092:                                             ; preds = %6091
  br label %6093

6093:                                             ; preds = %6092
  call void @exit(i32 noundef 1) #14
  unreachable

6094:                                             ; No predecessors!
  br label %6095

6095:                                             ; preds = %6094
  br label %6096

6096:                                             ; preds = %6095, %6035
  br label %6097

6097:                                             ; preds = %6096
  br label %6098

6098:                                             ; preds = %6097
  br label %6099

6099:                                             ; preds = %6098
  %6100 = getelementptr inbounds %struct.s2n_blob, ptr %114, i32 0, i32 1
  %6101 = load i32, ptr %6100, align 8, !tbaa !64
  %6102 = icmp ne i32 %6101, 0
  br i1 %6102, label %6103, label %6172

6103:                                             ; preds = %6099
  br label %6104

6104:                                             ; preds = %6103
  %6105 = load i32, ptr @test_count, align 4, !tbaa !5
  %6106 = add nsw i32 %6105, 1
  store i32 %6106, ptr @test_count, align 4, !tbaa !5
  %6107 = getelementptr inbounds %struct.s2n_blob, ptr %114, i32 0, i32 0
  %6108 = load ptr, ptr %6107, align 8, !tbaa !65
  %6109 = getelementptr inbounds %struct.s2n_blob, ptr %119, i32 0, i32 0
  %6110 = load ptr, ptr %6109, align 8, !tbaa !65
  %6111 = getelementptr inbounds %struct.s2n_blob, ptr %114, i32 0, i32 1
  %6112 = load i32, ptr %6111, align 8, !tbaa !64
  %6113 = zext i32 %6112 to i64
  %6114 = call i32 @memcmp(ptr noundef %6108, ptr noundef %6110, i64 noundef %6113) #15
  %6115 = icmp eq i32 %6114, 0
  br i1 %6115, label %6169, label %6116

6116:                                             ; preds = %6104
  br label %6117

6117:                                             ; preds = %6116
  br label %6118

6118:                                             ; preds = %6117
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #12
  %6119 = call ptr @__errno_location() #13
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  store i32 %6120, ptr %136, align 4, !tbaa !5
  %6121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6122 = call i32 @s2n_print_stacktrace(ptr noundef %6121)
  %6123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6124 = trunc i8 %6123 to i1
  br i1 %6124, label %6125, label %6147

6125:                                             ; preds = %6118
  %6126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6127 = call i32 @fileno(ptr noundef %6126) #12
  %6128 = call i32 @isatty(i32 noundef %6127) #12
  %6129 = icmp ne i32 %6128, 0
  br i1 %6129, label %6130, label %6147

6130:                                             ; preds = %6125
  %6131 = load i32, ptr %136, align 4, !tbaa !5
  %6132 = call ptr @__errno_location() #13
  store i32 %6131, ptr %6132, align 4, !tbaa !5
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = load i32, ptr @test_count, align 4, !tbaa !5
  %6135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6136 = load i32, ptr %6135, align 4, !tbaa !5
  %6137 = call ptr @s2n_strerror(i32 noundef %6136, ptr noundef @.str.3)
  %6138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6139 = load i32, ptr %6138, align 4, !tbaa !5
  %6140 = call ptr @s2n_strerror_debug(i32 noundef %6139, ptr noundef @.str.3)
  %6141 = call ptr @__errno_location() #13
  %6142 = load i32, ptr %6141, align 4, !tbaa !5
  %6143 = call ptr @strerror(i32 noundef %6142) #12
  %6144 = call ptr @__errno_location() #13
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  %6146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6133, ptr noundef @.str, i32 noundef %6134, ptr noundef @.str.112, ptr noundef @.str.2, i32 noundef 380, ptr noundef %6137, ptr noundef %6140, ptr noundef %6143, i32 noundef %6145) #12
  br label %6164

6147:                                             ; preds = %6125, %6118
  %6148 = load i32, ptr %136, align 4, !tbaa !5
  %6149 = call ptr @__errno_location() #13
  store i32 %6148, ptr %6149, align 4, !tbaa !5
  %6150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6151 = load i32, ptr @test_count, align 4, !tbaa !5
  %6152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6153 = load i32, ptr %6152, align 4, !tbaa !5
  %6154 = call ptr @s2n_strerror(i32 noundef %6153, ptr noundef @.str.3)
  %6155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6156 = load i32, ptr %6155, align 4, !tbaa !5
  %6157 = call ptr @s2n_strerror_debug(i32 noundef %6156, ptr noundef @.str.3)
  %6158 = call ptr @__errno_location() #13
  %6159 = load i32, ptr %6158, align 4, !tbaa !5
  %6160 = call ptr @strerror(i32 noundef %6159) #12
  %6161 = call ptr @__errno_location() #13
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6150, ptr noundef @.str.4, i32 noundef %6151, ptr noundef @.str.112, ptr noundef @.str.2, i32 noundef 380, ptr noundef %6154, ptr noundef %6157, ptr noundef %6160, i32 noundef %6162) #12
  br label %6164

6164:                                             ; preds = %6147, %6130
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #12
  br label %6165

6165:                                             ; preds = %6164
  br label %6166

6166:                                             ; preds = %6165
  call void @exit(i32 noundef 1) #14
  unreachable

6167:                                             ; No predecessors!
  br label %6168

6168:                                             ; preds = %6167
  br label %6169

6169:                                             ; preds = %6168, %6104
  br label %6170

6170:                                             ; preds = %6169
  br label %6171

6171:                                             ; preds = %6170
  br label %6172

6172:                                             ; preds = %6171, %6099
  br label %6173

6173:                                             ; preds = %6172
  br label %6174

6174:                                             ; preds = %6173
  br label %6175

6175:                                             ; preds = %6174
  br label %6176

6176:                                             ; preds = %6175
  br label %6177

6177:                                             ; preds = %6176
  %6178 = load i32, ptr @test_count, align 4, !tbaa !5
  %6179 = add nsw i32 %6178, 1
  store i32 %6179, ptr @test_count, align 4, !tbaa !5
  %6180 = load ptr, ptr %104, align 8, !tbaa !9
  %6181 = call i32 @s2n_config_free(ptr noundef %6180)
  %6182 = icmp eq i32 %6181, -1
  br i1 %6182, label %6183, label %6236

6183:                                             ; preds = %6177
  br label %6184

6184:                                             ; preds = %6183
  br label %6185

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

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

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

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

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

6232:                                             ; preds = %6231
  br label %6233

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

6234:                                             ; No predecessors!
  br label %6235

6235:                                             ; preds = %6234
  br label %6236

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

6237:                                             ; preds = %6236
  br label %6238

6238:                                             ; preds = %6237
  br label %6239

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

6245:                                             ; preds = %6239
  br label %6246

6246:                                             ; preds = %6245
  br label %6247

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

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

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

6276:                                             ; preds = %6254, %6247
  %6277 = load i32, ptr %138, align 4, !tbaa !5
  %6278 = call ptr @__errno_location() #13
  store i32 %6277, ptr %6278, align 4, !tbaa !5
  %6279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6280 = load i32, ptr @test_count, align 4, !tbaa !5
  %6281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  %6283 = call ptr @s2n_strerror(i32 noundef %6282, ptr noundef @.str.3)
  %6284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = call ptr @s2n_strerror_debug(i32 noundef %6285, ptr noundef @.str.3)
  %6287 = call ptr @__errno_location() #13
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call ptr @strerror(i32 noundef %6288) #12
  %6290 = call ptr @__errno_location() #13
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  %6292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6279, ptr noundef @.str.4, i32 noundef %6280, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 383, ptr noundef %6283, ptr noundef %6286, ptr noundef %6289, i32 noundef %6291) #12
  br label %6293

6293:                                             ; preds = %6276, %6259
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #12
  br label %6294

6294:                                             ; preds = %6293
  br label %6295

6295:                                             ; preds = %6294
  call void @exit(i32 noundef 1) #14
  unreachable

6296:                                             ; No predecessors!
  br label %6297

6297:                                             ; preds = %6296
  br label %6298

6298:                                             ; preds = %6297, %6239
  br label %6299

6299:                                             ; preds = %6298
  br label %6300

6300:                                             ; preds = %6299
  store i32 0, ptr %78, align 4
  br label %6301

6301:                                             ; preds = %6300, %5902
  call void @llvm.lifetime.end.p0(i64 64, ptr %130) #12
  %6302 = call i32 @s2n_hash_free(ptr noundef %129)
  call void @llvm.lifetime.end.p0(i64 56, ptr %129) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr %123) #12
  br label %6303

6303:                                             ; preds = %6301, %5495
  %6304 = call i32 @s2n_hash_free(ptr noundef %120)
  call void @llvm.lifetime.end.p0(i64 56, ptr %120) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #12
  br label %6305

6305:                                             ; preds = %6303, %5419
  %6306 = call i32 @s2n_tls13_keys_free(ptr noundef %117)
  call void @llvm.lifetime.end.p0(i64 592, ptr %117) #12
  br label %6307

6307:                                             ; preds = %6305, %5349
  %6308 = call i32 @s2n_free(ptr noundef %114)
  call void @llvm.lifetime.end.p0(i64 24, ptr %114) #12
  br label %6309

6309:                                             ; preds = %6307, %5339
  %6310 = call i32 @s2n_free(ptr noundef %112)
  call void @llvm.lifetime.end.p0(i64 24, ptr %112) #12
  br label %6311

6311:                                             ; preds = %6309, %5329
  %6312 = call i32 @s2n_free(ptr noundef %110)
  call void @llvm.lifetime.end.p0(i64 24, ptr %110) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #12
  %6313 = load i32, ptr %78, align 4
  switch i32 %6313, label %12564 [
    i32 0, label %6314
    i32 1, label %12562
  ]

6314:                                             ; preds = %6311
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #12
  store ptr null, ptr %139, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #12
  store ptr null, ptr %140, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #12
  store ptr null, ptr %141, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #12
  store ptr null, ptr %142, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #12
  store ptr null, ptr %143, align 8, !tbaa !9
  br label %6315

6315:                                             ; preds = %6314
  %6316 = load i32, ptr @test_count, align 4, !tbaa !5
  %6317 = add nsw i32 %6316, 1
  store i32 %6317, ptr @test_count, align 4, !tbaa !5
  %6318 = call ptr @s2n_config_new()
  store ptr %6318, ptr %139, align 8, !tbaa !9
  %6319 = icmp eq ptr %6318, null
  br i1 %6319, label %6320, label %6373

6320:                                             ; preds = %6315
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

6322:                                             ; preds = %6321
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #12
  %6323 = call ptr @__errno_location() #13
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  store i32 %6324, ptr %144, align 4, !tbaa !5
  %6325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6326 = call i32 @s2n_print_stacktrace(ptr noundef %6325)
  %6327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6328 = trunc i8 %6327 to i1
  br i1 %6328, label %6329, label %6351

6329:                                             ; preds = %6322
  %6330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6331 = call i32 @fileno(ptr noundef %6330) #12
  %6332 = call i32 @isatty(i32 noundef %6331) #12
  %6333 = icmp ne i32 %6332, 0
  br i1 %6333, label %6334, label %6351

6334:                                             ; preds = %6329
  %6335 = load i32, ptr %144, align 4, !tbaa !5
  %6336 = call ptr @__errno_location() #13
  store i32 %6335, ptr %6336, align 4, !tbaa !5
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = load i32, ptr @test_count, align 4, !tbaa !5
  %6339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call ptr @s2n_strerror(i32 noundef %6340, ptr noundef @.str.3)
  %6342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call ptr @s2n_strerror_debug(i32 noundef %6343, ptr noundef @.str.3)
  %6345 = call ptr @__errno_location() #13
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = call ptr @strerror(i32 noundef %6346) #12
  %6348 = call ptr @__errno_location() #13
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6337, ptr noundef @.str, i32 noundef %6338, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 396, ptr noundef %6341, ptr noundef %6344, ptr noundef %6347, i32 noundef %6349) #12
  br label %6368

6351:                                             ; preds = %6329, %6322
  %6352 = load i32, ptr %144, align 4, !tbaa !5
  %6353 = call ptr @__errno_location() #13
  store i32 %6352, ptr %6353, align 4, !tbaa !5
  %6354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6355 = load i32, ptr @test_count, align 4, !tbaa !5
  %6356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = call ptr @s2n_strerror(i32 noundef %6357, ptr noundef @.str.3)
  %6359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  %6361 = call ptr @s2n_strerror_debug(i32 noundef %6360, ptr noundef @.str.3)
  %6362 = call ptr @__errno_location() #13
  %6363 = load i32, ptr %6362, align 4, !tbaa !5
  %6364 = call ptr @strerror(i32 noundef %6363) #12
  %6365 = call ptr @__errno_location() #13
  %6366 = load i32, ptr %6365, align 4, !tbaa !5
  %6367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6354, ptr noundef @.str.4, i32 noundef %6355, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 396, ptr noundef %6358, ptr noundef %6361, ptr noundef %6364, i32 noundef %6366) #12
  br label %6368

6368:                                             ; preds = %6351, %6334
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #12
  br label %6369

6369:                                             ; preds = %6368
  br label %6370

6370:                                             ; preds = %6369
  call void @exit(i32 noundef 1) #14
  unreachable

6371:                                             ; No predecessors!
  br label %6372

6372:                                             ; preds = %6371
  br label %6373

6373:                                             ; preds = %6372, %6315
  br label %6374

6374:                                             ; preds = %6373
  br label %6375

6375:                                             ; preds = %6374
  br label %6376

6376:                                             ; preds = %6375
  %6377 = load i32, ptr @test_count, align 4, !tbaa !5
  %6378 = add nsw i32 %6377, 1
  store i32 %6378, ptr @test_count, align 4, !tbaa !5
  %6379 = call ptr @s2n_config_new()
  store ptr %6379, ptr %140, align 8, !tbaa !9
  %6380 = icmp eq ptr %6379, null
  br i1 %6380, label %6381, label %6434

6381:                                             ; preds = %6376
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

6383:                                             ; preds = %6382
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #12
  %6384 = call ptr @__errno_location() #13
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  store i32 %6385, ptr %145, align 4, !tbaa !5
  %6386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6387 = call i32 @s2n_print_stacktrace(ptr noundef %6386)
  %6388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6389 = trunc i8 %6388 to i1
  br i1 %6389, label %6390, label %6412

6390:                                             ; preds = %6383
  %6391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6392 = call i32 @fileno(ptr noundef %6391) #12
  %6393 = call i32 @isatty(i32 noundef %6392) #12
  %6394 = icmp ne i32 %6393, 0
  br i1 %6394, label %6395, label %6412

6395:                                             ; preds = %6390
  %6396 = load i32, ptr %145, align 4, !tbaa !5
  %6397 = call ptr @__errno_location() #13
  store i32 %6396, ptr %6397, align 4, !tbaa !5
  %6398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6399 = load i32, ptr @test_count, align 4, !tbaa !5
  %6400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6401 = load i32, ptr %6400, align 4, !tbaa !5
  %6402 = call ptr @s2n_strerror(i32 noundef %6401, ptr noundef @.str.3)
  %6403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6404 = load i32, ptr %6403, align 4, !tbaa !5
  %6405 = call ptr @s2n_strerror_debug(i32 noundef %6404, ptr noundef @.str.3)
  %6406 = call ptr @__errno_location() #13
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  %6408 = call ptr @strerror(i32 noundef %6407) #12
  %6409 = call ptr @__errno_location() #13
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6398, ptr noundef @.str, i32 noundef %6399, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 397, ptr noundef %6402, ptr noundef %6405, ptr noundef %6408, i32 noundef %6410) #12
  br label %6429

6412:                                             ; preds = %6390, %6383
  %6413 = load i32, ptr %145, align 4, !tbaa !5
  %6414 = call ptr @__errno_location() #13
  store i32 %6413, ptr %6414, align 4, !tbaa !5
  %6415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6416 = load i32, ptr @test_count, align 4, !tbaa !5
  %6417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6418 = load i32, ptr %6417, align 4, !tbaa !5
  %6419 = call ptr @s2n_strerror(i32 noundef %6418, ptr noundef @.str.3)
  %6420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  %6422 = call ptr @s2n_strerror_debug(i32 noundef %6421, ptr noundef @.str.3)
  %6423 = call ptr @__errno_location() #13
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  %6425 = call ptr @strerror(i32 noundef %6424) #12
  %6426 = call ptr @__errno_location() #13
  %6427 = load i32, ptr %6426, align 4, !tbaa !5
  %6428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6415, ptr noundef @.str.4, i32 noundef %6416, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 397, ptr noundef %6419, ptr noundef %6422, ptr noundef %6425, i32 noundef %6427) #12
  br label %6429

6429:                                             ; preds = %6412, %6395
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #12
  br label %6430

6430:                                             ; preds = %6429
  br label %6431

6431:                                             ; preds = %6430
  call void @exit(i32 noundef 1) #14
  unreachable

6432:                                             ; No predecessors!
  br label %6433

6433:                                             ; preds = %6432
  br label %6434

6434:                                             ; preds = %6433, %6376
  br label %6435

6435:                                             ; preds = %6434
  br label %6436

6436:                                             ; preds = %6435
  br label %6437

6437:                                             ; preds = %6436
  %6438 = load i32, ptr @test_count, align 4, !tbaa !5
  %6439 = add nsw i32 %6438, 1
  store i32 %6439, ptr @test_count, align 4, !tbaa !5
  %6440 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6440, ptr %141, align 8, !tbaa !9
  %6441 = icmp eq ptr %6440, null
  br i1 %6441, label %6442, label %6495

6442:                                             ; preds = %6437
  br label %6443

6443:                                             ; preds = %6442
  br label %6444

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

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

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

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

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

6491:                                             ; preds = %6490
  br label %6492

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

6493:                                             ; No predecessors!
  br label %6494

6494:                                             ; preds = %6493
  br label %6495

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

6496:                                             ; preds = %6495
  br label %6497

6497:                                             ; preds = %6496
  br label %6498

6498:                                             ; preds = %6497
  %6499 = load i32, ptr @test_count, align 4, !tbaa !5
  %6500 = add nsw i32 %6499, 1
  store i32 %6500, ptr @test_count, align 4, !tbaa !5
  %6501 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6501, ptr %142, align 8, !tbaa !9
  %6502 = icmp eq ptr %6501, null
  br i1 %6502, label %6503, label %6556

6503:                                             ; preds = %6498
  br label %6504

6504:                                             ; preds = %6503
  br label %6505

6505:                                             ; preds = %6504
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #12
  %6506 = call ptr @__errno_location() #13
  %6507 = load i32, ptr %6506, align 4, !tbaa !5
  store i32 %6507, ptr %147, align 4, !tbaa !5
  %6508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6509 = call i32 @s2n_print_stacktrace(ptr noundef %6508)
  %6510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6511 = trunc i8 %6510 to i1
  br i1 %6511, label %6512, label %6534

6512:                                             ; preds = %6505
  %6513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6514 = call i32 @fileno(ptr noundef %6513) #12
  %6515 = call i32 @isatty(i32 noundef %6514) #12
  %6516 = icmp ne i32 %6515, 0
  br i1 %6516, label %6517, label %6534

6517:                                             ; preds = %6512
  %6518 = load i32, ptr %147, align 4, !tbaa !5
  %6519 = call ptr @__errno_location() #13
  store i32 %6518, ptr %6519, align 4, !tbaa !5
  %6520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6521 = load i32, ptr @test_count, align 4, !tbaa !5
  %6522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6523 = load i32, ptr %6522, align 4, !tbaa !5
  %6524 = call ptr @s2n_strerror(i32 noundef %6523, ptr noundef @.str.3)
  %6525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6526 = load i32, ptr %6525, align 4, !tbaa !5
  %6527 = call ptr @s2n_strerror_debug(i32 noundef %6526, ptr noundef @.str.3)
  %6528 = call ptr @__errno_location() #13
  %6529 = load i32, ptr %6528, align 4, !tbaa !5
  %6530 = call ptr @strerror(i32 noundef %6529) #12
  %6531 = call ptr @__errno_location() #13
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  %6533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6520, ptr noundef @.str, i32 noundef %6521, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 400, ptr noundef %6524, ptr noundef %6527, ptr noundef %6530, i32 noundef %6532) #12
  br label %6551

6534:                                             ; preds = %6512, %6505
  %6535 = load i32, ptr %147, align 4, !tbaa !5
  %6536 = call ptr @__errno_location() #13
  store i32 %6535, ptr %6536, align 4, !tbaa !5
  %6537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6538 = load i32, ptr @test_count, align 4, !tbaa !5
  %6539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6540 = load i32, ptr %6539, align 4, !tbaa !5
  %6541 = call ptr @s2n_strerror(i32 noundef %6540, ptr noundef @.str.3)
  %6542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6543 = load i32, ptr %6542, align 4, !tbaa !5
  %6544 = call ptr @s2n_strerror_debug(i32 noundef %6543, ptr noundef @.str.3)
  %6545 = call ptr @__errno_location() #13
  %6546 = load i32, ptr %6545, align 4, !tbaa !5
  %6547 = call ptr @strerror(i32 noundef %6546) #12
  %6548 = call ptr @__errno_location() #13
  %6549 = load i32, ptr %6548, align 4, !tbaa !5
  %6550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6537, ptr noundef @.str.4, i32 noundef %6538, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 400, ptr noundef %6541, ptr noundef %6544, ptr noundef %6547, i32 noundef %6549) #12
  br label %6551

6551:                                             ; preds = %6534, %6517
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #12
  br label %6552

6552:                                             ; preds = %6551
  br label %6553

6553:                                             ; preds = %6552
  call void @exit(i32 noundef 1) #14
  unreachable

6554:                                             ; No predecessors!
  br label %6555

6555:                                             ; preds = %6554
  br label %6556

6556:                                             ; preds = %6555, %6498
  br label %6557

6557:                                             ; preds = %6556
  br label %6558

6558:                                             ; preds = %6557
  br label %6559

6559:                                             ; preds = %6558
  %6560 = load i32, ptr @test_count, align 4, !tbaa !5
  %6561 = add nsw i32 %6560, 1
  store i32 %6561, ptr @test_count, align 4, !tbaa !5
  %6562 = load ptr, ptr %140, align 8, !tbaa !9
  %6563 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6562, ptr noundef @.str.17)
  %6564 = icmp eq i32 %6563, -1
  br i1 %6564, label %6565, label %6618

6565:                                             ; preds = %6559
  br label %6566

6566:                                             ; preds = %6565
  br label %6567

6567:                                             ; preds = %6566
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #12
  %6568 = call ptr @__errno_location() #13
  %6569 = load i32, ptr %6568, align 4, !tbaa !5
  store i32 %6569, ptr %148, align 4, !tbaa !5
  %6570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6571 = call i32 @s2n_print_stacktrace(ptr noundef %6570)
  %6572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6573 = trunc i8 %6572 to i1
  br i1 %6573, label %6574, label %6596

6574:                                             ; preds = %6567
  %6575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6576 = call i32 @fileno(ptr noundef %6575) #12
  %6577 = call i32 @isatty(i32 noundef %6576) #12
  %6578 = icmp ne i32 %6577, 0
  br i1 %6578, label %6579, label %6596

6579:                                             ; preds = %6574
  %6580 = load i32, ptr %148, align 4, !tbaa !5
  %6581 = call ptr @__errno_location() #13
  store i32 %6580, ptr %6581, align 4, !tbaa !5
  %6582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6583 = load i32, ptr @test_count, align 4, !tbaa !5
  %6584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6585 = load i32, ptr %6584, align 4, !tbaa !5
  %6586 = call ptr @s2n_strerror(i32 noundef %6585, ptr noundef @.str.3)
  %6587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6588 = load i32, ptr %6587, align 4, !tbaa !5
  %6589 = call ptr @s2n_strerror_debug(i32 noundef %6588, ptr noundef @.str.3)
  %6590 = call ptr @__errno_location() #13
  %6591 = load i32, ptr %6590, align 4, !tbaa !5
  %6592 = call ptr @strerror(i32 noundef %6591) #12
  %6593 = call ptr @__errno_location() #13
  %6594 = load i32, ptr %6593, align 4, !tbaa !5
  %6595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6582, ptr noundef @.str, i32 noundef %6583, ptr noundef @.str.114, ptr noundef @.str.2, i32 noundef 402, ptr noundef %6586, ptr noundef %6589, ptr noundef %6592, i32 noundef %6594) #12
  br label %6613

6596:                                             ; preds = %6574, %6567
  %6597 = load i32, ptr %148, align 4, !tbaa !5
  %6598 = call ptr @__errno_location() #13
  store i32 %6597, ptr %6598, align 4, !tbaa !5
  %6599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6600 = load i32, ptr @test_count, align 4, !tbaa !5
  %6601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call ptr @s2n_strerror(i32 noundef %6602, ptr noundef @.str.3)
  %6604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  %6606 = call ptr @s2n_strerror_debug(i32 noundef %6605, ptr noundef @.str.3)
  %6607 = call ptr @__errno_location() #13
  %6608 = load i32, ptr %6607, align 4, !tbaa !5
  %6609 = call ptr @strerror(i32 noundef %6608) #12
  %6610 = call ptr @__errno_location() #13
  %6611 = load i32, ptr %6610, align 4, !tbaa !5
  %6612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6599, ptr noundef @.str.4, i32 noundef %6600, ptr noundef @.str.114, ptr noundef @.str.2, i32 noundef 402, ptr noundef %6603, ptr noundef %6606, ptr noundef %6609, i32 noundef %6611) #12
  br label %6613

6613:                                             ; preds = %6596, %6579
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #12
  br label %6614

6614:                                             ; preds = %6613
  br label %6615

6615:                                             ; preds = %6614
  call void @exit(i32 noundef 1) #14
  unreachable

6616:                                             ; No predecessors!
  br label %6617

6617:                                             ; preds = %6616
  br label %6618

6618:                                             ; preds = %6617, %6559
  br label %6619

6619:                                             ; preds = %6618
  br label %6620

6620:                                             ; preds = %6619
  br label %6621

6621:                                             ; preds = %6620
  %6622 = load i32, ptr @test_count, align 4, !tbaa !5
  %6623 = add nsw i32 %6622, 1
  store i32 %6623, ptr @test_count, align 4, !tbaa !5
  %6624 = load ptr, ptr %139, align 8, !tbaa !9
  %6625 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6624, ptr noundef @.str.17)
  %6626 = icmp eq i32 %6625, -1
  br i1 %6626, label %6627, label %6680

6627:                                             ; preds = %6621
  br label %6628

6628:                                             ; preds = %6627
  br label %6629

6629:                                             ; preds = %6628
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #12
  %6630 = call ptr @__errno_location() #13
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  store i32 %6631, ptr %149, align 4, !tbaa !5
  %6632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6633 = call i32 @s2n_print_stacktrace(ptr noundef %6632)
  %6634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6635 = trunc i8 %6634 to i1
  br i1 %6635, label %6636, label %6658

6636:                                             ; preds = %6629
  %6637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6638 = call i32 @fileno(ptr noundef %6637) #12
  %6639 = call i32 @isatty(i32 noundef %6638) #12
  %6640 = icmp ne i32 %6639, 0
  br i1 %6640, label %6641, label %6658

6641:                                             ; preds = %6636
  %6642 = load i32, ptr %149, align 4, !tbaa !5
  %6643 = call ptr @__errno_location() #13
  store i32 %6642, ptr %6643, align 4, !tbaa !5
  %6644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6645 = load i32, ptr @test_count, align 4, !tbaa !5
  %6646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6647 = load i32, ptr %6646, align 4, !tbaa !5
  %6648 = call ptr @s2n_strerror(i32 noundef %6647, ptr noundef @.str.3)
  %6649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6650 = load i32, ptr %6649, align 4, !tbaa !5
  %6651 = call ptr @s2n_strerror_debug(i32 noundef %6650, ptr noundef @.str.3)
  %6652 = call ptr @__errno_location() #13
  %6653 = load i32, ptr %6652, align 4, !tbaa !5
  %6654 = call ptr @strerror(i32 noundef %6653) #12
  %6655 = call ptr @__errno_location() #13
  %6656 = load i32, ptr %6655, align 4, !tbaa !5
  %6657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6644, ptr noundef @.str, i32 noundef %6645, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 403, ptr noundef %6648, ptr noundef %6651, ptr noundef %6654, i32 noundef %6656) #12
  br label %6675

6658:                                             ; preds = %6636, %6629
  %6659 = load i32, ptr %149, align 4, !tbaa !5
  %6660 = call ptr @__errno_location() #13
  store i32 %6659, ptr %6660, align 4, !tbaa !5
  %6661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6662 = load i32, ptr @test_count, align 4, !tbaa !5
  %6663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6664 = load i32, ptr %6663, align 4, !tbaa !5
  %6665 = call ptr @s2n_strerror(i32 noundef %6664, ptr noundef @.str.3)
  %6666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6667 = load i32, ptr %6666, align 4, !tbaa !5
  %6668 = call ptr @s2n_strerror_debug(i32 noundef %6667, ptr noundef @.str.3)
  %6669 = call ptr @__errno_location() #13
  %6670 = load i32, ptr %6669, align 4, !tbaa !5
  %6671 = call ptr @strerror(i32 noundef %6670) #12
  %6672 = call ptr @__errno_location() #13
  %6673 = load i32, ptr %6672, align 4, !tbaa !5
  %6674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6661, ptr noundef @.str.4, i32 noundef %6662, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 403, ptr noundef %6665, ptr noundef %6668, ptr noundef %6671, i32 noundef %6673) #12
  br label %6675

6675:                                             ; preds = %6658, %6641
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #12
  br label %6676

6676:                                             ; preds = %6675
  br label %6677

6677:                                             ; preds = %6676
  call void @exit(i32 noundef 1) #14
  unreachable

6678:                                             ; No predecessors!
  br label %6679

6679:                                             ; preds = %6678
  br label %6680

6680:                                             ; preds = %6679, %6621
  br label %6681

6681:                                             ; preds = %6680
  br label %6682

6682:                                             ; preds = %6681
  br label %6683

6683:                                             ; preds = %6682
  %6684 = load i32, ptr @test_count, align 4, !tbaa !5
  %6685 = add nsw i32 %6684, 1
  store i32 %6685, ptr @test_count, align 4, !tbaa !5
  %6686 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %143, ptr noundef @.str.10, ptr noundef @.str.11)
  %6687 = icmp eq i32 %6686, -1
  br i1 %6687, label %6688, label %6741

6688:                                             ; preds = %6683
  br label %6689

6689:                                             ; preds = %6688
  br label %6690

6690:                                             ; preds = %6689
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #12
  %6691 = call ptr @__errno_location() #13
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  store i32 %6692, ptr %150, align 4, !tbaa !5
  %6693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6694 = call i32 @s2n_print_stacktrace(ptr noundef %6693)
  %6695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6696 = trunc i8 %6695 to i1
  br i1 %6696, label %6697, label %6719

6697:                                             ; preds = %6690
  %6698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6699 = call i32 @fileno(ptr noundef %6698) #12
  %6700 = call i32 @isatty(i32 noundef %6699) #12
  %6701 = icmp ne i32 %6700, 0
  br i1 %6701, label %6702, label %6719

6702:                                             ; preds = %6697
  %6703 = load i32, ptr %150, align 4, !tbaa !5
  %6704 = call ptr @__errno_location() #13
  store i32 %6703, ptr %6704, align 4, !tbaa !5
  %6705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6706 = load i32, ptr @test_count, align 4, !tbaa !5
  %6707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call ptr @s2n_strerror(i32 noundef %6708, ptr noundef @.str.3)
  %6710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror_debug(i32 noundef %6711, ptr noundef @.str.3)
  %6713 = call ptr @__errno_location() #13
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @strerror(i32 noundef %6714) #12
  %6716 = call ptr @__errno_location() #13
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6705, ptr noundef @.str, i32 noundef %6706, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 406, ptr noundef %6709, ptr noundef %6712, ptr noundef %6715, i32 noundef %6717) #12
  br label %6736

6719:                                             ; preds = %6697, %6690
  %6720 = load i32, ptr %150, align 4, !tbaa !5
  %6721 = call ptr @__errno_location() #13
  store i32 %6720, ptr %6721, align 4, !tbaa !5
  %6722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6723 = load i32, ptr @test_count, align 4, !tbaa !5
  %6724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6725 = load i32, ptr %6724, align 4, !tbaa !5
  %6726 = call ptr @s2n_strerror(i32 noundef %6725, ptr noundef @.str.3)
  %6727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6728 = load i32, ptr %6727, align 4, !tbaa !5
  %6729 = call ptr @s2n_strerror_debug(i32 noundef %6728, ptr noundef @.str.3)
  %6730 = call ptr @__errno_location() #13
  %6731 = load i32, ptr %6730, align 4, !tbaa !5
  %6732 = call ptr @strerror(i32 noundef %6731) #12
  %6733 = call ptr @__errno_location() #13
  %6734 = load i32, ptr %6733, align 4, !tbaa !5
  %6735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6722, ptr noundef @.str.4, i32 noundef %6723, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 406, ptr noundef %6726, ptr noundef %6729, ptr noundef %6732, i32 noundef %6734) #12
  br label %6736

6736:                                             ; preds = %6719, %6702
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #12
  br label %6737

6737:                                             ; preds = %6736
  br label %6738

6738:                                             ; preds = %6737
  call void @exit(i32 noundef 1) #14
  unreachable

6739:                                             ; No predecessors!
  br label %6740

6740:                                             ; preds = %6739
  br label %6741

6741:                                             ; preds = %6740, %6683
  br label %6742

6742:                                             ; preds = %6741
  br label %6743

6743:                                             ; preds = %6742
  br label %6744

6744:                                             ; preds = %6743
  %6745 = load i32, ptr @test_count, align 4, !tbaa !5
  %6746 = add nsw i32 %6745, 1
  store i32 %6746, ptr @test_count, align 4, !tbaa !5
  %6747 = load ptr, ptr %140, align 8, !tbaa !9
  %6748 = load ptr, ptr %143, align 8, !tbaa !9
  %6749 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6747, ptr noundef %6748)
  %6750 = icmp eq i32 %6749, -1
  br i1 %6750, label %6751, label %6804

6751:                                             ; preds = %6744
  br label %6752

6752:                                             ; preds = %6751
  br label %6753

6753:                                             ; preds = %6752
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #12
  %6754 = call ptr @__errno_location() #13
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  store i32 %6755, ptr %151, align 4, !tbaa !5
  %6756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6757 = call i32 @s2n_print_stacktrace(ptr noundef %6756)
  %6758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6759 = trunc i8 %6758 to i1
  br i1 %6759, label %6760, label %6782

6760:                                             ; preds = %6753
  %6761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6762 = call i32 @fileno(ptr noundef %6761) #12
  %6763 = call i32 @isatty(i32 noundef %6762) #12
  %6764 = icmp ne i32 %6763, 0
  br i1 %6764, label %6765, label %6782

6765:                                             ; preds = %6760
  %6766 = load i32, ptr %151, align 4, !tbaa !5
  %6767 = call ptr @__errno_location() #13
  store i32 %6766, ptr %6767, align 4, !tbaa !5
  %6768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6769 = load i32, ptr @test_count, align 4, !tbaa !5
  %6770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6771 = load i32, ptr %6770, align 4, !tbaa !5
  %6772 = call ptr @s2n_strerror(i32 noundef %6771, ptr noundef @.str.3)
  %6773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6774 = load i32, ptr %6773, align 4, !tbaa !5
  %6775 = call ptr @s2n_strerror_debug(i32 noundef %6774, ptr noundef @.str.3)
  %6776 = call ptr @__errno_location() #13
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  %6778 = call ptr @strerror(i32 noundef %6777) #12
  %6779 = call ptr @__errno_location() #13
  %6780 = load i32, ptr %6779, align 4, !tbaa !5
  %6781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6768, ptr noundef @.str, i32 noundef %6769, ptr noundef @.str.116, ptr noundef @.str.2, i32 noundef 407, ptr noundef %6772, ptr noundef %6775, ptr noundef %6778, i32 noundef %6780) #12
  br label %6799

6782:                                             ; preds = %6760, %6753
  %6783 = load i32, ptr %151, align 4, !tbaa !5
  %6784 = call ptr @__errno_location() #13
  store i32 %6783, ptr %6784, align 4, !tbaa !5
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = load i32, ptr @test_count, align 4, !tbaa !5
  %6787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6788 = load i32, ptr %6787, align 4, !tbaa !5
  %6789 = call ptr @s2n_strerror(i32 noundef %6788, ptr noundef @.str.3)
  %6790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6791 = load i32, ptr %6790, align 4, !tbaa !5
  %6792 = call ptr @s2n_strerror_debug(i32 noundef %6791, ptr noundef @.str.3)
  %6793 = call ptr @__errno_location() #13
  %6794 = load i32, ptr %6793, align 4, !tbaa !5
  %6795 = call ptr @strerror(i32 noundef %6794) #12
  %6796 = call ptr @__errno_location() #13
  %6797 = load i32, ptr %6796, align 4, !tbaa !5
  %6798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6785, ptr noundef @.str.4, i32 noundef %6786, ptr noundef @.str.116, ptr noundef @.str.2, i32 noundef 407, ptr noundef %6789, ptr noundef %6792, ptr noundef %6795, i32 noundef %6797) #12
  br label %6799

6799:                                             ; preds = %6782, %6765
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #12
  br label %6800

6800:                                             ; preds = %6799
  br label %6801

6801:                                             ; preds = %6800
  call void @exit(i32 noundef 1) #14
  unreachable

6802:                                             ; No predecessors!
  br label %6803

6803:                                             ; preds = %6802
  br label %6804

6804:                                             ; preds = %6803, %6744
  br label %6805

6805:                                             ; preds = %6804
  br label %6806

6806:                                             ; preds = %6805
  br label %6807

6807:                                             ; preds = %6806
  %6808 = load i32, ptr @test_count, align 4, !tbaa !5
  %6809 = add nsw i32 %6808, 1
  store i32 %6809, ptr @test_count, align 4, !tbaa !5
  %6810 = load ptr, ptr %139, align 8, !tbaa !9
  %6811 = load ptr, ptr %143, align 8, !tbaa !9
  %6812 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6810, ptr noundef %6811)
  %6813 = icmp eq i32 %6812, -1
  br i1 %6813, label %6814, label %6867

6814:                                             ; preds = %6807
  br label %6815

6815:                                             ; preds = %6814
  br label %6816

6816:                                             ; preds = %6815
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #12
  %6817 = call ptr @__errno_location() #13
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  store i32 %6818, ptr %152, align 4, !tbaa !5
  %6819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6820 = call i32 @s2n_print_stacktrace(ptr noundef %6819)
  %6821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6822 = trunc i8 %6821 to i1
  br i1 %6822, label %6823, label %6845

6823:                                             ; preds = %6816
  %6824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6825 = call i32 @fileno(ptr noundef %6824) #12
  %6826 = call i32 @isatty(i32 noundef %6825) #12
  %6827 = icmp ne i32 %6826, 0
  br i1 %6827, label %6828, label %6845

6828:                                             ; preds = %6823
  %6829 = load i32, ptr %152, align 4, !tbaa !5
  %6830 = call ptr @__errno_location() #13
  store i32 %6829, ptr %6830, align 4, !tbaa !5
  %6831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6832 = load i32, ptr @test_count, align 4, !tbaa !5
  %6833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call ptr @s2n_strerror(i32 noundef %6834, ptr noundef @.str.3)
  %6836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6837 = load i32, ptr %6836, align 4, !tbaa !5
  %6838 = call ptr @s2n_strerror_debug(i32 noundef %6837, ptr noundef @.str.3)
  %6839 = call ptr @__errno_location() #13
  %6840 = load i32, ptr %6839, align 4, !tbaa !5
  %6841 = call ptr @strerror(i32 noundef %6840) #12
  %6842 = call ptr @__errno_location() #13
  %6843 = load i32, ptr %6842, align 4, !tbaa !5
  %6844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6831, ptr noundef @.str, i32 noundef %6832, ptr noundef @.str.117, ptr noundef @.str.2, i32 noundef 408, ptr noundef %6835, ptr noundef %6838, ptr noundef %6841, i32 noundef %6843) #12
  br label %6862

6845:                                             ; preds = %6823, %6816
  %6846 = load i32, ptr %152, align 4, !tbaa !5
  %6847 = call ptr @__errno_location() #13
  store i32 %6846, ptr %6847, align 4, !tbaa !5
  %6848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6849 = load i32, ptr @test_count, align 4, !tbaa !5
  %6850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6851 = load i32, ptr %6850, align 4, !tbaa !5
  %6852 = call ptr @s2n_strerror(i32 noundef %6851, ptr noundef @.str.3)
  %6853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  %6855 = call ptr @s2n_strerror_debug(i32 noundef %6854, ptr noundef @.str.3)
  %6856 = call ptr @__errno_location() #13
  %6857 = load i32, ptr %6856, align 4, !tbaa !5
  %6858 = call ptr @strerror(i32 noundef %6857) #12
  %6859 = call ptr @__errno_location() #13
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  %6861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6848, ptr noundef @.str.4, i32 noundef %6849, ptr noundef @.str.117, ptr noundef @.str.2, i32 noundef 408, ptr noundef %6852, ptr noundef %6855, ptr noundef %6858, i32 noundef %6860) #12
  br label %6862

6862:                                             ; preds = %6845, %6828
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #12
  br label %6863

6863:                                             ; preds = %6862
  br label %6864

6864:                                             ; preds = %6863
  call void @exit(i32 noundef 1) #14
  unreachable

6865:                                             ; No predecessors!
  br label %6866

6866:                                             ; preds = %6865
  br label %6867

6867:                                             ; preds = %6866, %6807
  br label %6868

6868:                                             ; preds = %6867
  br label %6869

6869:                                             ; preds = %6868
  br label %6870

6870:                                             ; preds = %6869
  %6871 = load i32, ptr @test_count, align 4, !tbaa !5
  %6872 = add nsw i32 %6871, 1
  store i32 %6872, ptr @test_count, align 4, !tbaa !5
  %6873 = load ptr, ptr %141, align 8, !tbaa !9
  %6874 = load ptr, ptr %139, align 8, !tbaa !9
  %6875 = call i32 @s2n_connection_set_config(ptr noundef %6873, ptr noundef %6874)
  %6876 = icmp eq i32 %6875, -1
  br i1 %6876, label %6877, label %6930

6877:                                             ; preds = %6870
  br label %6878

6878:                                             ; preds = %6877
  br label %6879

6879:                                             ; preds = %6878
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #12
  %6880 = call ptr @__errno_location() #13
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  store i32 %6881, ptr %153, align 4, !tbaa !5
  %6882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6883 = call i32 @s2n_print_stacktrace(ptr noundef %6882)
  %6884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6885 = trunc i8 %6884 to i1
  br i1 %6885, label %6886, label %6908

6886:                                             ; preds = %6879
  %6887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6888 = call i32 @fileno(ptr noundef %6887) #12
  %6889 = call i32 @isatty(i32 noundef %6888) #12
  %6890 = icmp ne i32 %6889, 0
  br i1 %6890, label %6891, label %6908

6891:                                             ; preds = %6886
  %6892 = load i32, ptr %153, align 4, !tbaa !5
  %6893 = call ptr @__errno_location() #13
  store i32 %6892, ptr %6893, align 4, !tbaa !5
  %6894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6895 = load i32, ptr @test_count, align 4, !tbaa !5
  %6896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6897 = load i32, ptr %6896, align 4, !tbaa !5
  %6898 = call ptr @s2n_strerror(i32 noundef %6897, ptr noundef @.str.3)
  %6899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6900 = load i32, ptr %6899, align 4, !tbaa !5
  %6901 = call ptr @s2n_strerror_debug(i32 noundef %6900, ptr noundef @.str.3)
  %6902 = call ptr @__errno_location() #13
  %6903 = load i32, ptr %6902, align 4, !tbaa !5
  %6904 = call ptr @strerror(i32 noundef %6903) #12
  %6905 = call ptr @__errno_location() #13
  %6906 = load i32, ptr %6905, align 4, !tbaa !5
  %6907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6894, ptr noundef @.str, i32 noundef %6895, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 410, ptr noundef %6898, ptr noundef %6901, ptr noundef %6904, i32 noundef %6906) #12
  br label %6925

6908:                                             ; preds = %6886, %6879
  %6909 = load i32, ptr %153, align 4, !tbaa !5
  %6910 = call ptr @__errno_location() #13
  store i32 %6909, ptr %6910, align 4, !tbaa !5
  %6911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6912 = load i32, ptr @test_count, align 4, !tbaa !5
  %6913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6914 = load i32, ptr %6913, align 4, !tbaa !5
  %6915 = call ptr @s2n_strerror(i32 noundef %6914, ptr noundef @.str.3)
  %6916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6917 = load i32, ptr %6916, align 4, !tbaa !5
  %6918 = call ptr @s2n_strerror_debug(i32 noundef %6917, ptr noundef @.str.3)
  %6919 = call ptr @__errno_location() #13
  %6920 = load i32, ptr %6919, align 4, !tbaa !5
  %6921 = call ptr @strerror(i32 noundef %6920) #12
  %6922 = call ptr @__errno_location() #13
  %6923 = load i32, ptr %6922, align 4, !tbaa !5
  %6924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6911, ptr noundef @.str.4, i32 noundef %6912, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 410, ptr noundef %6915, ptr noundef %6918, ptr noundef %6921, i32 noundef %6923) #12
  br label %6925

6925:                                             ; preds = %6908, %6891
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #12
  br label %6926

6926:                                             ; preds = %6925
  br label %6927

6927:                                             ; preds = %6926
  call void @exit(i32 noundef 1) #14
  unreachable

6928:                                             ; No predecessors!
  br label %6929

6929:                                             ; preds = %6928
  br label %6930

6930:                                             ; preds = %6929, %6870
  br label %6931

6931:                                             ; preds = %6930
  br label %6932

6932:                                             ; preds = %6931
  br label %6933

6933:                                             ; preds = %6932
  %6934 = load i32, ptr @test_count, align 4, !tbaa !5
  %6935 = add nsw i32 %6934, 1
  store i32 %6935, ptr @test_count, align 4, !tbaa !5
  %6936 = load ptr, ptr %142, align 8, !tbaa !9
  %6937 = load ptr, ptr %140, align 8, !tbaa !9
  %6938 = call i32 @s2n_connection_set_config(ptr noundef %6936, ptr noundef %6937)
  %6939 = icmp eq i32 %6938, -1
  br i1 %6939, label %6940, label %6993

6940:                                             ; preds = %6933
  br label %6941

6941:                                             ; preds = %6940
  br label %6942

6942:                                             ; preds = %6941
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #12
  %6943 = call ptr @__errno_location() #13
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  store i32 %6944, ptr %154, align 4, !tbaa !5
  %6945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6946 = call i32 @s2n_print_stacktrace(ptr noundef %6945)
  %6947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6948 = trunc i8 %6947 to i1
  br i1 %6948, label %6949, label %6971

6949:                                             ; preds = %6942
  %6950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6951 = call i32 @fileno(ptr noundef %6950) #12
  %6952 = call i32 @isatty(i32 noundef %6951) #12
  %6953 = icmp ne i32 %6952, 0
  br i1 %6953, label %6954, label %6971

6954:                                             ; preds = %6949
  %6955 = load i32, ptr %154, align 4, !tbaa !5
  %6956 = call ptr @__errno_location() #13
  store i32 %6955, ptr %6956, align 4, !tbaa !5
  %6957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6958 = load i32, ptr @test_count, align 4, !tbaa !5
  %6959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @s2n_strerror(i32 noundef %6960, ptr noundef @.str.3)
  %6962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call ptr @s2n_strerror_debug(i32 noundef %6963, ptr noundef @.str.3)
  %6965 = call ptr @__errno_location() #13
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call ptr @strerror(i32 noundef %6966) #12
  %6968 = call ptr @__errno_location() #13
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6957, ptr noundef @.str, i32 noundef %6958, ptr noundef @.str.118, ptr noundef @.str.2, i32 noundef 411, ptr noundef %6961, ptr noundef %6964, ptr noundef %6967, i32 noundef %6969) #12
  br label %6988

6971:                                             ; preds = %6949, %6942
  %6972 = load i32, ptr %154, align 4, !tbaa !5
  %6973 = call ptr @__errno_location() #13
  store i32 %6972, ptr %6973, align 4, !tbaa !5
  %6974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6975 = load i32, ptr @test_count, align 4, !tbaa !5
  %6976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6977 = load i32, ptr %6976, align 4, !tbaa !5
  %6978 = call ptr @s2n_strerror(i32 noundef %6977, ptr noundef @.str.3)
  %6979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  %6981 = call ptr @s2n_strerror_debug(i32 noundef %6980, ptr noundef @.str.3)
  %6982 = call ptr @__errno_location() #13
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  %6984 = call ptr @strerror(i32 noundef %6983) #12
  %6985 = call ptr @__errno_location() #13
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6974, ptr noundef @.str.4, i32 noundef %6975, ptr noundef @.str.118, ptr noundef @.str.2, i32 noundef 411, ptr noundef %6978, ptr noundef %6981, ptr noundef %6984, i32 noundef %6986) #12
  br label %6988

6988:                                             ; preds = %6971, %6954
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #12
  br label %6989

6989:                                             ; preds = %6988
  br label %6990

6990:                                             ; preds = %6989
  call void @exit(i32 noundef 1) #14
  unreachable

6991:                                             ; No predecessors!
  br label %6992

6992:                                             ; preds = %6991
  br label %6993

6993:                                             ; preds = %6992, %6933
  br label %6994

6994:                                             ; preds = %6993
  br label %6995

6995:                                             ; preds = %6994
  call void @llvm.lifetime.start.p0(i64 12, ptr %155) #12
  call void @llvm.memset.p0.i64(ptr align 4 %155, i8 0, i64 12, i1 false)
  br label %6996

6996:                                             ; preds = %6995
  %6997 = load i32, ptr @test_count, align 4, !tbaa !5
  %6998 = add nsw i32 %6997, 1
  store i32 %6998, ptr @test_count, align 4, !tbaa !5
  %6999 = load ptr, ptr %139, align 8, !tbaa !9
  %7000 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %6999, ptr noundef @client_hello_detect_duplicate_calls, ptr noundef %155)
  %7001 = icmp eq i32 %7000, -1
  br i1 %7001, label %7002, label %7055

7002:                                             ; preds = %6996
  br label %7003

7003:                                             ; preds = %7002
  br label %7004

7004:                                             ; preds = %7003
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #12
  %7005 = call ptr @__errno_location() #13
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  store i32 %7006, ptr %156, align 4, !tbaa !5
  %7007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7008 = call i32 @s2n_print_stacktrace(ptr noundef %7007)
  %7009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7010 = trunc i8 %7009 to i1
  br i1 %7010, label %7011, label %7033

7011:                                             ; preds = %7004
  %7012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7013 = call i32 @fileno(ptr noundef %7012) #12
  %7014 = call i32 @isatty(i32 noundef %7013) #12
  %7015 = icmp ne i32 %7014, 0
  br i1 %7015, label %7016, label %7033

7016:                                             ; preds = %7011
  %7017 = load i32, ptr %156, align 4, !tbaa !5
  %7018 = call ptr @__errno_location() #13
  store i32 %7017, ptr %7018, align 4, !tbaa !5
  %7019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7020 = load i32, ptr @test_count, align 4, !tbaa !5
  %7021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call ptr @s2n_strerror(i32 noundef %7022, ptr noundef @.str.3)
  %7024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call ptr @s2n_strerror_debug(i32 noundef %7025, ptr noundef @.str.3)
  %7027 = call ptr @__errno_location() #13
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call ptr @strerror(i32 noundef %7028) #12
  %7030 = call ptr @__errno_location() #13
  %7031 = load i32, ptr %7030, align 4, !tbaa !5
  %7032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7019, ptr noundef @.str, i32 noundef %7020, ptr noundef @.str.119, ptr noundef @.str.2, i32 noundef 413, ptr noundef %7023, ptr noundef %7026, ptr noundef %7029, i32 noundef %7031) #12
  br label %7050

7033:                                             ; preds = %7011, %7004
  %7034 = load i32, ptr %156, align 4, !tbaa !5
  %7035 = call ptr @__errno_location() #13
  store i32 %7034, ptr %7035, align 4, !tbaa !5
  %7036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7037 = load i32, ptr @test_count, align 4, !tbaa !5
  %7038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7039 = load i32, ptr %7038, align 4, !tbaa !5
  %7040 = call ptr @s2n_strerror(i32 noundef %7039, ptr noundef @.str.3)
  %7041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7042 = load i32, ptr %7041, align 4, !tbaa !5
  %7043 = call ptr @s2n_strerror_debug(i32 noundef %7042, ptr noundef @.str.3)
  %7044 = call ptr @__errno_location() #13
  %7045 = load i32, ptr %7044, align 4, !tbaa !5
  %7046 = call ptr @strerror(i32 noundef %7045) #12
  %7047 = call ptr @__errno_location() #13
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  %7049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7036, ptr noundef @.str.4, i32 noundef %7037, ptr noundef @.str.119, ptr noundef @.str.2, i32 noundef 413, ptr noundef %7040, ptr noundef %7043, ptr noundef %7046, i32 noundef %7048) #12
  br label %7050

7050:                                             ; preds = %7033, %7016
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #12
  br label %7051

7051:                                             ; preds = %7050
  br label %7052

7052:                                             ; preds = %7051
  call void @exit(i32 noundef 1) #14
  unreachable

7053:                                             ; No predecessors!
  br label %7054

7054:                                             ; preds = %7053
  br label %7055

7055:                                             ; preds = %7054, %6996
  br label %7056

7056:                                             ; preds = %7055
  br label %7057

7057:                                             ; preds = %7056
  br label %7058

7058:                                             ; preds = %7057
  %7059 = load i32, ptr @test_count, align 4, !tbaa !5
  %7060 = add nsw i32 %7059, 1
  store i32 %7060, ptr @test_count, align 4, !tbaa !5
  %7061 = load ptr, ptr %141, align 8, !tbaa !9
  %7062 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %7061, i8 noundef zeroext 34)
  %7063 = icmp eq i32 %7062, -1
  br i1 %7063, label %7064, label %7117

7064:                                             ; preds = %7058
  br label %7065

7065:                                             ; preds = %7064
  br label %7066

7066:                                             ; preds = %7065
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #12
  %7067 = call ptr @__errno_location() #13
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  store i32 %7068, ptr %157, align 4, !tbaa !5
  %7069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7070 = call i32 @s2n_print_stacktrace(ptr noundef %7069)
  %7071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7072 = trunc i8 %7071 to i1
  br i1 %7072, label %7073, label %7095

7073:                                             ; preds = %7066
  %7074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7075 = call i32 @fileno(ptr noundef %7074) #12
  %7076 = call i32 @isatty(i32 noundef %7075) #12
  %7077 = icmp ne i32 %7076, 0
  br i1 %7077, label %7078, label %7095

7078:                                             ; preds = %7073
  %7079 = load i32, ptr %157, align 4, !tbaa !5
  %7080 = call ptr @__errno_location() #13
  store i32 %7079, ptr %7080, align 4, !tbaa !5
  %7081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7082 = load i32, ptr @test_count, align 4, !tbaa !5
  %7083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7084 = load i32, ptr %7083, align 4, !tbaa !5
  %7085 = call ptr @s2n_strerror(i32 noundef %7084, ptr noundef @.str.3)
  %7086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7087 = load i32, ptr %7086, align 4, !tbaa !5
  %7088 = call ptr @s2n_strerror_debug(i32 noundef %7087, ptr noundef @.str.3)
  %7089 = call ptr @__errno_location() #13
  %7090 = load i32, ptr %7089, align 4, !tbaa !5
  %7091 = call ptr @strerror(i32 noundef %7090) #12
  %7092 = call ptr @__errno_location() #13
  %7093 = load i32, ptr %7092, align 4, !tbaa !5
  %7094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7081, ptr noundef @.str, i32 noundef %7082, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 415, ptr noundef %7085, ptr noundef %7088, ptr noundef %7091, i32 noundef %7093) #12
  br label %7112

7095:                                             ; preds = %7073, %7066
  %7096 = load i32, ptr %157, align 4, !tbaa !5
  %7097 = call ptr @__errno_location() #13
  store i32 %7096, ptr %7097, align 4, !tbaa !5
  %7098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7099 = load i32, ptr @test_count, align 4, !tbaa !5
  %7100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7101 = load i32, ptr %7100, align 4, !tbaa !5
  %7102 = call ptr @s2n_strerror(i32 noundef %7101, ptr noundef @.str.3)
  %7103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7104 = load i32, ptr %7103, align 4, !tbaa !5
  %7105 = call ptr @s2n_strerror_debug(i32 noundef %7104, ptr noundef @.str.3)
  %7106 = call ptr @__errno_location() #13
  %7107 = load i32, ptr %7106, align 4, !tbaa !5
  %7108 = call ptr @strerror(i32 noundef %7107) #12
  %7109 = call ptr @__errno_location() #13
  %7110 = load i32, ptr %7109, align 4, !tbaa !5
  %7111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7098, ptr noundef @.str.4, i32 noundef %7099, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 415, ptr noundef %7102, ptr noundef %7105, ptr noundef %7108, i32 noundef %7110) #12
  br label %7112

7112:                                             ; preds = %7095, %7078
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #12
  br label %7113

7113:                                             ; preds = %7112
  br label %7114

7114:                                             ; preds = %7113
  call void @exit(i32 noundef 1) #14
  unreachable

7115:                                             ; No predecessors!
  br label %7116

7116:                                             ; preds = %7115
  br label %7117

7117:                                             ; preds = %7116, %7058
  br label %7118

7118:                                             ; preds = %7117
  br label %7119

7119:                                             ; preds = %7118
  br label %7120

7120:                                             ; preds = %7119
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = add nsw i32 %7121, 1
  store i32 %7122, ptr @test_count, align 4, !tbaa !5
  %7123 = load ptr, ptr %142, align 8, !tbaa !9
  %7124 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %7123, i8 noundef zeroext 34)
  %7125 = icmp eq i32 %7124, -1
  br i1 %7125, label %7126, label %7179

7126:                                             ; preds = %7120
  br label %7127

7127:                                             ; preds = %7126
  br label %7128

7128:                                             ; preds = %7127
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #12
  %7129 = call ptr @__errno_location() #13
  %7130 = load i32, ptr %7129, align 4, !tbaa !5
  store i32 %7130, ptr %158, align 4, !tbaa !5
  %7131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7132 = call i32 @s2n_print_stacktrace(ptr noundef %7131)
  %7133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7134 = trunc i8 %7133 to i1
  br i1 %7134, label %7135, label %7157

7135:                                             ; preds = %7128
  %7136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7137 = call i32 @fileno(ptr noundef %7136) #12
  %7138 = call i32 @isatty(i32 noundef %7137) #12
  %7139 = icmp ne i32 %7138, 0
  br i1 %7139, label %7140, label %7157

7140:                                             ; preds = %7135
  %7141 = load i32, ptr %158, align 4, !tbaa !5
  %7142 = call ptr @__errno_location() #13
  store i32 %7141, ptr %7142, align 4, !tbaa !5
  %7143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7144 = load i32, ptr @test_count, align 4, !tbaa !5
  %7145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @s2n_strerror(i32 noundef %7146, ptr noundef @.str.3)
  %7148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call ptr @s2n_strerror_debug(i32 noundef %7149, ptr noundef @.str.3)
  %7151 = call ptr @__errno_location() #13
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call ptr @strerror(i32 noundef %7152) #12
  %7154 = call ptr @__errno_location() #13
  %7155 = load i32, ptr %7154, align 4, !tbaa !5
  %7156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7143, ptr noundef @.str, i32 noundef %7144, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 416, ptr noundef %7147, ptr noundef %7150, ptr noundef %7153, i32 noundef %7155) #12
  br label %7174

7157:                                             ; preds = %7135, %7128
  %7158 = load i32, ptr %158, align 4, !tbaa !5
  %7159 = call ptr @__errno_location() #13
  store i32 %7158, ptr %7159, align 4, !tbaa !5
  %7160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7161 = load i32, ptr @test_count, align 4, !tbaa !5
  %7162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7163 = load i32, ptr %7162, align 4, !tbaa !5
  %7164 = call ptr @s2n_strerror(i32 noundef %7163, ptr noundef @.str.3)
  %7165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7166 = load i32, ptr %7165, align 4, !tbaa !5
  %7167 = call ptr @s2n_strerror_debug(i32 noundef %7166, ptr noundef @.str.3)
  %7168 = call ptr @__errno_location() #13
  %7169 = load i32, ptr %7168, align 4, !tbaa !5
  %7170 = call ptr @strerror(i32 noundef %7169) #12
  %7171 = call ptr @__errno_location() #13
  %7172 = load i32, ptr %7171, align 4, !tbaa !5
  %7173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7160, ptr noundef @.str.4, i32 noundef %7161, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 416, ptr noundef %7164, ptr noundef %7167, ptr noundef %7170, i32 noundef %7172) #12
  br label %7174

7174:                                             ; preds = %7157, %7140
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #12
  br label %7175

7175:                                             ; preds = %7174
  br label %7176

7176:                                             ; preds = %7175
  call void @exit(i32 noundef 1) #14
  unreachable

7177:                                             ; No predecessors!
  br label %7178

7178:                                             ; preds = %7177
  br label %7179

7179:                                             ; preds = %7178, %7120
  br label %7180

7180:                                             ; preds = %7179
  br label %7181

7181:                                             ; preds = %7180
  %7182 = load ptr, ptr %142, align 8, !tbaa !9
  %7183 = getelementptr inbounds %struct.s2n_connection, ptr %7182, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %7183, align 8, !tbaa !66
  br label %7184

7184:                                             ; preds = %7181
  %7185 = load i32, ptr @test_count, align 4, !tbaa !5
  %7186 = add nsw i32 %7185, 1
  store i32 %7186, ptr @test_count, align 4, !tbaa !5
  %7187 = load ptr, ptr %142, align 8, !tbaa !9
  %7188 = call i32 @s2n_client_hello_send(ptr noundef %7187)
  %7189 = icmp eq i32 %7188, -1
  br i1 %7189, label %7190, label %7243

7190:                                             ; preds = %7184
  br label %7191

7191:                                             ; preds = %7190
  br label %7192

7192:                                             ; preds = %7191
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #12
  %7193 = call ptr @__errno_location() #13
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  store i32 %7194, ptr %159, align 4, !tbaa !5
  %7195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7196 = call i32 @s2n_print_stacktrace(ptr noundef %7195)
  %7197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7198 = trunc i8 %7197 to i1
  br i1 %7198, label %7199, label %7221

7199:                                             ; preds = %7192
  %7200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7201 = call i32 @fileno(ptr noundef %7200) #12
  %7202 = call i32 @isatty(i32 noundef %7201) #12
  %7203 = icmp ne i32 %7202, 0
  br i1 %7203, label %7204, label %7221

7204:                                             ; preds = %7199
  %7205 = load i32, ptr %159, align 4, !tbaa !5
  %7206 = call ptr @__errno_location() #13
  store i32 %7205, ptr %7206, align 4, !tbaa !5
  %7207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7208 = load i32, ptr @test_count, align 4, !tbaa !5
  %7209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call ptr @s2n_strerror(i32 noundef %7210, ptr noundef @.str.3)
  %7212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call ptr @s2n_strerror_debug(i32 noundef %7213, ptr noundef @.str.3)
  %7215 = call ptr @__errno_location() #13
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call ptr @strerror(i32 noundef %7216) #12
  %7218 = call ptr @__errno_location() #13
  %7219 = load i32, ptr %7218, align 4, !tbaa !5
  %7220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7207, ptr noundef @.str, i32 noundef %7208, ptr noundef @.str.120, ptr noundef @.str.2, i32 noundef 422, ptr noundef %7211, ptr noundef %7214, ptr noundef %7217, i32 noundef %7219) #12
  br label %7238

7221:                                             ; preds = %7199, %7192
  %7222 = load i32, ptr %159, align 4, !tbaa !5
  %7223 = call ptr @__errno_location() #13
  store i32 %7222, ptr %7223, align 4, !tbaa !5
  %7224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7225 = load i32, ptr @test_count, align 4, !tbaa !5
  %7226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7227 = load i32, ptr %7226, align 4, !tbaa !5
  %7228 = call ptr @s2n_strerror(i32 noundef %7227, ptr noundef @.str.3)
  %7229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7230 = load i32, ptr %7229, align 4, !tbaa !5
  %7231 = call ptr @s2n_strerror_debug(i32 noundef %7230, ptr noundef @.str.3)
  %7232 = call ptr @__errno_location() #13
  %7233 = load i32, ptr %7232, align 4, !tbaa !5
  %7234 = call ptr @strerror(i32 noundef %7233) #12
  %7235 = call ptr @__errno_location() #13
  %7236 = load i32, ptr %7235, align 4, !tbaa !5
  %7237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7224, ptr noundef @.str.4, i32 noundef %7225, ptr noundef @.str.120, ptr noundef @.str.2, i32 noundef 422, ptr noundef %7228, ptr noundef %7231, ptr noundef %7234, i32 noundef %7236) #12
  br label %7238

7238:                                             ; preds = %7221, %7204
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #12
  br label %7239

7239:                                             ; preds = %7238
  br label %7240

7240:                                             ; preds = %7239
  call void @exit(i32 noundef 1) #14
  unreachable

7241:                                             ; No predecessors!
  br label %7242

7242:                                             ; preds = %7241
  br label %7243

7243:                                             ; preds = %7242, %7184
  br label %7244

7244:                                             ; preds = %7243
  br label %7245

7245:                                             ; preds = %7244
  br label %7246

7246:                                             ; preds = %7245
  %7247 = load i32, ptr @test_count, align 4, !tbaa !5
  %7248 = add nsw i32 %7247, 1
  store i32 %7248, ptr @test_count, align 4, !tbaa !5
  %7249 = load ptr, ptr %142, align 8, !tbaa !9
  %7250 = getelementptr inbounds %struct.s2n_connection, ptr %7249, i32 0, i32 52
  %7251 = getelementptr inbounds %struct.s2n_handshake, ptr %7250, i32 0, i32 0
  %7252 = load ptr, ptr %141, align 8, !tbaa !9
  %7253 = getelementptr inbounds %struct.s2n_connection, ptr %7252, i32 0, i32 52
  %7254 = getelementptr inbounds %struct.s2n_handshake, ptr %7253, i32 0, i32 0
  %7255 = load ptr, ptr %142, align 8, !tbaa !9
  %7256 = getelementptr inbounds %struct.s2n_connection, ptr %7255, i32 0, i32 52
  %7257 = getelementptr inbounds %struct.s2n_handshake, ptr %7256, i32 0, i32 0
  %7258 = getelementptr inbounds %struct.s2n_stuffer, ptr %7257, i32 0, i32 2
  %7259 = load i32, ptr %7258, align 4, !tbaa !67
  %7260 = load ptr, ptr %142, align 8, !tbaa !9
  %7261 = getelementptr inbounds %struct.s2n_connection, ptr %7260, i32 0, i32 52
  %7262 = getelementptr inbounds %struct.s2n_handshake, ptr %7261, i32 0, i32 0
  %7263 = getelementptr inbounds %struct.s2n_stuffer, ptr %7262, i32 0, i32 1
  %7264 = load i32, ptr %7263, align 8, !tbaa !68
  %7265 = sub i32 %7259, %7264
  %7266 = call i32 @s2n_stuffer_copy(ptr noundef %7251, ptr noundef %7254, i32 noundef %7265)
  %7267 = icmp eq i32 %7266, -1
  br i1 %7267, label %7268, label %7321

7268:                                             ; preds = %7246
  br label %7269

7269:                                             ; preds = %7268
  br label %7270

7270:                                             ; preds = %7269
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #12
  %7271 = call ptr @__errno_location() #13
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  store i32 %7272, ptr %160, align 4, !tbaa !5
  %7273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7274 = call i32 @s2n_print_stacktrace(ptr noundef %7273)
  %7275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7276 = trunc i8 %7275 to i1
  br i1 %7276, label %7277, label %7299

7277:                                             ; preds = %7270
  %7278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7279 = call i32 @fileno(ptr noundef %7278) #12
  %7280 = call i32 @isatty(i32 noundef %7279) #12
  %7281 = icmp ne i32 %7280, 0
  br i1 %7281, label %7282, label %7299

7282:                                             ; preds = %7277
  %7283 = load i32, ptr %160, align 4, !tbaa !5
  %7284 = call ptr @__errno_location() #13
  store i32 %7283, ptr %7284, align 4, !tbaa !5
  %7285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7286 = load i32, ptr @test_count, align 4, !tbaa !5
  %7287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7288 = load i32, ptr %7287, align 4, !tbaa !5
  %7289 = call ptr @s2n_strerror(i32 noundef %7288, ptr noundef @.str.3)
  %7290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  %7292 = call ptr @s2n_strerror_debug(i32 noundef %7291, ptr noundef @.str.3)
  %7293 = call ptr @__errno_location() #13
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  %7295 = call ptr @strerror(i32 noundef %7294) #12
  %7296 = call ptr @__errno_location() #13
  %7297 = load i32, ptr %7296, align 4, !tbaa !5
  %7298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7285, ptr noundef @.str, i32 noundef %7286, ptr noundef @.str.121, ptr noundef @.str.2, i32 noundef 424, ptr noundef %7289, ptr noundef %7292, ptr noundef %7295, i32 noundef %7297) #12
  br label %7316

7299:                                             ; preds = %7277, %7270
  %7300 = load i32, ptr %160, align 4, !tbaa !5
  %7301 = call ptr @__errno_location() #13
  store i32 %7300, ptr %7301, align 4, !tbaa !5
  %7302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7303 = load i32, ptr @test_count, align 4, !tbaa !5
  %7304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7305 = load i32, ptr %7304, align 4, !tbaa !5
  %7306 = call ptr @s2n_strerror(i32 noundef %7305, ptr noundef @.str.3)
  %7307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7308 = load i32, ptr %7307, align 4, !tbaa !5
  %7309 = call ptr @s2n_strerror_debug(i32 noundef %7308, ptr noundef @.str.3)
  %7310 = call ptr @__errno_location() #13
  %7311 = load i32, ptr %7310, align 4, !tbaa !5
  %7312 = call ptr @strerror(i32 noundef %7311) #12
  %7313 = call ptr @__errno_location() #13
  %7314 = load i32, ptr %7313, align 4, !tbaa !5
  %7315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7302, ptr noundef @.str.4, i32 noundef %7303, ptr noundef @.str.121, ptr noundef @.str.2, i32 noundef 424, ptr noundef %7306, ptr noundef %7309, ptr noundef %7312, i32 noundef %7314) #12
  br label %7316

7316:                                             ; preds = %7299, %7282
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #12
  br label %7317

7317:                                             ; preds = %7316
  br label %7318

7318:                                             ; preds = %7317
  call void @exit(i32 noundef 1) #14
  unreachable

7319:                                             ; No predecessors!
  br label %7320

7320:                                             ; preds = %7319
  br label %7321

7321:                                             ; preds = %7320, %7246
  br label %7322

7322:                                             ; preds = %7321
  br label %7323

7323:                                             ; preds = %7322
  br label %7324

7324:                                             ; preds = %7323
  %7325 = load i32, ptr @test_count, align 4, !tbaa !5
  %7326 = add nsw i32 %7325, 1
  store i32 %7326, ptr @test_count, align 4, !tbaa !5
  %7327 = getelementptr inbounds %struct.client_hello_context, ptr %155, i32 0, i32 0
  %7328 = load i32, ptr %7327, align 4, !tbaa !69
  %7329 = icmp eq i32 %7328, 0
  br i1 %7329, label %7383, label %7330

7330:                                             ; preds = %7324
  br label %7331

7331:                                             ; preds = %7330
  br label %7332

7332:                                             ; preds = %7331
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #12
  %7333 = call ptr @__errno_location() #13
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  store i32 %7334, ptr %161, align 4, !tbaa !5
  %7335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7336 = call i32 @s2n_print_stacktrace(ptr noundef %7335)
  %7337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7338 = trunc i8 %7337 to i1
  br i1 %7338, label %7339, label %7361

7339:                                             ; preds = %7332
  %7340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7341 = call i32 @fileno(ptr noundef %7340) #12
  %7342 = call i32 @isatty(i32 noundef %7341) #12
  %7343 = icmp ne i32 %7342, 0
  br i1 %7343, label %7344, label %7361

7344:                                             ; preds = %7339
  %7345 = load i32, ptr %161, align 4, !tbaa !5
  %7346 = call ptr @__errno_location() #13
  store i32 %7345, ptr %7346, align 4, !tbaa !5
  %7347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7348 = load i32, ptr @test_count, align 4, !tbaa !5
  %7349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7350 = load i32, ptr %7349, align 4, !tbaa !5
  %7351 = call ptr @s2n_strerror(i32 noundef %7350, ptr noundef @.str.3)
  %7352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7353 = load i32, ptr %7352, align 4, !tbaa !5
  %7354 = call ptr @s2n_strerror_debug(i32 noundef %7353, ptr noundef @.str.3)
  %7355 = call ptr @__errno_location() #13
  %7356 = load i32, ptr %7355, align 4, !tbaa !5
  %7357 = call ptr @strerror(i32 noundef %7356) #12
  %7358 = call ptr @__errno_location() #13
  %7359 = load i32, ptr %7358, align 4, !tbaa !5
  %7360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7347, ptr noundef @.str, i32 noundef %7348, ptr noundef @.str.122, ptr noundef @.str.2, i32 noundef 427, ptr noundef %7351, ptr noundef %7354, ptr noundef %7357, i32 noundef %7359) #12
  br label %7378

7361:                                             ; preds = %7339, %7332
  %7362 = load i32, ptr %161, align 4, !tbaa !5
  %7363 = call ptr @__errno_location() #13
  store i32 %7362, ptr %7363, align 4, !tbaa !5
  %7364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7365 = load i32, ptr @test_count, align 4, !tbaa !5
  %7366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7367 = load i32, ptr %7366, align 4, !tbaa !5
  %7368 = call ptr @s2n_strerror(i32 noundef %7367, ptr noundef @.str.3)
  %7369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7370 = load i32, ptr %7369, align 4, !tbaa !5
  %7371 = call ptr @s2n_strerror_debug(i32 noundef %7370, ptr noundef @.str.3)
  %7372 = call ptr @__errno_location() #13
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call ptr @strerror(i32 noundef %7373) #12
  %7375 = call ptr @__errno_location() #13
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7364, ptr noundef @.str.4, i32 noundef %7365, ptr noundef @.str.122, ptr noundef @.str.2, i32 noundef 427, ptr noundef %7368, ptr noundef %7371, ptr noundef %7374, i32 noundef %7376) #12
  br label %7378

7378:                                             ; preds = %7361, %7344
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #12
  br label %7379

7379:                                             ; preds = %7378
  br label %7380

7380:                                             ; preds = %7379
  call void @exit(i32 noundef 1) #14
  unreachable

7381:                                             ; No predecessors!
  br label %7382

7382:                                             ; preds = %7381
  br label %7383

7383:                                             ; preds = %7382, %7324
  br label %7384

7384:                                             ; preds = %7383
  br label %7385

7385:                                             ; preds = %7384
  br label %7386

7386:                                             ; preds = %7385
  %7387 = load i32, ptr @test_count, align 4, !tbaa !5
  %7388 = add nsw i32 %7387, 1
  store i32 %7388, ptr @test_count, align 4, !tbaa !5
  %7389 = load ptr, ptr %141, align 8, !tbaa !9
  %7390 = call i32 @s2n_client_hello_recv(ptr noundef %7389)
  %7391 = icmp eq i32 %7390, -1
  br i1 %7391, label %7392, label %7445

7392:                                             ; preds = %7386
  br label %7393

7393:                                             ; preds = %7392
  br label %7394

7394:                                             ; preds = %7393
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #12
  %7395 = call ptr @__errno_location() #13
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  store i32 %7396, ptr %162, align 4, !tbaa !5
  %7397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7398 = call i32 @s2n_print_stacktrace(ptr noundef %7397)
  %7399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7400 = trunc i8 %7399 to i1
  br i1 %7400, label %7401, label %7423

7401:                                             ; preds = %7394
  %7402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7403 = call i32 @fileno(ptr noundef %7402) #12
  %7404 = call i32 @isatty(i32 noundef %7403) #12
  %7405 = icmp ne i32 %7404, 0
  br i1 %7405, label %7406, label %7423

7406:                                             ; preds = %7401
  %7407 = load i32, ptr %162, align 4, !tbaa !5
  %7408 = call ptr @__errno_location() #13
  store i32 %7407, ptr %7408, align 4, !tbaa !5
  %7409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7410 = load i32, ptr @test_count, align 4, !tbaa !5
  %7411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7412 = load i32, ptr %7411, align 4, !tbaa !5
  %7413 = call ptr @s2n_strerror(i32 noundef %7412, ptr noundef @.str.3)
  %7414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7415 = load i32, ptr %7414, align 4, !tbaa !5
  %7416 = call ptr @s2n_strerror_debug(i32 noundef %7415, ptr noundef @.str.3)
  %7417 = call ptr @__errno_location() #13
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call ptr @strerror(i32 noundef %7418) #12
  %7420 = call ptr @__errno_location() #13
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  %7422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7409, ptr noundef @.str, i32 noundef %7410, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 428, ptr noundef %7413, ptr noundef %7416, ptr noundef %7419, i32 noundef %7421) #12
  br label %7440

7423:                                             ; preds = %7401, %7394
  %7424 = load i32, ptr %162, align 4, !tbaa !5
  %7425 = call ptr @__errno_location() #13
  store i32 %7424, ptr %7425, align 4, !tbaa !5
  %7426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7427 = load i32, ptr @test_count, align 4, !tbaa !5
  %7428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7429 = load i32, ptr %7428, align 4, !tbaa !5
  %7430 = call ptr @s2n_strerror(i32 noundef %7429, ptr noundef @.str.3)
  %7431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7432 = load i32, ptr %7431, align 4, !tbaa !5
  %7433 = call ptr @s2n_strerror_debug(i32 noundef %7432, ptr noundef @.str.3)
  %7434 = call ptr @__errno_location() #13
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @strerror(i32 noundef %7435) #12
  %7437 = call ptr @__errno_location() #13
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7426, ptr noundef @.str.4, i32 noundef %7427, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 428, ptr noundef %7430, ptr noundef %7433, ptr noundef %7436, i32 noundef %7438) #12
  br label %7440

7440:                                             ; preds = %7423, %7406
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #12
  br label %7441

7441:                                             ; preds = %7440
  br label %7442

7442:                                             ; preds = %7441
  call void @exit(i32 noundef 1) #14
  unreachable

7443:                                             ; No predecessors!
  br label %7444

7444:                                             ; preds = %7443
  br label %7445

7445:                                             ; preds = %7444, %7386
  br label %7446

7446:                                             ; preds = %7445
  br label %7447

7447:                                             ; preds = %7446
  br label %7448

7448:                                             ; preds = %7447
  %7449 = load i32, ptr @test_count, align 4, !tbaa !5
  %7450 = add nsw i32 %7449, 1
  store i32 %7450, ptr @test_count, align 4, !tbaa !5
  %7451 = getelementptr inbounds %struct.client_hello_context, ptr %155, i32 0, i32 0
  %7452 = load i32, ptr %7451, align 4, !tbaa !69
  %7453 = icmp eq i32 %7452, 1
  br i1 %7453, label %7507, label %7454

7454:                                             ; preds = %7448
  br label %7455

7455:                                             ; preds = %7454
  br label %7456

7456:                                             ; preds = %7455
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #12
  %7457 = call ptr @__errno_location() #13
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  store i32 %7458, ptr %163, align 4, !tbaa !5
  %7459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7460 = call i32 @s2n_print_stacktrace(ptr noundef %7459)
  %7461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7462 = trunc i8 %7461 to i1
  br i1 %7462, label %7463, label %7485

7463:                                             ; preds = %7456
  %7464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7465 = call i32 @fileno(ptr noundef %7464) #12
  %7466 = call i32 @isatty(i32 noundef %7465) #12
  %7467 = icmp ne i32 %7466, 0
  br i1 %7467, label %7468, label %7485

7468:                                             ; preds = %7463
  %7469 = load i32, ptr %163, align 4, !tbaa !5
  %7470 = call ptr @__errno_location() #13
  store i32 %7469, ptr %7470, align 4, !tbaa !5
  %7471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7472 = load i32, ptr @test_count, align 4, !tbaa !5
  %7473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7474 = load i32, ptr %7473, align 4, !tbaa !5
  %7475 = call ptr @s2n_strerror(i32 noundef %7474, ptr noundef @.str.3)
  %7476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7477 = load i32, ptr %7476, align 4, !tbaa !5
  %7478 = call ptr @s2n_strerror_debug(i32 noundef %7477, ptr noundef @.str.3)
  %7479 = call ptr @__errno_location() #13
  %7480 = load i32, ptr %7479, align 4, !tbaa !5
  %7481 = call ptr @strerror(i32 noundef %7480) #12
  %7482 = call ptr @__errno_location() #13
  %7483 = load i32, ptr %7482, align 4, !tbaa !5
  %7484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7471, ptr noundef @.str, i32 noundef %7472, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 429, ptr noundef %7475, ptr noundef %7478, ptr noundef %7481, i32 noundef %7483) #12
  br label %7502

7485:                                             ; preds = %7463, %7456
  %7486 = load i32, ptr %163, align 4, !tbaa !5
  %7487 = call ptr @__errno_location() #13
  store i32 %7486, ptr %7487, align 4, !tbaa !5
  %7488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7489 = load i32, ptr @test_count, align 4, !tbaa !5
  %7490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  %7492 = call ptr @s2n_strerror(i32 noundef %7491, ptr noundef @.str.3)
  %7493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7494 = load i32, ptr %7493, align 4, !tbaa !5
  %7495 = call ptr @s2n_strerror_debug(i32 noundef %7494, ptr noundef @.str.3)
  %7496 = call ptr @__errno_location() #13
  %7497 = load i32, ptr %7496, align 4, !tbaa !5
  %7498 = call ptr @strerror(i32 noundef %7497) #12
  %7499 = call ptr @__errno_location() #13
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7488, ptr noundef @.str.4, i32 noundef %7489, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 429, ptr noundef %7492, ptr noundef %7495, ptr noundef %7498, i32 noundef %7500) #12
  br label %7502

7502:                                             ; preds = %7485, %7468
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #12
  br label %7503

7503:                                             ; preds = %7502
  br label %7504

7504:                                             ; preds = %7503
  call void @exit(i32 noundef 1) #14
  unreachable

7505:                                             ; No predecessors!
  br label %7506

7506:                                             ; preds = %7505
  br label %7507

7507:                                             ; preds = %7506, %7448
  br label %7508

7508:                                             ; preds = %7507
  br label %7509

7509:                                             ; preds = %7508
  br label %7510

7510:                                             ; preds = %7509
  %7511 = load i32, ptr @test_count, align 4, !tbaa !5
  %7512 = add nsw i32 %7511, 1
  store i32 %7512, ptr @test_count, align 4, !tbaa !5
  %7513 = load ptr, ptr %141, align 8, !tbaa !9
  %7514 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %7513)
  br i1 %7514, label %7568, label %7515

7515:                                             ; preds = %7510
  br label %7516

7516:                                             ; preds = %7515
  br label %7517

7517:                                             ; preds = %7516
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #12
  %7518 = call ptr @__errno_location() #13
  %7519 = load i32, ptr %7518, align 4, !tbaa !5
  store i32 %7519, ptr %164, align 4, !tbaa !5
  %7520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7521 = call i32 @s2n_print_stacktrace(ptr noundef %7520)
  %7522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7523 = trunc i8 %7522 to i1
  br i1 %7523, label %7524, label %7546

7524:                                             ; preds = %7517
  %7525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7526 = call i32 @fileno(ptr noundef %7525) #12
  %7527 = call i32 @isatty(i32 noundef %7526) #12
  %7528 = icmp ne i32 %7527, 0
  br i1 %7528, label %7529, label %7546

7529:                                             ; preds = %7524
  %7530 = load i32, ptr %164, align 4, !tbaa !5
  %7531 = call ptr @__errno_location() #13
  store i32 %7530, ptr %7531, align 4, !tbaa !5
  %7532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7533 = load i32, ptr @test_count, align 4, !tbaa !5
  %7534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7535 = load i32, ptr %7534, align 4, !tbaa !5
  %7536 = call ptr @s2n_strerror(i32 noundef %7535, ptr noundef @.str.3)
  %7537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7538 = load i32, ptr %7537, align 4, !tbaa !5
  %7539 = call ptr @s2n_strerror_debug(i32 noundef %7538, ptr noundef @.str.3)
  %7540 = call ptr @__errno_location() #13
  %7541 = load i32, ptr %7540, align 4, !tbaa !5
  %7542 = call ptr @strerror(i32 noundef %7541) #12
  %7543 = call ptr @__errno_location() #13
  %7544 = load i32, ptr %7543, align 4, !tbaa !5
  %7545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7532, ptr noundef @.str, i32 noundef %7533, ptr noundef @.str.125, ptr noundef @.str.2, i32 noundef 431, ptr noundef %7536, ptr noundef %7539, ptr noundef %7542, i32 noundef %7544) #12
  br label %7563

7546:                                             ; preds = %7524, %7517
  %7547 = load i32, ptr %164, align 4, !tbaa !5
  %7548 = call ptr @__errno_location() #13
  store i32 %7547, ptr %7548, align 4, !tbaa !5
  %7549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7550 = load i32, ptr @test_count, align 4, !tbaa !5
  %7551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7552 = load i32, ptr %7551, align 4, !tbaa !5
  %7553 = call ptr @s2n_strerror(i32 noundef %7552, ptr noundef @.str.3)
  %7554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7555 = load i32, ptr %7554, align 4, !tbaa !5
  %7556 = call ptr @s2n_strerror_debug(i32 noundef %7555, ptr noundef @.str.3)
  %7557 = call ptr @__errno_location() #13
  %7558 = load i32, ptr %7557, align 4, !tbaa !5
  %7559 = call ptr @strerror(i32 noundef %7558) #12
  %7560 = call ptr @__errno_location() #13
  %7561 = load i32, ptr %7560, align 4, !tbaa !5
  %7562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7549, ptr noundef @.str.4, i32 noundef %7550, ptr noundef @.str.125, ptr noundef @.str.2, i32 noundef 431, ptr noundef %7553, ptr noundef %7556, ptr noundef %7559, i32 noundef %7561) #12
  br label %7563

7563:                                             ; preds = %7546, %7529
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #12
  br label %7564

7564:                                             ; preds = %7563
  br label %7565

7565:                                             ; preds = %7564
  call void @exit(i32 noundef 1) #14
  unreachable

7566:                                             ; No predecessors!
  br label %7567

7567:                                             ; preds = %7566
  br label %7568

7568:                                             ; preds = %7567, %7510
  br label %7569

7569:                                             ; preds = %7568
  br label %7570

7570:                                             ; preds = %7569
  br label %7571

7571:                                             ; preds = %7570
  %7572 = load i32, ptr @test_count, align 4, !tbaa !5
  %7573 = add nsw i32 %7572, 1
  store i32 %7573, ptr @test_count, align 4, !tbaa !5
  %7574 = load ptr, ptr %141, align 8, !tbaa !9
  %7575 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %7574)
  %7576 = icmp eq i32 %7575, -1
  br i1 %7576, label %7577, label %7630

7577:                                             ; preds = %7571
  br label %7578

7578:                                             ; preds = %7577
  br label %7579

7579:                                             ; preds = %7578
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #12
  %7580 = call ptr @__errno_location() #13
  %7581 = load i32, ptr %7580, align 4, !tbaa !5
  store i32 %7581, ptr %165, align 4, !tbaa !5
  %7582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7583 = call i32 @s2n_print_stacktrace(ptr noundef %7582)
  %7584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7585 = trunc i8 %7584 to i1
  br i1 %7585, label %7586, label %7608

7586:                                             ; preds = %7579
  %7587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7588 = call i32 @fileno(ptr noundef %7587) #12
  %7589 = call i32 @isatty(i32 noundef %7588) #12
  %7590 = icmp ne i32 %7589, 0
  br i1 %7590, label %7591, label %7608

7591:                                             ; preds = %7586
  %7592 = load i32, ptr %165, align 4, !tbaa !5
  %7593 = call ptr @__errno_location() #13
  store i32 %7592, ptr %7593, align 4, !tbaa !5
  %7594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7595 = load i32, ptr @test_count, align 4, !tbaa !5
  %7596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7597 = load i32, ptr %7596, align 4, !tbaa !5
  %7598 = call ptr @s2n_strerror(i32 noundef %7597, ptr noundef @.str.3)
  %7599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7600 = load i32, ptr %7599, align 4, !tbaa !5
  %7601 = call ptr @s2n_strerror_debug(i32 noundef %7600, ptr noundef @.str.3)
  %7602 = call ptr @__errno_location() #13
  %7603 = load i32, ptr %7602, align 4, !tbaa !5
  %7604 = call ptr @strerror(i32 noundef %7603) #12
  %7605 = call ptr @__errno_location() #13
  %7606 = load i32, ptr %7605, align 4, !tbaa !5
  %7607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7594, ptr noundef @.str, i32 noundef %7595, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 432, ptr noundef %7598, ptr noundef %7601, ptr noundef %7604, i32 noundef %7606) #12
  br label %7625

7608:                                             ; preds = %7586, %7579
  %7609 = load i32, ptr %165, align 4, !tbaa !5
  %7610 = call ptr @__errno_location() #13
  store i32 %7609, ptr %7610, align 4, !tbaa !5
  %7611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7612 = load i32, ptr @test_count, align 4, !tbaa !5
  %7613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7614 = load i32, ptr %7613, align 4, !tbaa !5
  %7615 = call ptr @s2n_strerror(i32 noundef %7614, ptr noundef @.str.3)
  %7616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7617 = load i32, ptr %7616, align 4, !tbaa !5
  %7618 = call ptr @s2n_strerror_debug(i32 noundef %7617, ptr noundef @.str.3)
  %7619 = call ptr @__errno_location() #13
  %7620 = load i32, ptr %7619, align 4, !tbaa !5
  %7621 = call ptr @strerror(i32 noundef %7620) #12
  %7622 = call ptr @__errno_location() #13
  %7623 = load i32, ptr %7622, align 4, !tbaa !5
  %7624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7611, ptr noundef @.str.4, i32 noundef %7612, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 432, ptr noundef %7615, ptr noundef %7618, ptr noundef %7621, i32 noundef %7623) #12
  br label %7625

7625:                                             ; preds = %7608, %7591
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #12
  br label %7626

7626:                                             ; preds = %7625
  br label %7627

7627:                                             ; preds = %7626
  call void @exit(i32 noundef 1) #14
  unreachable

7628:                                             ; No predecessors!
  br label %7629

7629:                                             ; preds = %7628
  br label %7630

7630:                                             ; preds = %7629, %7571
  br label %7631

7631:                                             ; preds = %7630
  br label %7632

7632:                                             ; preds = %7631
  br label %7633

7633:                                             ; preds = %7632
  %7634 = load i32, ptr @test_count, align 4, !tbaa !5
  %7635 = add nsw i32 %7634, 1
  store i32 %7635, ptr @test_count, align 4, !tbaa !5
  %7636 = load ptr, ptr %141, align 8, !tbaa !9
  %7637 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef %7636)
  br i1 %7637, label %7691, label %7638

7638:                                             ; preds = %7633
  br label %7639

7639:                                             ; preds = %7638
  br label %7640

7640:                                             ; preds = %7639
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #12
  %7641 = call ptr @__errno_location() #13
  %7642 = load i32, ptr %7641, align 4, !tbaa !5
  store i32 %7642, ptr %166, align 4, !tbaa !5
  %7643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7644 = call i32 @s2n_print_stacktrace(ptr noundef %7643)
  %7645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7646 = trunc i8 %7645 to i1
  br i1 %7646, label %7647, label %7669

7647:                                             ; preds = %7640
  %7648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7649 = call i32 @fileno(ptr noundef %7648) #12
  %7650 = call i32 @isatty(i32 noundef %7649) #12
  %7651 = icmp ne i32 %7650, 0
  br i1 %7651, label %7652, label %7669

7652:                                             ; preds = %7647
  %7653 = load i32, ptr %166, align 4, !tbaa !5
  %7654 = call ptr @__errno_location() #13
  store i32 %7653, ptr %7654, align 4, !tbaa !5
  %7655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7656 = load i32, ptr @test_count, align 4, !tbaa !5
  %7657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7658 = load i32, ptr %7657, align 4, !tbaa !5
  %7659 = call ptr @s2n_strerror(i32 noundef %7658, ptr noundef @.str.3)
  %7660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7661 = load i32, ptr %7660, align 4, !tbaa !5
  %7662 = call ptr @s2n_strerror_debug(i32 noundef %7661, ptr noundef @.str.3)
  %7663 = call ptr @__errno_location() #13
  %7664 = load i32, ptr %7663, align 4, !tbaa !5
  %7665 = call ptr @strerror(i32 noundef %7664) #12
  %7666 = call ptr @__errno_location() #13
  %7667 = load i32, ptr %7666, align 4, !tbaa !5
  %7668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7655, ptr noundef @.str, i32 noundef %7656, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 433, ptr noundef %7659, ptr noundef %7662, ptr noundef %7665, i32 noundef %7667) #12
  br label %7686

7669:                                             ; preds = %7647, %7640
  %7670 = load i32, ptr %166, align 4, !tbaa !5
  %7671 = call ptr @__errno_location() #13
  store i32 %7670, ptr %7671, align 4, !tbaa !5
  %7672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7673 = load i32, ptr @test_count, align 4, !tbaa !5
  %7674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7675 = load i32, ptr %7674, align 4, !tbaa !5
  %7676 = call ptr @s2n_strerror(i32 noundef %7675, ptr noundef @.str.3)
  %7677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7678 = load i32, ptr %7677, align 4, !tbaa !5
  %7679 = call ptr @s2n_strerror_debug(i32 noundef %7678, ptr noundef @.str.3)
  %7680 = call ptr @__errno_location() #13
  %7681 = load i32, ptr %7680, align 4, !tbaa !5
  %7682 = call ptr @strerror(i32 noundef %7681) #12
  %7683 = call ptr @__errno_location() #13
  %7684 = load i32, ptr %7683, align 4, !tbaa !5
  %7685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7672, ptr noundef @.str.4, i32 noundef %7673, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 433, ptr noundef %7676, ptr noundef %7679, ptr noundef %7682, i32 noundef %7684) #12
  br label %7686

7686:                                             ; preds = %7669, %7652
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #12
  br label %7687

7687:                                             ; preds = %7686
  br label %7688

7688:                                             ; preds = %7687
  call void @exit(i32 noundef 1) #14
  unreachable

7689:                                             ; No predecessors!
  br label %7690

7690:                                             ; preds = %7689
  br label %7691

7691:                                             ; preds = %7690, %7633
  br label %7692

7692:                                             ; preds = %7691
  br label %7693

7693:                                             ; preds = %7692
  br label %7694

7694:                                             ; preds = %7693
  %7695 = load i32, ptr @test_count, align 4, !tbaa !5
  %7696 = add nsw i32 %7695, 1
  store i32 %7696, ptr @test_count, align 4, !tbaa !5
  %7697 = load ptr, ptr %141, align 8, !tbaa !9
  %7698 = call i32 @s2n_server_hello_retry_send(ptr noundef %7697)
  %7699 = icmp eq i32 %7698, -1
  br i1 %7699, label %7700, label %7753

7700:                                             ; preds = %7694
  br label %7701

7701:                                             ; preds = %7700
  br label %7702

7702:                                             ; preds = %7701
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #12
  %7703 = call ptr @__errno_location() #13
  %7704 = load i32, ptr %7703, align 4, !tbaa !5
  store i32 %7704, ptr %167, align 4, !tbaa !5
  %7705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7706 = call i32 @s2n_print_stacktrace(ptr noundef %7705)
  %7707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7708 = trunc i8 %7707 to i1
  br i1 %7708, label %7709, label %7731

7709:                                             ; preds = %7702
  %7710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7711 = call i32 @fileno(ptr noundef %7710) #12
  %7712 = call i32 @isatty(i32 noundef %7711) #12
  %7713 = icmp ne i32 %7712, 0
  br i1 %7713, label %7714, label %7731

7714:                                             ; preds = %7709
  %7715 = load i32, ptr %167, align 4, !tbaa !5
  %7716 = call ptr @__errno_location() #13
  store i32 %7715, ptr %7716, align 4, !tbaa !5
  %7717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7718 = load i32, ptr @test_count, align 4, !tbaa !5
  %7719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @s2n_strerror(i32 noundef %7720, ptr noundef @.str.3)
  %7722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call ptr @s2n_strerror_debug(i32 noundef %7723, ptr noundef @.str.3)
  %7725 = call ptr @__errno_location() #13
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  %7727 = call ptr @strerror(i32 noundef %7726) #12
  %7728 = call ptr @__errno_location() #13
  %7729 = load i32, ptr %7728, align 4, !tbaa !5
  %7730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7717, ptr noundef @.str, i32 noundef %7718, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 435, ptr noundef %7721, ptr noundef %7724, ptr noundef %7727, i32 noundef %7729) #12
  br label %7748

7731:                                             ; preds = %7709, %7702
  %7732 = load i32, ptr %167, align 4, !tbaa !5
  %7733 = call ptr @__errno_location() #13
  store i32 %7732, ptr %7733, align 4, !tbaa !5
  %7734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7735 = load i32, ptr @test_count, align 4, !tbaa !5
  %7736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7737 = load i32, ptr %7736, align 4, !tbaa !5
  %7738 = call ptr @s2n_strerror(i32 noundef %7737, ptr noundef @.str.3)
  %7739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call ptr @s2n_strerror_debug(i32 noundef %7740, ptr noundef @.str.3)
  %7742 = call ptr @__errno_location() #13
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call ptr @strerror(i32 noundef %7743) #12
  %7745 = call ptr @__errno_location() #13
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  %7747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7734, ptr noundef @.str.4, i32 noundef %7735, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 435, ptr noundef %7738, ptr noundef %7741, ptr noundef %7744, i32 noundef %7746) #12
  br label %7748

7748:                                             ; preds = %7731, %7714
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #12
  br label %7749

7749:                                             ; preds = %7748
  br label %7750

7750:                                             ; preds = %7749
  call void @exit(i32 noundef 1) #14
  unreachable

7751:                                             ; No predecessors!
  br label %7752

7752:                                             ; preds = %7751
  br label %7753

7753:                                             ; preds = %7752, %7694
  br label %7754

7754:                                             ; preds = %7753
  br label %7755

7755:                                             ; preds = %7754
  br label %7756

7756:                                             ; preds = %7755
  %7757 = load i32, ptr @test_count, align 4, !tbaa !5
  %7758 = add nsw i32 %7757, 1
  store i32 %7758, ptr @test_count, align 4, !tbaa !5
  %7759 = load ptr, ptr %142, align 8, !tbaa !9
  %7760 = getelementptr inbounds %struct.s2n_connection, ptr %7759, i32 0, i32 52
  %7761 = getelementptr inbounds %struct.s2n_handshake, ptr %7760, i32 0, i32 0
  %7762 = call i32 @s2n_stuffer_wipe(ptr noundef %7761)
  %7763 = icmp eq i32 %7762, -1
  br i1 %7763, label %7764, label %7817

7764:                                             ; preds = %7756
  br label %7765

7765:                                             ; preds = %7764
  br label %7766

7766:                                             ; preds = %7765
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #12
  %7767 = call ptr @__errno_location() #13
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  store i32 %7768, ptr %168, align 4, !tbaa !5
  %7769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7770 = call i32 @s2n_print_stacktrace(ptr noundef %7769)
  %7771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7772 = trunc i8 %7771 to i1
  br i1 %7772, label %7773, label %7795

7773:                                             ; preds = %7766
  %7774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7775 = call i32 @fileno(ptr noundef %7774) #12
  %7776 = call i32 @isatty(i32 noundef %7775) #12
  %7777 = icmp ne i32 %7776, 0
  br i1 %7777, label %7778, label %7795

7778:                                             ; preds = %7773
  %7779 = load i32, ptr %168, align 4, !tbaa !5
  %7780 = call ptr @__errno_location() #13
  store i32 %7779, ptr %7780, align 4, !tbaa !5
  %7781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7782 = load i32, ptr @test_count, align 4, !tbaa !5
  %7783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7784 = load i32, ptr %7783, align 4, !tbaa !5
  %7785 = call ptr @s2n_strerror(i32 noundef %7784, ptr noundef @.str.3)
  %7786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7787 = load i32, ptr %7786, align 4, !tbaa !5
  %7788 = call ptr @s2n_strerror_debug(i32 noundef %7787, ptr noundef @.str.3)
  %7789 = call ptr @__errno_location() #13
  %7790 = load i32, ptr %7789, align 4, !tbaa !5
  %7791 = call ptr @strerror(i32 noundef %7790) #12
  %7792 = call ptr @__errno_location() #13
  %7793 = load i32, ptr %7792, align 4, !tbaa !5
  %7794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7781, ptr noundef @.str, i32 noundef %7782, ptr noundef @.str.126, ptr noundef @.str.2, i32 noundef 437, ptr noundef %7785, ptr noundef %7788, ptr noundef %7791, i32 noundef %7793) #12
  br label %7812

7795:                                             ; preds = %7773, %7766
  %7796 = load i32, ptr %168, align 4, !tbaa !5
  %7797 = call ptr @__errno_location() #13
  store i32 %7796, ptr %7797, align 4, !tbaa !5
  %7798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7799 = load i32, ptr @test_count, align 4, !tbaa !5
  %7800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7801 = load i32, ptr %7800, align 4, !tbaa !5
  %7802 = call ptr @s2n_strerror(i32 noundef %7801, ptr noundef @.str.3)
  %7803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7804 = load i32, ptr %7803, align 4, !tbaa !5
  %7805 = call ptr @s2n_strerror_debug(i32 noundef %7804, ptr noundef @.str.3)
  %7806 = call ptr @__errno_location() #13
  %7807 = load i32, ptr %7806, align 4, !tbaa !5
  %7808 = call ptr @strerror(i32 noundef %7807) #12
  %7809 = call ptr @__errno_location() #13
  %7810 = load i32, ptr %7809, align 4, !tbaa !5
  %7811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7798, ptr noundef @.str.4, i32 noundef %7799, ptr noundef @.str.126, ptr noundef @.str.2, i32 noundef 437, ptr noundef %7802, ptr noundef %7805, ptr noundef %7808, i32 noundef %7810) #12
  br label %7812

7812:                                             ; preds = %7795, %7778
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #12
  br label %7813

7813:                                             ; preds = %7812
  br label %7814

7814:                                             ; preds = %7813
  call void @exit(i32 noundef 1) #14
  unreachable

7815:                                             ; No predecessors!
  br label %7816

7816:                                             ; preds = %7815
  br label %7817

7817:                                             ; preds = %7816, %7756
  br label %7818

7818:                                             ; preds = %7817
  br label %7819

7819:                                             ; preds = %7818
  br label %7820

7820:                                             ; preds = %7819
  %7821 = load i32, ptr @test_count, align 4, !tbaa !5
  %7822 = add nsw i32 %7821, 1
  store i32 %7822, ptr @test_count, align 4, !tbaa !5
  %7823 = load ptr, ptr %141, align 8, !tbaa !9
  %7824 = getelementptr inbounds %struct.s2n_connection, ptr %7823, i32 0, i32 52
  %7825 = getelementptr inbounds %struct.s2n_handshake, ptr %7824, i32 0, i32 0
  %7826 = load ptr, ptr %142, align 8, !tbaa !9
  %7827 = getelementptr inbounds %struct.s2n_connection, ptr %7826, i32 0, i32 52
  %7828 = getelementptr inbounds %struct.s2n_handshake, ptr %7827, i32 0, i32 0
  %7829 = load ptr, ptr %141, align 8, !tbaa !9
  %7830 = getelementptr inbounds %struct.s2n_connection, ptr %7829, i32 0, i32 52
  %7831 = getelementptr inbounds %struct.s2n_handshake, ptr %7830, i32 0, i32 0
  %7832 = getelementptr inbounds %struct.s2n_stuffer, ptr %7831, i32 0, i32 2
  %7833 = load i32, ptr %7832, align 4, !tbaa !67
  %7834 = load ptr, ptr %141, align 8, !tbaa !9
  %7835 = getelementptr inbounds %struct.s2n_connection, ptr %7834, i32 0, i32 52
  %7836 = getelementptr inbounds %struct.s2n_handshake, ptr %7835, i32 0, i32 0
  %7837 = getelementptr inbounds %struct.s2n_stuffer, ptr %7836, i32 0, i32 1
  %7838 = load i32, ptr %7837, align 8, !tbaa !68
  %7839 = sub i32 %7833, %7838
  %7840 = call i32 @s2n_stuffer_copy(ptr noundef %7825, ptr noundef %7828, i32 noundef %7839)
  %7841 = icmp eq i32 %7840, -1
  br i1 %7841, label %7842, label %7895

7842:                                             ; preds = %7820
  br label %7843

7843:                                             ; preds = %7842
  br label %7844

7844:                                             ; preds = %7843
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #12
  %7845 = call ptr @__errno_location() #13
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  store i32 %7846, ptr %169, align 4, !tbaa !5
  %7847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7848 = call i32 @s2n_print_stacktrace(ptr noundef %7847)
  %7849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7850 = trunc i8 %7849 to i1
  br i1 %7850, label %7851, label %7873

7851:                                             ; preds = %7844
  %7852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7853 = call i32 @fileno(ptr noundef %7852) #12
  %7854 = call i32 @isatty(i32 noundef %7853) #12
  %7855 = icmp ne i32 %7854, 0
  br i1 %7855, label %7856, label %7873

7856:                                             ; preds = %7851
  %7857 = load i32, ptr %169, align 4, !tbaa !5
  %7858 = call ptr @__errno_location() #13
  store i32 %7857, ptr %7858, align 4, !tbaa !5
  %7859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7860 = load i32, ptr @test_count, align 4, !tbaa !5
  %7861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7862 = load i32, ptr %7861, align 4, !tbaa !5
  %7863 = call ptr @s2n_strerror(i32 noundef %7862, ptr noundef @.str.3)
  %7864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call ptr @s2n_strerror_debug(i32 noundef %7865, ptr noundef @.str.3)
  %7867 = call ptr @__errno_location() #13
  %7868 = load i32, ptr %7867, align 4, !tbaa !5
  %7869 = call ptr @strerror(i32 noundef %7868) #12
  %7870 = call ptr @__errno_location() #13
  %7871 = load i32, ptr %7870, align 4, !tbaa !5
  %7872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7859, ptr noundef @.str, i32 noundef %7860, ptr noundef @.str.127, ptr noundef @.str.2, i32 noundef 439, ptr noundef %7863, ptr noundef %7866, ptr noundef %7869, i32 noundef %7871) #12
  br label %7890

7873:                                             ; preds = %7851, %7844
  %7874 = load i32, ptr %169, align 4, !tbaa !5
  %7875 = call ptr @__errno_location() #13
  store i32 %7874, ptr %7875, align 4, !tbaa !5
  %7876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7877 = load i32, ptr @test_count, align 4, !tbaa !5
  %7878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7879 = load i32, ptr %7878, align 4, !tbaa !5
  %7880 = call ptr @s2n_strerror(i32 noundef %7879, ptr noundef @.str.3)
  %7881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call ptr @s2n_strerror_debug(i32 noundef %7882, ptr noundef @.str.3)
  %7884 = call ptr @__errno_location() #13
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call ptr @strerror(i32 noundef %7885) #12
  %7887 = call ptr @__errno_location() #13
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7876, ptr noundef @.str.4, i32 noundef %7877, ptr noundef @.str.127, ptr noundef @.str.2, i32 noundef 439, ptr noundef %7880, ptr noundef %7883, ptr noundef %7886, i32 noundef %7888) #12
  br label %7890

7890:                                             ; preds = %7873, %7856
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #12
  br label %7891

7891:                                             ; preds = %7890
  br label %7892

7892:                                             ; preds = %7891
  call void @exit(i32 noundef 1) #14
  unreachable

7893:                                             ; No predecessors!
  br label %7894

7894:                                             ; preds = %7893
  br label %7895

7895:                                             ; preds = %7894, %7820
  br label %7896

7896:                                             ; preds = %7895
  br label %7897

7897:                                             ; preds = %7896
  %7898 = load ptr, ptr %142, align 8, !tbaa !9
  %7899 = getelementptr inbounds %struct.s2n_connection, ptr %7898, i32 0, i32 52
  %7900 = getelementptr inbounds %struct.s2n_handshake, ptr %7899, i32 0, i32 7
  store i32 1, ptr %7900, align 8, !tbaa !71
  br label %7901

7901:                                             ; preds = %7897
  %7902 = load i32, ptr @test_count, align 4, !tbaa !5
  %7903 = add nsw i32 %7902, 1
  store i32 %7903, ptr @test_count, align 4, !tbaa !5
  %7904 = load ptr, ptr %142, align 8, !tbaa !9
  %7905 = call i32 @s2n_server_hello_recv(ptr noundef %7904)
  %7906 = icmp eq i32 %7905, -1
  br i1 %7906, label %7907, label %7960

7907:                                             ; preds = %7901
  br label %7908

7908:                                             ; preds = %7907
  br label %7909

7909:                                             ; preds = %7908
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #12
  %7910 = call ptr @__errno_location() #13
  %7911 = load i32, ptr %7910, align 4, !tbaa !5
  store i32 %7911, ptr %170, align 4, !tbaa !5
  %7912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7913 = call i32 @s2n_print_stacktrace(ptr noundef %7912)
  %7914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7915 = trunc i8 %7914 to i1
  br i1 %7915, label %7916, label %7938

7916:                                             ; preds = %7909
  %7917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7918 = call i32 @fileno(ptr noundef %7917) #12
  %7919 = call i32 @isatty(i32 noundef %7918) #12
  %7920 = icmp ne i32 %7919, 0
  br i1 %7920, label %7921, label %7938

7921:                                             ; preds = %7916
  %7922 = load i32, ptr %170, align 4, !tbaa !5
  %7923 = call ptr @__errno_location() #13
  store i32 %7922, ptr %7923, align 4, !tbaa !5
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = load i32, ptr @test_count, align 4, !tbaa !5
  %7926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call ptr @s2n_strerror(i32 noundef %7927, ptr noundef @.str.3)
  %7929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call ptr @s2n_strerror_debug(i32 noundef %7930, ptr noundef @.str.3)
  %7932 = call ptr @__errno_location() #13
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @strerror(i32 noundef %7933) #12
  %7935 = call ptr @__errno_location() #13
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7924, ptr noundef @.str, i32 noundef %7925, ptr noundef @.str.128, ptr noundef @.str.2, i32 noundef 441, ptr noundef %7928, ptr noundef %7931, ptr noundef %7934, i32 noundef %7936) #12
  br label %7955

7938:                                             ; preds = %7916, %7909
  %7939 = load i32, ptr %170, align 4, !tbaa !5
  %7940 = call ptr @__errno_location() #13
  store i32 %7939, ptr %7940, align 4, !tbaa !5
  %7941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7942 = load i32, ptr @test_count, align 4, !tbaa !5
  %7943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  %7945 = call ptr @s2n_strerror(i32 noundef %7944, ptr noundef @.str.3)
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror_debug(i32 noundef %7947, ptr noundef @.str.3)
  %7949 = call ptr @__errno_location() #13
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @strerror(i32 noundef %7950) #12
  %7952 = call ptr @__errno_location() #13
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7941, ptr noundef @.str.4, i32 noundef %7942, ptr noundef @.str.128, ptr noundef @.str.2, i32 noundef 441, ptr noundef %7945, ptr noundef %7948, ptr noundef %7951, i32 noundef %7953) #12
  br label %7955

7955:                                             ; preds = %7938, %7921
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #12
  br label %7956

7956:                                             ; preds = %7955
  br label %7957

7957:                                             ; preds = %7956
  call void @exit(i32 noundef 1) #14
  unreachable

7958:                                             ; No predecessors!
  br label %7959

7959:                                             ; preds = %7958
  br label %7960

7960:                                             ; preds = %7959, %7901
  br label %7961

7961:                                             ; preds = %7960
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

7963:                                             ; preds = %7962
  %7964 = load i32, ptr @test_count, align 4, !tbaa !5
  %7965 = add nsw i32 %7964, 1
  store i32 %7965, ptr @test_count, align 4, !tbaa !5
  %7966 = load ptr, ptr %142, align 8, !tbaa !9
  %7967 = call i32 @s2n_client_hello_send(ptr noundef %7966)
  %7968 = icmp eq i32 %7967, -1
  br i1 %7968, label %7969, label %8022

7969:                                             ; preds = %7963
  br label %7970

7970:                                             ; preds = %7969
  br label %7971

7971:                                             ; preds = %7970
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #12
  %7972 = call ptr @__errno_location() #13
  %7973 = load i32, ptr %7972, align 4, !tbaa !5
  store i32 %7973, ptr %171, align 4, !tbaa !5
  %7974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7975 = call i32 @s2n_print_stacktrace(ptr noundef %7974)
  %7976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7977 = trunc i8 %7976 to i1
  br i1 %7977, label %7978, label %8000

7978:                                             ; preds = %7971
  %7979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7980 = call i32 @fileno(ptr noundef %7979) #12
  %7981 = call i32 @isatty(i32 noundef %7980) #12
  %7982 = icmp ne i32 %7981, 0
  br i1 %7982, label %7983, label %8000

7983:                                             ; preds = %7978
  %7984 = load i32, ptr %171, align 4, !tbaa !5
  %7985 = call ptr @__errno_location() #13
  store i32 %7984, ptr %7985, align 4, !tbaa !5
  %7986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7987 = load i32, ptr @test_count, align 4, !tbaa !5
  %7988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7989 = load i32, ptr %7988, align 4, !tbaa !5
  %7990 = call ptr @s2n_strerror(i32 noundef %7989, ptr noundef @.str.3)
  %7991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7992 = load i32, ptr %7991, align 4, !tbaa !5
  %7993 = call ptr @s2n_strerror_debug(i32 noundef %7992, ptr noundef @.str.3)
  %7994 = call ptr @__errno_location() #13
  %7995 = load i32, ptr %7994, align 4, !tbaa !5
  %7996 = call ptr @strerror(i32 noundef %7995) #12
  %7997 = call ptr @__errno_location() #13
  %7998 = load i32, ptr %7997, align 4, !tbaa !5
  %7999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7986, ptr noundef @.str, i32 noundef %7987, ptr noundef @.str.120, ptr noundef @.str.2, i32 noundef 444, ptr noundef %7990, ptr noundef %7993, ptr noundef %7996, i32 noundef %7998) #12
  br label %8017

8000:                                             ; preds = %7978, %7971
  %8001 = load i32, ptr %171, align 4, !tbaa !5
  %8002 = call ptr @__errno_location() #13
  store i32 %8001, ptr %8002, align 4, !tbaa !5
  %8003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8004 = load i32, ptr @test_count, align 4, !tbaa !5
  %8005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8006 = load i32, ptr %8005, align 4, !tbaa !5
  %8007 = call ptr @s2n_strerror(i32 noundef %8006, ptr noundef @.str.3)
  %8008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8009 = load i32, ptr %8008, align 4, !tbaa !5
  %8010 = call ptr @s2n_strerror_debug(i32 noundef %8009, ptr noundef @.str.3)
  %8011 = call ptr @__errno_location() #13
  %8012 = load i32, ptr %8011, align 4, !tbaa !5
  %8013 = call ptr @strerror(i32 noundef %8012) #12
  %8014 = call ptr @__errno_location() #13
  %8015 = load i32, ptr %8014, align 4, !tbaa !5
  %8016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8003, ptr noundef @.str.4, i32 noundef %8004, ptr noundef @.str.120, ptr noundef @.str.2, i32 noundef 444, ptr noundef %8007, ptr noundef %8010, ptr noundef %8013, i32 noundef %8015) #12
  br label %8017

8017:                                             ; preds = %8000, %7983
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #12
  br label %8018

8018:                                             ; preds = %8017
  br label %8019

8019:                                             ; preds = %8018
  call void @exit(i32 noundef 1) #14
  unreachable

8020:                                             ; No predecessors!
  br label %8021

8021:                                             ; preds = %8020
  br label %8022

8022:                                             ; preds = %8021, %7963
  br label %8023

8023:                                             ; preds = %8022
  br label %8024

8024:                                             ; preds = %8023
  br label %8025

8025:                                             ; preds = %8024
  %8026 = load i32, ptr @test_count, align 4, !tbaa !5
  %8027 = add nsw i32 %8026, 1
  store i32 %8027, ptr @test_count, align 4, !tbaa !5
  %8028 = load ptr, ptr %141, align 8, !tbaa !9
  %8029 = getelementptr inbounds %struct.s2n_connection, ptr %8028, i32 0, i32 52
  %8030 = getelementptr inbounds %struct.s2n_handshake, ptr %8029, i32 0, i32 0
  %8031 = call i32 @s2n_stuffer_wipe(ptr noundef %8030)
  %8032 = icmp eq i32 %8031, -1
  br i1 %8032, label %8033, label %8086

8033:                                             ; preds = %8025
  br label %8034

8034:                                             ; preds = %8033
  br label %8035

8035:                                             ; preds = %8034
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #12
  %8036 = call ptr @__errno_location() #13
  %8037 = load i32, ptr %8036, align 4, !tbaa !5
  store i32 %8037, ptr %172, align 4, !tbaa !5
  %8038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8039 = call i32 @s2n_print_stacktrace(ptr noundef %8038)
  %8040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8041 = trunc i8 %8040 to i1
  br i1 %8041, label %8042, label %8064

8042:                                             ; preds = %8035
  %8043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8044 = call i32 @fileno(ptr noundef %8043) #12
  %8045 = call i32 @isatty(i32 noundef %8044) #12
  %8046 = icmp ne i32 %8045, 0
  br i1 %8046, label %8047, label %8064

8047:                                             ; preds = %8042
  %8048 = load i32, ptr %172, align 4, !tbaa !5
  %8049 = call ptr @__errno_location() #13
  store i32 %8048, ptr %8049, align 4, !tbaa !5
  %8050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8051 = load i32, ptr @test_count, align 4, !tbaa !5
  %8052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8053 = load i32, ptr %8052, align 4, !tbaa !5
  %8054 = call ptr @s2n_strerror(i32 noundef %8053, ptr noundef @.str.3)
  %8055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8056 = load i32, ptr %8055, align 4, !tbaa !5
  %8057 = call ptr @s2n_strerror_debug(i32 noundef %8056, ptr noundef @.str.3)
  %8058 = call ptr @__errno_location() #13
  %8059 = load i32, ptr %8058, align 4, !tbaa !5
  %8060 = call ptr @strerror(i32 noundef %8059) #12
  %8061 = call ptr @__errno_location() #13
  %8062 = load i32, ptr %8061, align 4, !tbaa !5
  %8063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8050, ptr noundef @.str, i32 noundef %8051, ptr noundef @.str.129, ptr noundef @.str.2, i32 noundef 445, ptr noundef %8054, ptr noundef %8057, ptr noundef %8060, i32 noundef %8062) #12
  br label %8081

8064:                                             ; preds = %8042, %8035
  %8065 = load i32, ptr %172, align 4, !tbaa !5
  %8066 = call ptr @__errno_location() #13
  store i32 %8065, ptr %8066, align 4, !tbaa !5
  %8067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8068 = load i32, ptr @test_count, align 4, !tbaa !5
  %8069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8070 = load i32, ptr %8069, align 4, !tbaa !5
  %8071 = call ptr @s2n_strerror(i32 noundef %8070, ptr noundef @.str.3)
  %8072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8073 = load i32, ptr %8072, align 4, !tbaa !5
  %8074 = call ptr @s2n_strerror_debug(i32 noundef %8073, ptr noundef @.str.3)
  %8075 = call ptr @__errno_location() #13
  %8076 = load i32, ptr %8075, align 4, !tbaa !5
  %8077 = call ptr @strerror(i32 noundef %8076) #12
  %8078 = call ptr @__errno_location() #13
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  %8080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8067, ptr noundef @.str.4, i32 noundef %8068, ptr noundef @.str.129, ptr noundef @.str.2, i32 noundef 445, ptr noundef %8071, ptr noundef %8074, ptr noundef %8077, i32 noundef %8079) #12
  br label %8081

8081:                                             ; preds = %8064, %8047
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #12
  br label %8082

8082:                                             ; preds = %8081
  br label %8083

8083:                                             ; preds = %8082
  call void @exit(i32 noundef 1) #14
  unreachable

8084:                                             ; No predecessors!
  br label %8085

8085:                                             ; preds = %8084
  br label %8086

8086:                                             ; preds = %8085, %8025
  br label %8087

8087:                                             ; preds = %8086
  br label %8088

8088:                                             ; preds = %8087
  br label %8089

8089:                                             ; preds = %8088
  %8090 = load i32, ptr @test_count, align 4, !tbaa !5
  %8091 = add nsw i32 %8090, 1
  store i32 %8091, ptr @test_count, align 4, !tbaa !5
  %8092 = load ptr, ptr %142, align 8, !tbaa !9
  %8093 = getelementptr inbounds %struct.s2n_connection, ptr %8092, i32 0, i32 52
  %8094 = getelementptr inbounds %struct.s2n_handshake, ptr %8093, i32 0, i32 0
  %8095 = load ptr, ptr %141, align 8, !tbaa !9
  %8096 = getelementptr inbounds %struct.s2n_connection, ptr %8095, i32 0, i32 52
  %8097 = getelementptr inbounds %struct.s2n_handshake, ptr %8096, i32 0, i32 0
  %8098 = load ptr, ptr %142, align 8, !tbaa !9
  %8099 = getelementptr inbounds %struct.s2n_connection, ptr %8098, i32 0, i32 52
  %8100 = getelementptr inbounds %struct.s2n_handshake, ptr %8099, i32 0, i32 0
  %8101 = getelementptr inbounds %struct.s2n_stuffer, ptr %8100, i32 0, i32 2
  %8102 = load i32, ptr %8101, align 4, !tbaa !67
  %8103 = load ptr, ptr %142, align 8, !tbaa !9
  %8104 = getelementptr inbounds %struct.s2n_connection, ptr %8103, i32 0, i32 52
  %8105 = getelementptr inbounds %struct.s2n_handshake, ptr %8104, i32 0, i32 0
  %8106 = getelementptr inbounds %struct.s2n_stuffer, ptr %8105, i32 0, i32 1
  %8107 = load i32, ptr %8106, align 8, !tbaa !68
  %8108 = sub i32 %8102, %8107
  %8109 = call i32 @s2n_stuffer_copy(ptr noundef %8094, ptr noundef %8097, i32 noundef %8108)
  %8110 = icmp eq i32 %8109, -1
  br i1 %8110, label %8111, label %8164

8111:                                             ; preds = %8089
  br label %8112

8112:                                             ; preds = %8111
  br label %8113

8113:                                             ; preds = %8112
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #12
  %8114 = call ptr @__errno_location() #13
  %8115 = load i32, ptr %8114, align 4, !tbaa !5
  store i32 %8115, ptr %173, align 4, !tbaa !5
  %8116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8117 = call i32 @s2n_print_stacktrace(ptr noundef %8116)
  %8118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8119 = trunc i8 %8118 to i1
  br i1 %8119, label %8120, label %8142

8120:                                             ; preds = %8113
  %8121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8122 = call i32 @fileno(ptr noundef %8121) #12
  %8123 = call i32 @isatty(i32 noundef %8122) #12
  %8124 = icmp ne i32 %8123, 0
  br i1 %8124, label %8125, label %8142

8125:                                             ; preds = %8120
  %8126 = load i32, ptr %173, align 4, !tbaa !5
  %8127 = call ptr @__errno_location() #13
  store i32 %8126, ptr %8127, align 4, !tbaa !5
  %8128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8129 = load i32, ptr @test_count, align 4, !tbaa !5
  %8130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8131 = load i32, ptr %8130, align 4, !tbaa !5
  %8132 = call ptr @s2n_strerror(i32 noundef %8131, ptr noundef @.str.3)
  %8133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8134 = load i32, ptr %8133, align 4, !tbaa !5
  %8135 = call ptr @s2n_strerror_debug(i32 noundef %8134, ptr noundef @.str.3)
  %8136 = call ptr @__errno_location() #13
  %8137 = load i32, ptr %8136, align 4, !tbaa !5
  %8138 = call ptr @strerror(i32 noundef %8137) #12
  %8139 = call ptr @__errno_location() #13
  %8140 = load i32, ptr %8139, align 4, !tbaa !5
  %8141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8128, ptr noundef @.str, i32 noundef %8129, ptr noundef @.str.121, ptr noundef @.str.2, i32 noundef 447, ptr noundef %8132, ptr noundef %8135, ptr noundef %8138, i32 noundef %8140) #12
  br label %8159

8142:                                             ; preds = %8120, %8113
  %8143 = load i32, ptr %173, align 4, !tbaa !5
  %8144 = call ptr @__errno_location() #13
  store i32 %8143, ptr %8144, align 4, !tbaa !5
  %8145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8146 = load i32, ptr @test_count, align 4, !tbaa !5
  %8147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8148 = load i32, ptr %8147, align 4, !tbaa !5
  %8149 = call ptr @s2n_strerror(i32 noundef %8148, ptr noundef @.str.3)
  %8150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  %8152 = call ptr @s2n_strerror_debug(i32 noundef %8151, ptr noundef @.str.3)
  %8153 = call ptr @__errno_location() #13
  %8154 = load i32, ptr %8153, align 4, !tbaa !5
  %8155 = call ptr @strerror(i32 noundef %8154) #12
  %8156 = call ptr @__errno_location() #13
  %8157 = load i32, ptr %8156, align 4, !tbaa !5
  %8158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8145, ptr noundef @.str.4, i32 noundef %8146, ptr noundef @.str.121, ptr noundef @.str.2, i32 noundef 447, ptr noundef %8149, ptr noundef %8152, ptr noundef %8155, i32 noundef %8157) #12
  br label %8159

8159:                                             ; preds = %8142, %8125
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #12
  br label %8160

8160:                                             ; preds = %8159
  br label %8161

8161:                                             ; preds = %8160
  call void @exit(i32 noundef 1) #14
  unreachable

8162:                                             ; No predecessors!
  br label %8163

8163:                                             ; preds = %8162
  br label %8164

8164:                                             ; preds = %8163, %8089
  br label %8165

8165:                                             ; preds = %8164
  br label %8166

8166:                                             ; preds = %8165
  br label %8167

8167:                                             ; preds = %8166
  %8168 = load i32, ptr @test_count, align 4, !tbaa !5
  %8169 = add nsw i32 %8168, 1
  store i32 %8169, ptr @test_count, align 4, !tbaa !5
  %8170 = load ptr, ptr %141, align 8, !tbaa !9
  %8171 = call i32 @s2n_client_hello_recv(ptr noundef %8170)
  %8172 = icmp eq i32 %8171, -1
  br i1 %8172, label %8173, label %8226

8173:                                             ; preds = %8167
  br label %8174

8174:                                             ; preds = %8173
  br label %8175

8175:                                             ; preds = %8174
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #12
  %8176 = call ptr @__errno_location() #13
  %8177 = load i32, ptr %8176, align 4, !tbaa !5
  store i32 %8177, ptr %174, align 4, !tbaa !5
  %8178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8179 = call i32 @s2n_print_stacktrace(ptr noundef %8178)
  %8180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8181 = trunc i8 %8180 to i1
  br i1 %8181, label %8182, label %8204

8182:                                             ; preds = %8175
  %8183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8184 = call i32 @fileno(ptr noundef %8183) #12
  %8185 = call i32 @isatty(i32 noundef %8184) #12
  %8186 = icmp ne i32 %8185, 0
  br i1 %8186, label %8187, label %8204

8187:                                             ; preds = %8182
  %8188 = load i32, ptr %174, align 4, !tbaa !5
  %8189 = call ptr @__errno_location() #13
  store i32 %8188, ptr %8189, align 4, !tbaa !5
  %8190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8191 = load i32, ptr @test_count, align 4, !tbaa !5
  %8192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8193 = load i32, ptr %8192, align 4, !tbaa !5
  %8194 = call ptr @s2n_strerror(i32 noundef %8193, ptr noundef @.str.3)
  %8195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8196 = load i32, ptr %8195, align 4, !tbaa !5
  %8197 = call ptr @s2n_strerror_debug(i32 noundef %8196, ptr noundef @.str.3)
  %8198 = call ptr @__errno_location() #13
  %8199 = load i32, ptr %8198, align 4, !tbaa !5
  %8200 = call ptr @strerror(i32 noundef %8199) #12
  %8201 = call ptr @__errno_location() #13
  %8202 = load i32, ptr %8201, align 4, !tbaa !5
  %8203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8190, ptr noundef @.str, i32 noundef %8191, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 450, ptr noundef %8194, ptr noundef %8197, ptr noundef %8200, i32 noundef %8202) #12
  br label %8221

8204:                                             ; preds = %8182, %8175
  %8205 = load i32, ptr %174, align 4, !tbaa !5
  %8206 = call ptr @__errno_location() #13
  store i32 %8205, ptr %8206, align 4, !tbaa !5
  %8207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8208 = load i32, ptr @test_count, align 4, !tbaa !5
  %8209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror(i32 noundef %8210, ptr noundef @.str.3)
  %8212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @s2n_strerror_debug(i32 noundef %8213, ptr noundef @.str.3)
  %8215 = call ptr @__errno_location() #13
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call ptr @strerror(i32 noundef %8216) #12
  %8218 = call ptr @__errno_location() #13
  %8219 = load i32, ptr %8218, align 4, !tbaa !5
  %8220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8207, ptr noundef @.str.4, i32 noundef %8208, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 450, ptr noundef %8211, ptr noundef %8214, ptr noundef %8217, i32 noundef %8219) #12
  br label %8221

8221:                                             ; preds = %8204, %8187
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #12
  br label %8222

8222:                                             ; preds = %8221
  br label %8223

8223:                                             ; preds = %8222
  call void @exit(i32 noundef 1) #14
  unreachable

8224:                                             ; No predecessors!
  br label %8225

8225:                                             ; preds = %8224
  br label %8226

8226:                                             ; preds = %8225, %8167
  br label %8227

8227:                                             ; preds = %8226
  br label %8228

8228:                                             ; preds = %8227
  br label %8229

8229:                                             ; preds = %8228
  %8230 = load i32, ptr @test_count, align 4, !tbaa !5
  %8231 = add nsw i32 %8230, 1
  store i32 %8231, ptr @test_count, align 4, !tbaa !5
  %8232 = getelementptr inbounds %struct.client_hello_context, ptr %155, i32 0, i32 0
  %8233 = load i32, ptr %8232, align 4, !tbaa !69
  %8234 = icmp eq i32 %8233, 1
  br i1 %8234, label %8288, label %8235

8235:                                             ; preds = %8229
  br label %8236

8236:                                             ; preds = %8235
  br label %8237

8237:                                             ; preds = %8236
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #12
  %8238 = call ptr @__errno_location() #13
  %8239 = load i32, ptr %8238, align 4, !tbaa !5
  store i32 %8239, ptr %175, align 4, !tbaa !5
  %8240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8241 = call i32 @s2n_print_stacktrace(ptr noundef %8240)
  %8242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8243 = trunc i8 %8242 to i1
  br i1 %8243, label %8244, label %8266

8244:                                             ; preds = %8237
  %8245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8246 = call i32 @fileno(ptr noundef %8245) #12
  %8247 = call i32 @isatty(i32 noundef %8246) #12
  %8248 = icmp ne i32 %8247, 0
  br i1 %8248, label %8249, label %8266

8249:                                             ; preds = %8244
  %8250 = load i32, ptr %175, align 4, !tbaa !5
  %8251 = call ptr @__errno_location() #13
  store i32 %8250, ptr %8251, align 4, !tbaa !5
  %8252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8253 = load i32, ptr @test_count, align 4, !tbaa !5
  %8254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8255 = load i32, ptr %8254, align 4, !tbaa !5
  %8256 = call ptr @s2n_strerror(i32 noundef %8255, ptr noundef @.str.3)
  %8257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8258 = load i32, ptr %8257, align 4, !tbaa !5
  %8259 = call ptr @s2n_strerror_debug(i32 noundef %8258, ptr noundef @.str.3)
  %8260 = call ptr @__errno_location() #13
  %8261 = load i32, ptr %8260, align 4, !tbaa !5
  %8262 = call ptr @strerror(i32 noundef %8261) #12
  %8263 = call ptr @__errno_location() #13
  %8264 = load i32, ptr %8263, align 4, !tbaa !5
  %8265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8252, ptr noundef @.str, i32 noundef %8253, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 451, ptr noundef %8256, ptr noundef %8259, ptr noundef %8262, i32 noundef %8264) #12
  br label %8283

8266:                                             ; preds = %8244, %8237
  %8267 = load i32, ptr %175, align 4, !tbaa !5
  %8268 = call ptr @__errno_location() #13
  store i32 %8267, ptr %8268, align 4, !tbaa !5
  %8269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8270 = load i32, ptr @test_count, align 4, !tbaa !5
  %8271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8272 = load i32, ptr %8271, align 4, !tbaa !5
  %8273 = call ptr @s2n_strerror(i32 noundef %8272, ptr noundef @.str.3)
  %8274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8275 = load i32, ptr %8274, align 4, !tbaa !5
  %8276 = call ptr @s2n_strerror_debug(i32 noundef %8275, ptr noundef @.str.3)
  %8277 = call ptr @__errno_location() #13
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @strerror(i32 noundef %8278) #12
  %8280 = call ptr @__errno_location() #13
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8269, ptr noundef @.str.4, i32 noundef %8270, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 451, ptr noundef %8273, ptr noundef %8276, ptr noundef %8279, i32 noundef %8281) #12
  br label %8283

8283:                                             ; preds = %8266, %8249
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #12
  br label %8284

8284:                                             ; preds = %8283
  br label %8285

8285:                                             ; preds = %8284
  call void @exit(i32 noundef 1) #14
  unreachable

8286:                                             ; No predecessors!
  br label %8287

8287:                                             ; preds = %8286
  br label %8288

8288:                                             ; preds = %8287, %8229
  br label %8289

8289:                                             ; preds = %8288
  br label %8290

8290:                                             ; preds = %8289
  br label %8291

8291:                                             ; preds = %8290
  %8292 = load i32, ptr @test_count, align 4, !tbaa !5
  %8293 = add nsw i32 %8292, 1
  store i32 %8293, ptr @test_count, align 4, !tbaa !5
  %8294 = load ptr, ptr %141, align 8, !tbaa !9
  %8295 = call i32 @s2n_connection_free(ptr noundef %8294)
  %8296 = icmp eq i32 %8295, -1
  br i1 %8296, label %8297, label %8350

8297:                                             ; preds = %8291
  br label %8298

8298:                                             ; preds = %8297
  br label %8299

8299:                                             ; preds = %8298
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #12
  %8300 = call ptr @__errno_location() #13
  %8301 = load i32, ptr %8300, align 4, !tbaa !5
  store i32 %8301, ptr %176, align 4, !tbaa !5
  %8302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8303 = call i32 @s2n_print_stacktrace(ptr noundef %8302)
  %8304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8305 = trunc i8 %8304 to i1
  br i1 %8305, label %8306, label %8328

8306:                                             ; preds = %8299
  %8307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8308 = call i32 @fileno(ptr noundef %8307) #12
  %8309 = call i32 @isatty(i32 noundef %8308) #12
  %8310 = icmp ne i32 %8309, 0
  br i1 %8310, label %8311, label %8328

8311:                                             ; preds = %8306
  %8312 = load i32, ptr %176, align 4, !tbaa !5
  %8313 = call ptr @__errno_location() #13
  store i32 %8312, ptr %8313, align 4, !tbaa !5
  %8314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8315 = load i32, ptr @test_count, align 4, !tbaa !5
  %8316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8317 = load i32, ptr %8316, align 4, !tbaa !5
  %8318 = call ptr @s2n_strerror(i32 noundef %8317, ptr noundef @.str.3)
  %8319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8320 = load i32, ptr %8319, align 4, !tbaa !5
  %8321 = call ptr @s2n_strerror_debug(i32 noundef %8320, ptr noundef @.str.3)
  %8322 = call ptr @__errno_location() #13
  %8323 = load i32, ptr %8322, align 4, !tbaa !5
  %8324 = call ptr @strerror(i32 noundef %8323) #12
  %8325 = call ptr @__errno_location() #13
  %8326 = load i32, ptr %8325, align 4, !tbaa !5
  %8327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8314, ptr noundef @.str, i32 noundef %8315, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 453, ptr noundef %8318, ptr noundef %8321, ptr noundef %8324, i32 noundef %8326) #12
  br label %8345

8328:                                             ; preds = %8306, %8299
  %8329 = load i32, ptr %176, align 4, !tbaa !5
  %8330 = call ptr @__errno_location() #13
  store i32 %8329, ptr %8330, align 4, !tbaa !5
  %8331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8332 = load i32, ptr @test_count, align 4, !tbaa !5
  %8333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8334 = load i32, ptr %8333, align 4, !tbaa !5
  %8335 = call ptr @s2n_strerror(i32 noundef %8334, ptr noundef @.str.3)
  %8336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8337 = load i32, ptr %8336, align 4, !tbaa !5
  %8338 = call ptr @s2n_strerror_debug(i32 noundef %8337, ptr noundef @.str.3)
  %8339 = call ptr @__errno_location() #13
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @strerror(i32 noundef %8340) #12
  %8342 = call ptr @__errno_location() #13
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8331, ptr noundef @.str.4, i32 noundef %8332, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 453, ptr noundef %8335, ptr noundef %8338, ptr noundef %8341, i32 noundef %8343) #12
  br label %8345

8345:                                             ; preds = %8328, %8311
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #12
  br label %8346

8346:                                             ; preds = %8345
  br label %8347

8347:                                             ; preds = %8346
  call void @exit(i32 noundef 1) #14
  unreachable

8348:                                             ; No predecessors!
  br label %8349

8349:                                             ; preds = %8348
  br label %8350

8350:                                             ; preds = %8349, %8291
  br label %8351

8351:                                             ; preds = %8350
  br label %8352

8352:                                             ; preds = %8351
  br label %8353

8353:                                             ; preds = %8352
  %8354 = load i32, ptr @test_count, align 4, !tbaa !5
  %8355 = add nsw i32 %8354, 1
  store i32 %8355, ptr @test_count, align 4, !tbaa !5
  %8356 = load ptr, ptr %142, align 8, !tbaa !9
  %8357 = call i32 @s2n_connection_free(ptr noundef %8356)
  %8358 = icmp eq i32 %8357, -1
  br i1 %8358, label %8359, label %8412

8359:                                             ; preds = %8353
  br label %8360

8360:                                             ; preds = %8359
  br label %8361

8361:                                             ; preds = %8360
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #12
  %8362 = call ptr @__errno_location() #13
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  store i32 %8363, ptr %177, align 4, !tbaa !5
  %8364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8365 = call i32 @s2n_print_stacktrace(ptr noundef %8364)
  %8366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8367 = trunc i8 %8366 to i1
  br i1 %8367, label %8368, label %8390

8368:                                             ; preds = %8361
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = call i32 @fileno(ptr noundef %8369) #12
  %8371 = call i32 @isatty(i32 noundef %8370) #12
  %8372 = icmp ne i32 %8371, 0
  br i1 %8372, label %8373, label %8390

8373:                                             ; preds = %8368
  %8374 = load i32, ptr %177, align 4, !tbaa !5
  %8375 = call ptr @__errno_location() #13
  store i32 %8374, ptr %8375, align 4, !tbaa !5
  %8376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8377 = load i32, ptr @test_count, align 4, !tbaa !5
  %8378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call ptr @s2n_strerror(i32 noundef %8379, ptr noundef @.str.3)
  %8381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call ptr @s2n_strerror_debug(i32 noundef %8382, ptr noundef @.str.3)
  %8384 = call ptr @__errno_location() #13
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call ptr @strerror(i32 noundef %8385) #12
  %8387 = call ptr @__errno_location() #13
  %8388 = load i32, ptr %8387, align 4, !tbaa !5
  %8389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8376, ptr noundef @.str, i32 noundef %8377, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 454, ptr noundef %8380, ptr noundef %8383, ptr noundef %8386, i32 noundef %8388) #12
  br label %8407

8390:                                             ; preds = %8368, %8361
  %8391 = load i32, ptr %177, align 4, !tbaa !5
  %8392 = call ptr @__errno_location() #13
  store i32 %8391, ptr %8392, align 4, !tbaa !5
  %8393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8394 = load i32, ptr @test_count, align 4, !tbaa !5
  %8395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call ptr @s2n_strerror(i32 noundef %8396, ptr noundef @.str.3)
  %8398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @s2n_strerror_debug(i32 noundef %8399, ptr noundef @.str.3)
  %8401 = call ptr @__errno_location() #13
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @strerror(i32 noundef %8402) #12
  %8404 = call ptr @__errno_location() #13
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8393, ptr noundef @.str.4, i32 noundef %8394, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 454, ptr noundef %8397, ptr noundef %8400, ptr noundef %8403, i32 noundef %8405) #12
  br label %8407

8407:                                             ; preds = %8390, %8373
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #12
  br label %8408

8408:                                             ; preds = %8407
  br label %8409

8409:                                             ; preds = %8408
  call void @exit(i32 noundef 1) #14
  unreachable

8410:                                             ; No predecessors!
  br label %8411

8411:                                             ; preds = %8410
  br label %8412

8412:                                             ; preds = %8411, %8353
  br label %8413

8413:                                             ; preds = %8412
  br label %8414

8414:                                             ; preds = %8413
  br label %8415

8415:                                             ; preds = %8414
  %8416 = load i32, ptr @test_count, align 4, !tbaa !5
  %8417 = add nsw i32 %8416, 1
  store i32 %8417, ptr @test_count, align 4, !tbaa !5
  %8418 = load ptr, ptr %140, align 8, !tbaa !9
  %8419 = call i32 @s2n_config_free(ptr noundef %8418)
  %8420 = icmp eq i32 %8419, -1
  br i1 %8420, label %8421, label %8474

8421:                                             ; preds = %8415
  br label %8422

8422:                                             ; preds = %8421
  br label %8423

8423:                                             ; preds = %8422
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #12
  %8424 = call ptr @__errno_location() #13
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  store i32 %8425, ptr %178, align 4, !tbaa !5
  %8426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8427 = call i32 @s2n_print_stacktrace(ptr noundef %8426)
  %8428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8429 = trunc i8 %8428 to i1
  br i1 %8429, label %8430, label %8452

8430:                                             ; preds = %8423
  %8431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8432 = call i32 @fileno(ptr noundef %8431) #12
  %8433 = call i32 @isatty(i32 noundef %8432) #12
  %8434 = icmp ne i32 %8433, 0
  br i1 %8434, label %8435, label %8452

8435:                                             ; preds = %8430
  %8436 = load i32, ptr %178, align 4, !tbaa !5
  %8437 = call ptr @__errno_location() #13
  store i32 %8436, ptr %8437, align 4, !tbaa !5
  %8438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8441 = load i32, ptr %8440, align 4, !tbaa !5
  %8442 = call ptr @s2n_strerror(i32 noundef %8441, ptr noundef @.str.3)
  %8443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8444 = load i32, ptr %8443, align 4, !tbaa !5
  %8445 = call ptr @s2n_strerror_debug(i32 noundef %8444, ptr noundef @.str.3)
  %8446 = call ptr @__errno_location() #13
  %8447 = load i32, ptr %8446, align 4, !tbaa !5
  %8448 = call ptr @strerror(i32 noundef %8447) #12
  %8449 = call ptr @__errno_location() #13
  %8450 = load i32, ptr %8449, align 4, !tbaa !5
  %8451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8438, ptr noundef @.str, i32 noundef %8439, ptr noundef @.str.130, ptr noundef @.str.2, i32 noundef 455, ptr noundef %8442, ptr noundef %8445, ptr noundef %8448, i32 noundef %8450) #12
  br label %8469

8452:                                             ; preds = %8430, %8423
  %8453 = load i32, ptr %178, align 4, !tbaa !5
  %8454 = call ptr @__errno_location() #13
  store i32 %8453, ptr %8454, align 4, !tbaa !5
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = load i32, ptr @test_count, align 4, !tbaa !5
  %8457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8458 = load i32, ptr %8457, align 4, !tbaa !5
  %8459 = call ptr @s2n_strerror(i32 noundef %8458, ptr noundef @.str.3)
  %8460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8461 = load i32, ptr %8460, align 4, !tbaa !5
  %8462 = call ptr @s2n_strerror_debug(i32 noundef %8461, ptr noundef @.str.3)
  %8463 = call ptr @__errno_location() #13
  %8464 = load i32, ptr %8463, align 4, !tbaa !5
  %8465 = call ptr @strerror(i32 noundef %8464) #12
  %8466 = call ptr @__errno_location() #13
  %8467 = load i32, ptr %8466, align 4, !tbaa !5
  %8468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8455, ptr noundef @.str.4, i32 noundef %8456, ptr noundef @.str.130, ptr noundef @.str.2, i32 noundef 455, ptr noundef %8459, ptr noundef %8462, ptr noundef %8465, i32 noundef %8467) #12
  br label %8469

8469:                                             ; preds = %8452, %8435
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #12
  br label %8470

8470:                                             ; preds = %8469
  br label %8471

8471:                                             ; preds = %8470
  call void @exit(i32 noundef 1) #14
  unreachable

8472:                                             ; No predecessors!
  br label %8473

8473:                                             ; preds = %8472
  br label %8474

8474:                                             ; preds = %8473, %8415
  br label %8475

8475:                                             ; preds = %8474
  br label %8476

8476:                                             ; preds = %8475
  br label %8477

8477:                                             ; preds = %8476
  %8478 = load i32, ptr @test_count, align 4, !tbaa !5
  %8479 = add nsw i32 %8478, 1
  store i32 %8479, ptr @test_count, align 4, !tbaa !5
  %8480 = load ptr, ptr %139, align 8, !tbaa !9
  %8481 = call i32 @s2n_config_free(ptr noundef %8480)
  %8482 = icmp eq i32 %8481, -1
  br i1 %8482, label %8483, label %8536

8483:                                             ; preds = %8477
  br label %8484

8484:                                             ; preds = %8483
  br label %8485

8485:                                             ; preds = %8484
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #12
  %8486 = call ptr @__errno_location() #13
  %8487 = load i32, ptr %8486, align 4, !tbaa !5
  store i32 %8487, ptr %179, align 4, !tbaa !5
  %8488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8489 = call i32 @s2n_print_stacktrace(ptr noundef %8488)
  %8490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8491 = trunc i8 %8490 to i1
  br i1 %8491, label %8492, label %8514

8492:                                             ; preds = %8485
  %8493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8494 = call i32 @fileno(ptr noundef %8493) #12
  %8495 = call i32 @isatty(i32 noundef %8494) #12
  %8496 = icmp ne i32 %8495, 0
  br i1 %8496, label %8497, label %8514

8497:                                             ; preds = %8492
  %8498 = load i32, ptr %179, align 4, !tbaa !5
  %8499 = call ptr @__errno_location() #13
  store i32 %8498, ptr %8499, align 4, !tbaa !5
  %8500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8501 = load i32, ptr @test_count, align 4, !tbaa !5
  %8502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8503 = load i32, ptr %8502, align 4, !tbaa !5
  %8504 = call ptr @s2n_strerror(i32 noundef %8503, ptr noundef @.str.3)
  %8505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  %8507 = call ptr @s2n_strerror_debug(i32 noundef %8506, ptr noundef @.str.3)
  %8508 = call ptr @__errno_location() #13
  %8509 = load i32, ptr %8508, align 4, !tbaa !5
  %8510 = call ptr @strerror(i32 noundef %8509) #12
  %8511 = call ptr @__errno_location() #13
  %8512 = load i32, ptr %8511, align 4, !tbaa !5
  %8513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8500, ptr noundef @.str, i32 noundef %8501, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 456, ptr noundef %8504, ptr noundef %8507, ptr noundef %8510, i32 noundef %8512) #12
  br label %8531

8514:                                             ; preds = %8492, %8485
  %8515 = load i32, ptr %179, align 4, !tbaa !5
  %8516 = call ptr @__errno_location() #13
  store i32 %8515, ptr %8516, align 4, !tbaa !5
  %8517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8518 = load i32, ptr @test_count, align 4, !tbaa !5
  %8519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  %8521 = call ptr @s2n_strerror(i32 noundef %8520, ptr noundef @.str.3)
  %8522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8523 = load i32, ptr %8522, align 4, !tbaa !5
  %8524 = call ptr @s2n_strerror_debug(i32 noundef %8523, ptr noundef @.str.3)
  %8525 = call ptr @__errno_location() #13
  %8526 = load i32, ptr %8525, align 4, !tbaa !5
  %8527 = call ptr @strerror(i32 noundef %8526) #12
  %8528 = call ptr @__errno_location() #13
  %8529 = load i32, ptr %8528, align 4, !tbaa !5
  %8530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8517, ptr noundef @.str.4, i32 noundef %8518, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 456, ptr noundef %8521, ptr noundef %8524, ptr noundef %8527, i32 noundef %8529) #12
  br label %8531

8531:                                             ; preds = %8514, %8497
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #12
  br label %8532

8532:                                             ; preds = %8531
  br label %8533

8533:                                             ; preds = %8532
  call void @exit(i32 noundef 1) #14
  unreachable

8534:                                             ; No predecessors!
  br label %8535

8535:                                             ; preds = %8534
  br label %8536

8536:                                             ; preds = %8535, %8477
  br label %8537

8537:                                             ; preds = %8536
  br label %8538

8538:                                             ; preds = %8537
  br label %8539

8539:                                             ; preds = %8538
  %8540 = load i32, ptr @test_count, align 4, !tbaa !5
  %8541 = add nsw i32 %8540, 1
  store i32 %8541, ptr @test_count, align 4, !tbaa !5
  %8542 = load ptr, ptr %143, align 8, !tbaa !9
  %8543 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %8542)
  %8544 = icmp eq i32 %8543, -1
  br i1 %8544, label %8545, label %8598

8545:                                             ; preds = %8539
  br label %8546

8546:                                             ; preds = %8545
  br label %8547

8547:                                             ; preds = %8546
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #12
  %8548 = call ptr @__errno_location() #13
  %8549 = load i32, ptr %8548, align 4, !tbaa !5
  store i32 %8549, ptr %180, align 4, !tbaa !5
  %8550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8551 = call i32 @s2n_print_stacktrace(ptr noundef %8550)
  %8552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8553 = trunc i8 %8552 to i1
  br i1 %8553, label %8554, label %8576

8554:                                             ; preds = %8547
  %8555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8556 = call i32 @fileno(ptr noundef %8555) #12
  %8557 = call i32 @isatty(i32 noundef %8556) #12
  %8558 = icmp ne i32 %8557, 0
  br i1 %8558, label %8559, label %8576

8559:                                             ; preds = %8554
  %8560 = load i32, ptr %180, align 4, !tbaa !5
  %8561 = call ptr @__errno_location() #13
  store i32 %8560, ptr %8561, align 4, !tbaa !5
  %8562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8563 = load i32, ptr @test_count, align 4, !tbaa !5
  %8564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  %8566 = call ptr @s2n_strerror(i32 noundef %8565, ptr noundef @.str.3)
  %8567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8568 = load i32, ptr %8567, align 4, !tbaa !5
  %8569 = call ptr @s2n_strerror_debug(i32 noundef %8568, ptr noundef @.str.3)
  %8570 = call ptr @__errno_location() #13
  %8571 = load i32, ptr %8570, align 4, !tbaa !5
  %8572 = call ptr @strerror(i32 noundef %8571) #12
  %8573 = call ptr @__errno_location() #13
  %8574 = load i32, ptr %8573, align 4, !tbaa !5
  %8575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8562, ptr noundef @.str, i32 noundef %8563, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 457, ptr noundef %8566, ptr noundef %8569, ptr noundef %8572, i32 noundef %8574) #12
  br label %8593

8576:                                             ; preds = %8554, %8547
  %8577 = load i32, ptr %180, align 4, !tbaa !5
  %8578 = call ptr @__errno_location() #13
  store i32 %8577, ptr %8578, align 4, !tbaa !5
  %8579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8580 = load i32, ptr @test_count, align 4, !tbaa !5
  %8581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8582 = load i32, ptr %8581, align 4, !tbaa !5
  %8583 = call ptr @s2n_strerror(i32 noundef %8582, ptr noundef @.str.3)
  %8584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8585 = load i32, ptr %8584, align 4, !tbaa !5
  %8586 = call ptr @s2n_strerror_debug(i32 noundef %8585, ptr noundef @.str.3)
  %8587 = call ptr @__errno_location() #13
  %8588 = load i32, ptr %8587, align 4, !tbaa !5
  %8589 = call ptr @strerror(i32 noundef %8588) #12
  %8590 = call ptr @__errno_location() #13
  %8591 = load i32, ptr %8590, align 4, !tbaa !5
  %8592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8579, ptr noundef @.str.4, i32 noundef %8580, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 457, ptr noundef %8583, ptr noundef %8586, ptr noundef %8589, i32 noundef %8591) #12
  br label %8593

8593:                                             ; preds = %8576, %8559
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #12
  br label %8594

8594:                                             ; preds = %8593
  br label %8595

8595:                                             ; preds = %8594
  call void @exit(i32 noundef 1) #14
  unreachable

8596:                                             ; No predecessors!
  br label %8597

8597:                                             ; preds = %8596
  br label %8598

8598:                                             ; preds = %8597, %8539
  br label %8599

8599:                                             ; preds = %8598
  br label %8600

8600:                                             ; preds = %8599
  call void @llvm.lifetime.end.p0(i64 12, ptr %155) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #12
  store ptr null, ptr %181, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #12
  store ptr null, ptr %182, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #12
  store ptr null, ptr %183, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #12
  store ptr null, ptr %184, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #12
  store ptr null, ptr %185, align 8, !tbaa !9
  br label %8601

8601:                                             ; preds = %8600
  %8602 = load i32, ptr @test_count, align 4, !tbaa !5
  %8603 = add nsw i32 %8602, 1
  store i32 %8603, ptr @test_count, align 4, !tbaa !5
  %8604 = call ptr @s2n_config_new()
  store ptr %8604, ptr %181, align 8, !tbaa !9
  %8605 = icmp eq ptr %8604, null
  br i1 %8605, label %8606, label %8659

8606:                                             ; preds = %8601
  br label %8607

8607:                                             ; preds = %8606
  br label %8608

8608:                                             ; preds = %8607
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #12
  %8609 = call ptr @__errno_location() #13
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  store i32 %8610, ptr %186, align 4, !tbaa !5
  %8611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8612 = call i32 @s2n_print_stacktrace(ptr noundef %8611)
  %8613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8614 = trunc i8 %8613 to i1
  br i1 %8614, label %8615, label %8637

8615:                                             ; preds = %8608
  %8616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8617 = call i32 @fileno(ptr noundef %8616) #12
  %8618 = call i32 @isatty(i32 noundef %8617) #12
  %8619 = icmp ne i32 %8618, 0
  br i1 %8619, label %8620, label %8637

8620:                                             ; preds = %8615
  %8621 = load i32, ptr %186, align 4, !tbaa !5
  %8622 = call ptr @__errno_location() #13
  store i32 %8621, ptr %8622, align 4, !tbaa !5
  %8623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8624 = load i32, ptr @test_count, align 4, !tbaa !5
  %8625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8626 = load i32, ptr %8625, align 4, !tbaa !5
  %8627 = call ptr @s2n_strerror(i32 noundef %8626, ptr noundef @.str.3)
  %8628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8629 = load i32, ptr %8628, align 4, !tbaa !5
  %8630 = call ptr @s2n_strerror_debug(i32 noundef %8629, ptr noundef @.str.3)
  %8631 = call ptr @__errno_location() #13
  %8632 = load i32, ptr %8631, align 4, !tbaa !5
  %8633 = call ptr @strerror(i32 noundef %8632) #12
  %8634 = call ptr @__errno_location() #13
  %8635 = load i32, ptr %8634, align 4, !tbaa !5
  %8636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8623, ptr noundef @.str, i32 noundef %8624, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 470, ptr noundef %8627, ptr noundef %8630, ptr noundef %8633, i32 noundef %8635) #12
  br label %8654

8637:                                             ; preds = %8615, %8608
  %8638 = load i32, ptr %186, align 4, !tbaa !5
  %8639 = call ptr @__errno_location() #13
  store i32 %8638, ptr %8639, align 4, !tbaa !5
  %8640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8641 = load i32, ptr @test_count, align 4, !tbaa !5
  %8642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8643 = load i32, ptr %8642, align 4, !tbaa !5
  %8644 = call ptr @s2n_strerror(i32 noundef %8643, ptr noundef @.str.3)
  %8645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8646 = load i32, ptr %8645, align 4, !tbaa !5
  %8647 = call ptr @s2n_strerror_debug(i32 noundef %8646, ptr noundef @.str.3)
  %8648 = call ptr @__errno_location() #13
  %8649 = load i32, ptr %8648, align 4, !tbaa !5
  %8650 = call ptr @strerror(i32 noundef %8649) #12
  %8651 = call ptr @__errno_location() #13
  %8652 = load i32, ptr %8651, align 4, !tbaa !5
  %8653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8640, ptr noundef @.str.4, i32 noundef %8641, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 470, ptr noundef %8644, ptr noundef %8647, ptr noundef %8650, i32 noundef %8652) #12
  br label %8654

8654:                                             ; preds = %8637, %8620
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #12
  br label %8655

8655:                                             ; preds = %8654
  br label %8656

8656:                                             ; preds = %8655
  call void @exit(i32 noundef 1) #14
  unreachable

8657:                                             ; No predecessors!
  br label %8658

8658:                                             ; preds = %8657
  br label %8659

8659:                                             ; preds = %8658, %8601
  br label %8660

8660:                                             ; preds = %8659
  br label %8661

8661:                                             ; preds = %8660
  br label %8662

8662:                                             ; preds = %8661
  %8663 = load i32, ptr @test_count, align 4, !tbaa !5
  %8664 = add nsw i32 %8663, 1
  store i32 %8664, ptr @test_count, align 4, !tbaa !5
  %8665 = call ptr @s2n_config_new()
  store ptr %8665, ptr %182, align 8, !tbaa !9
  %8666 = icmp eq ptr %8665, null
  br i1 %8666, label %8667, label %8720

8667:                                             ; preds = %8662
  br label %8668

8668:                                             ; preds = %8667
  br label %8669

8669:                                             ; preds = %8668
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #12
  %8670 = call ptr @__errno_location() #13
  %8671 = load i32, ptr %8670, align 4, !tbaa !5
  store i32 %8671, ptr %187, align 4, !tbaa !5
  %8672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8673 = call i32 @s2n_print_stacktrace(ptr noundef %8672)
  %8674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8675 = trunc i8 %8674 to i1
  br i1 %8675, label %8676, label %8698

8676:                                             ; preds = %8669
  %8677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8678 = call i32 @fileno(ptr noundef %8677) #12
  %8679 = call i32 @isatty(i32 noundef %8678) #12
  %8680 = icmp ne i32 %8679, 0
  br i1 %8680, label %8681, label %8698

8681:                                             ; preds = %8676
  %8682 = load i32, ptr %187, align 4, !tbaa !5
  %8683 = call ptr @__errno_location() #13
  store i32 %8682, ptr %8683, align 4, !tbaa !5
  %8684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8685 = load i32, ptr @test_count, align 4, !tbaa !5
  %8686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8687 = load i32, ptr %8686, align 4, !tbaa !5
  %8688 = call ptr @s2n_strerror(i32 noundef %8687, ptr noundef @.str.3)
  %8689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8690 = load i32, ptr %8689, align 4, !tbaa !5
  %8691 = call ptr @s2n_strerror_debug(i32 noundef %8690, ptr noundef @.str.3)
  %8692 = call ptr @__errno_location() #13
  %8693 = load i32, ptr %8692, align 4, !tbaa !5
  %8694 = call ptr @strerror(i32 noundef %8693) #12
  %8695 = call ptr @__errno_location() #13
  %8696 = load i32, ptr %8695, align 4, !tbaa !5
  %8697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8684, ptr noundef @.str, i32 noundef %8685, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 471, ptr noundef %8688, ptr noundef %8691, ptr noundef %8694, i32 noundef %8696) #12
  br label %8715

8698:                                             ; preds = %8676, %8669
  %8699 = load i32, ptr %187, align 4, !tbaa !5
  %8700 = call ptr @__errno_location() #13
  store i32 %8699, ptr %8700, align 4, !tbaa !5
  %8701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8702 = load i32, ptr @test_count, align 4, !tbaa !5
  %8703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8704 = load i32, ptr %8703, align 4, !tbaa !5
  %8705 = call ptr @s2n_strerror(i32 noundef %8704, ptr noundef @.str.3)
  %8706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8707 = load i32, ptr %8706, align 4, !tbaa !5
  %8708 = call ptr @s2n_strerror_debug(i32 noundef %8707, ptr noundef @.str.3)
  %8709 = call ptr @__errno_location() #13
  %8710 = load i32, ptr %8709, align 4, !tbaa !5
  %8711 = call ptr @strerror(i32 noundef %8710) #12
  %8712 = call ptr @__errno_location() #13
  %8713 = load i32, ptr %8712, align 4, !tbaa !5
  %8714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8701, ptr noundef @.str.4, i32 noundef %8702, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 471, ptr noundef %8705, ptr noundef %8708, ptr noundef %8711, i32 noundef %8713) #12
  br label %8715

8715:                                             ; preds = %8698, %8681
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #12
  br label %8716

8716:                                             ; preds = %8715
  br label %8717

8717:                                             ; preds = %8716
  call void @exit(i32 noundef 1) #14
  unreachable

8718:                                             ; No predecessors!
  br label %8719

8719:                                             ; preds = %8718
  br label %8720

8720:                                             ; preds = %8719, %8662
  br label %8721

8721:                                             ; preds = %8720
  br label %8722

8722:                                             ; preds = %8721
  br label %8723

8723:                                             ; preds = %8722
  %8724 = load i32, ptr @test_count, align 4, !tbaa !5
  %8725 = add nsw i32 %8724, 1
  store i32 %8725, ptr @test_count, align 4, !tbaa !5
  %8726 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8726, ptr %183, align 8, !tbaa !9
  %8727 = icmp eq ptr %8726, null
  br i1 %8727, label %8728, label %8781

8728:                                             ; preds = %8723
  br label %8729

8729:                                             ; preds = %8728
  br label %8730

8730:                                             ; preds = %8729
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #12
  %8731 = call ptr @__errno_location() #13
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  store i32 %8732, ptr %188, align 4, !tbaa !5
  %8733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8734 = call i32 @s2n_print_stacktrace(ptr noundef %8733)
  %8735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8736 = trunc i8 %8735 to i1
  br i1 %8736, label %8737, label %8759

8737:                                             ; preds = %8730
  %8738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8739 = call i32 @fileno(ptr noundef %8738) #12
  %8740 = call i32 @isatty(i32 noundef %8739) #12
  %8741 = icmp ne i32 %8740, 0
  br i1 %8741, label %8742, label %8759

8742:                                             ; preds = %8737
  %8743 = load i32, ptr %188, align 4, !tbaa !5
  %8744 = call ptr @__errno_location() #13
  store i32 %8743, ptr %8744, align 4, !tbaa !5
  %8745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8746 = load i32, ptr @test_count, align 4, !tbaa !5
  %8747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8748 = load i32, ptr %8747, align 4, !tbaa !5
  %8749 = call ptr @s2n_strerror(i32 noundef %8748, ptr noundef @.str.3)
  %8750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8751 = load i32, ptr %8750, align 4, !tbaa !5
  %8752 = call ptr @s2n_strerror_debug(i32 noundef %8751, ptr noundef @.str.3)
  %8753 = call ptr @__errno_location() #13
  %8754 = load i32, ptr %8753, align 4, !tbaa !5
  %8755 = call ptr @strerror(i32 noundef %8754) #12
  %8756 = call ptr @__errno_location() #13
  %8757 = load i32, ptr %8756, align 4, !tbaa !5
  %8758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8745, ptr noundef @.str, i32 noundef %8746, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 473, ptr noundef %8749, ptr noundef %8752, ptr noundef %8755, i32 noundef %8757) #12
  br label %8776

8759:                                             ; preds = %8737, %8730
  %8760 = load i32, ptr %188, align 4, !tbaa !5
  %8761 = call ptr @__errno_location() #13
  store i32 %8760, ptr %8761, align 4, !tbaa !5
  %8762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8763 = load i32, ptr @test_count, align 4, !tbaa !5
  %8764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8765 = load i32, ptr %8764, align 4, !tbaa !5
  %8766 = call ptr @s2n_strerror(i32 noundef %8765, ptr noundef @.str.3)
  %8767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8768 = load i32, ptr %8767, align 4, !tbaa !5
  %8769 = call ptr @s2n_strerror_debug(i32 noundef %8768, ptr noundef @.str.3)
  %8770 = call ptr @__errno_location() #13
  %8771 = load i32, ptr %8770, align 4, !tbaa !5
  %8772 = call ptr @strerror(i32 noundef %8771) #12
  %8773 = call ptr @__errno_location() #13
  %8774 = load i32, ptr %8773, align 4, !tbaa !5
  %8775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8762, ptr noundef @.str.4, i32 noundef %8763, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 473, ptr noundef %8766, ptr noundef %8769, ptr noundef %8772, i32 noundef %8774) #12
  br label %8776

8776:                                             ; preds = %8759, %8742
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #12
  br label %8777

8777:                                             ; preds = %8776
  br label %8778

8778:                                             ; preds = %8777
  call void @exit(i32 noundef 1) #14
  unreachable

8779:                                             ; No predecessors!
  br label %8780

8780:                                             ; preds = %8779
  br label %8781

8781:                                             ; preds = %8780, %8723
  br label %8782

8782:                                             ; preds = %8781
  br label %8783

8783:                                             ; preds = %8782
  br label %8784

8784:                                             ; preds = %8783
  %8785 = load i32, ptr @test_count, align 4, !tbaa !5
  %8786 = add nsw i32 %8785, 1
  store i32 %8786, ptr @test_count, align 4, !tbaa !5
  %8787 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8787, ptr %184, align 8, !tbaa !9
  %8788 = icmp eq ptr %8787, null
  br i1 %8788, label %8789, label %8842

8789:                                             ; preds = %8784
  br label %8790

8790:                                             ; preds = %8789
  br label %8791

8791:                                             ; preds = %8790
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #12
  %8792 = call ptr @__errno_location() #13
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  store i32 %8793, ptr %189, align 4, !tbaa !5
  %8794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8795 = call i32 @s2n_print_stacktrace(ptr noundef %8794)
  %8796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8797 = trunc i8 %8796 to i1
  br i1 %8797, label %8798, label %8820

8798:                                             ; preds = %8791
  %8799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8800 = call i32 @fileno(ptr noundef %8799) #12
  %8801 = call i32 @isatty(i32 noundef %8800) #12
  %8802 = icmp ne i32 %8801, 0
  br i1 %8802, label %8803, label %8820

8803:                                             ; preds = %8798
  %8804 = load i32, ptr %189, align 4, !tbaa !5
  %8805 = call ptr @__errno_location() #13
  store i32 %8804, ptr %8805, align 4, !tbaa !5
  %8806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8807 = load i32, ptr @test_count, align 4, !tbaa !5
  %8808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8809 = load i32, ptr %8808, align 4, !tbaa !5
  %8810 = call ptr @s2n_strerror(i32 noundef %8809, ptr noundef @.str.3)
  %8811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  %8813 = call ptr @s2n_strerror_debug(i32 noundef %8812, ptr noundef @.str.3)
  %8814 = call ptr @__errno_location() #13
  %8815 = load i32, ptr %8814, align 4, !tbaa !5
  %8816 = call ptr @strerror(i32 noundef %8815) #12
  %8817 = call ptr @__errno_location() #13
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  %8819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8806, ptr noundef @.str, i32 noundef %8807, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 474, ptr noundef %8810, ptr noundef %8813, ptr noundef %8816, i32 noundef %8818) #12
  br label %8837

8820:                                             ; preds = %8798, %8791
  %8821 = load i32, ptr %189, align 4, !tbaa !5
  %8822 = call ptr @__errno_location() #13
  store i32 %8821, ptr %8822, align 4, !tbaa !5
  %8823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8824 = load i32, ptr @test_count, align 4, !tbaa !5
  %8825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8826 = load i32, ptr %8825, align 4, !tbaa !5
  %8827 = call ptr @s2n_strerror(i32 noundef %8826, ptr noundef @.str.3)
  %8828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8829 = load i32, ptr %8828, align 4, !tbaa !5
  %8830 = call ptr @s2n_strerror_debug(i32 noundef %8829, ptr noundef @.str.3)
  %8831 = call ptr @__errno_location() #13
  %8832 = load i32, ptr %8831, align 4, !tbaa !5
  %8833 = call ptr @strerror(i32 noundef %8832) #12
  %8834 = call ptr @__errno_location() #13
  %8835 = load i32, ptr %8834, align 4, !tbaa !5
  %8836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8823, ptr noundef @.str.4, i32 noundef %8824, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 474, ptr noundef %8827, ptr noundef %8830, ptr noundef %8833, i32 noundef %8835) #12
  br label %8837

8837:                                             ; preds = %8820, %8803
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #12
  br label %8838

8838:                                             ; preds = %8837
  br label %8839

8839:                                             ; preds = %8838
  call void @exit(i32 noundef 1) #14
  unreachable

8840:                                             ; No predecessors!
  br label %8841

8841:                                             ; preds = %8840
  br label %8842

8842:                                             ; preds = %8841, %8784
  br label %8843

8843:                                             ; preds = %8842
  br label %8844

8844:                                             ; preds = %8843
  br label %8845

8845:                                             ; preds = %8844
  %8846 = load i32, ptr @test_count, align 4, !tbaa !5
  %8847 = add nsw i32 %8846, 1
  store i32 %8847, ptr @test_count, align 4, !tbaa !5
  %8848 = load ptr, ptr %182, align 8, !tbaa !9
  %8849 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %8848, ptr noundef @.str.17)
  %8850 = icmp eq i32 %8849, -1
  br i1 %8850, label %8851, label %8904

8851:                                             ; preds = %8845
  br label %8852

8852:                                             ; preds = %8851
  br label %8853

8853:                                             ; preds = %8852
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #12
  %8854 = call ptr @__errno_location() #13
  %8855 = load i32, ptr %8854, align 4, !tbaa !5
  store i32 %8855, ptr %190, align 4, !tbaa !5
  %8856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8857 = call i32 @s2n_print_stacktrace(ptr noundef %8856)
  %8858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8859 = trunc i8 %8858 to i1
  br i1 %8859, label %8860, label %8882

8860:                                             ; preds = %8853
  %8861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8862 = call i32 @fileno(ptr noundef %8861) #12
  %8863 = call i32 @isatty(i32 noundef %8862) #12
  %8864 = icmp ne i32 %8863, 0
  br i1 %8864, label %8865, label %8882

8865:                                             ; preds = %8860
  %8866 = load i32, ptr %190, align 4, !tbaa !5
  %8867 = call ptr @__errno_location() #13
  store i32 %8866, ptr %8867, align 4, !tbaa !5
  %8868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8869 = load i32, ptr @test_count, align 4, !tbaa !5
  %8870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8871 = load i32, ptr %8870, align 4, !tbaa !5
  %8872 = call ptr @s2n_strerror(i32 noundef %8871, ptr noundef @.str.3)
  %8873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8874 = load i32, ptr %8873, align 4, !tbaa !5
  %8875 = call ptr @s2n_strerror_debug(i32 noundef %8874, ptr noundef @.str.3)
  %8876 = call ptr @__errno_location() #13
  %8877 = load i32, ptr %8876, align 4, !tbaa !5
  %8878 = call ptr @strerror(i32 noundef %8877) #12
  %8879 = call ptr @__errno_location() #13
  %8880 = load i32, ptr %8879, align 4, !tbaa !5
  %8881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8868, ptr noundef @.str, i32 noundef %8869, ptr noundef @.str.114, ptr noundef @.str.2, i32 noundef 476, ptr noundef %8872, ptr noundef %8875, ptr noundef %8878, i32 noundef %8880) #12
  br label %8899

8882:                                             ; preds = %8860, %8853
  %8883 = load i32, ptr %190, align 4, !tbaa !5
  %8884 = call ptr @__errno_location() #13
  store i32 %8883, ptr %8884, align 4, !tbaa !5
  %8885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8886 = load i32, ptr @test_count, align 4, !tbaa !5
  %8887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8888 = load i32, ptr %8887, align 4, !tbaa !5
  %8889 = call ptr @s2n_strerror(i32 noundef %8888, ptr noundef @.str.3)
  %8890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8891 = load i32, ptr %8890, align 4, !tbaa !5
  %8892 = call ptr @s2n_strerror_debug(i32 noundef %8891, ptr noundef @.str.3)
  %8893 = call ptr @__errno_location() #13
  %8894 = load i32, ptr %8893, align 4, !tbaa !5
  %8895 = call ptr @strerror(i32 noundef %8894) #12
  %8896 = call ptr @__errno_location() #13
  %8897 = load i32, ptr %8896, align 4, !tbaa !5
  %8898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8885, ptr noundef @.str.4, i32 noundef %8886, ptr noundef @.str.114, ptr noundef @.str.2, i32 noundef 476, ptr noundef %8889, ptr noundef %8892, ptr noundef %8895, i32 noundef %8897) #12
  br label %8899

8899:                                             ; preds = %8882, %8865
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #12
  br label %8900

8900:                                             ; preds = %8899
  br label %8901

8901:                                             ; preds = %8900
  call void @exit(i32 noundef 1) #14
  unreachable

8902:                                             ; No predecessors!
  br label %8903

8903:                                             ; preds = %8902
  br label %8904

8904:                                             ; preds = %8903, %8845
  br label %8905

8905:                                             ; preds = %8904
  br label %8906

8906:                                             ; preds = %8905
  br label %8907

8907:                                             ; preds = %8906
  %8908 = load i32, ptr @test_count, align 4, !tbaa !5
  %8909 = add nsw i32 %8908, 1
  store i32 %8909, ptr @test_count, align 4, !tbaa !5
  %8910 = load ptr, ptr %181, align 8, !tbaa !9
  %8911 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %8910, ptr noundef @.str.17)
  %8912 = icmp eq i32 %8911, -1
  br i1 %8912, label %8913, label %8966

8913:                                             ; preds = %8907
  br label %8914

8914:                                             ; preds = %8913
  br label %8915

8915:                                             ; preds = %8914
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #12
  %8916 = call ptr @__errno_location() #13
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  store i32 %8917, ptr %191, align 4, !tbaa !5
  %8918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8919 = call i32 @s2n_print_stacktrace(ptr noundef %8918)
  %8920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8921 = trunc i8 %8920 to i1
  br i1 %8921, label %8922, label %8944

8922:                                             ; preds = %8915
  %8923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8924 = call i32 @fileno(ptr noundef %8923) #12
  %8925 = call i32 @isatty(i32 noundef %8924) #12
  %8926 = icmp ne i32 %8925, 0
  br i1 %8926, label %8927, label %8944

8927:                                             ; preds = %8922
  %8928 = load i32, ptr %191, align 4, !tbaa !5
  %8929 = call ptr @__errno_location() #13
  store i32 %8928, ptr %8929, align 4, !tbaa !5
  %8930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8931 = load i32, ptr @test_count, align 4, !tbaa !5
  %8932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8933 = load i32, ptr %8932, align 4, !tbaa !5
  %8934 = call ptr @s2n_strerror(i32 noundef %8933, ptr noundef @.str.3)
  %8935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8936 = load i32, ptr %8935, align 4, !tbaa !5
  %8937 = call ptr @s2n_strerror_debug(i32 noundef %8936, ptr noundef @.str.3)
  %8938 = call ptr @__errno_location() #13
  %8939 = load i32, ptr %8938, align 4, !tbaa !5
  %8940 = call ptr @strerror(i32 noundef %8939) #12
  %8941 = call ptr @__errno_location() #13
  %8942 = load i32, ptr %8941, align 4, !tbaa !5
  %8943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8930, ptr noundef @.str, i32 noundef %8931, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 477, ptr noundef %8934, ptr noundef %8937, ptr noundef %8940, i32 noundef %8942) #12
  br label %8961

8944:                                             ; preds = %8922, %8915
  %8945 = load i32, ptr %191, align 4, !tbaa !5
  %8946 = call ptr @__errno_location() #13
  store i32 %8945, ptr %8946, align 4, !tbaa !5
  %8947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8948 = load i32, ptr @test_count, align 4, !tbaa !5
  %8949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8950 = load i32, ptr %8949, align 4, !tbaa !5
  %8951 = call ptr @s2n_strerror(i32 noundef %8950, ptr noundef @.str.3)
  %8952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8953 = load i32, ptr %8952, align 4, !tbaa !5
  %8954 = call ptr @s2n_strerror_debug(i32 noundef %8953, ptr noundef @.str.3)
  %8955 = call ptr @__errno_location() #13
  %8956 = load i32, ptr %8955, align 4, !tbaa !5
  %8957 = call ptr @strerror(i32 noundef %8956) #12
  %8958 = call ptr @__errno_location() #13
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  %8960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8947, ptr noundef @.str.4, i32 noundef %8948, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 477, ptr noundef %8951, ptr noundef %8954, ptr noundef %8957, i32 noundef %8959) #12
  br label %8961

8961:                                             ; preds = %8944, %8927
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #12
  br label %8962

8962:                                             ; preds = %8961
  br label %8963

8963:                                             ; preds = %8962
  call void @exit(i32 noundef 1) #14
  unreachable

8964:                                             ; No predecessors!
  br label %8965

8965:                                             ; preds = %8964
  br label %8966

8966:                                             ; preds = %8965, %8907
  br label %8967

8967:                                             ; preds = %8966
  br label %8968

8968:                                             ; preds = %8967
  br label %8969

8969:                                             ; preds = %8968
  %8970 = load i32, ptr @test_count, align 4, !tbaa !5
  %8971 = add nsw i32 %8970, 1
  store i32 %8971, ptr @test_count, align 4, !tbaa !5
  %8972 = load ptr, ptr %181, align 8, !tbaa !9
  %8973 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %8972)
  %8974 = icmp eq i32 %8973, -1
  br i1 %8974, label %8975, label %9028

8975:                                             ; preds = %8969
  br label %8976

8976:                                             ; preds = %8975
  br label %8977

8977:                                             ; preds = %8976
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #12
  %8978 = call ptr @__errno_location() #13
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  store i32 %8979, ptr %192, align 4, !tbaa !5
  %8980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8981 = call i32 @s2n_print_stacktrace(ptr noundef %8980)
  %8982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8983 = trunc i8 %8982 to i1
  br i1 %8983, label %8984, label %9006

8984:                                             ; preds = %8977
  %8985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8986 = call i32 @fileno(ptr noundef %8985) #12
  %8987 = call i32 @isatty(i32 noundef %8986) #12
  %8988 = icmp ne i32 %8987, 0
  br i1 %8988, label %8989, label %9006

8989:                                             ; preds = %8984
  %8990 = load i32, ptr %192, align 4, !tbaa !5
  %8991 = call ptr @__errno_location() #13
  store i32 %8990, ptr %8991, align 4, !tbaa !5
  %8992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8993 = load i32, ptr @test_count, align 4, !tbaa !5
  %8994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8995 = load i32, ptr %8994, align 4, !tbaa !5
  %8996 = call ptr @s2n_strerror(i32 noundef %8995, ptr noundef @.str.3)
  %8997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  %8999 = call ptr @s2n_strerror_debug(i32 noundef %8998, ptr noundef @.str.3)
  %9000 = call ptr @__errno_location() #13
  %9001 = load i32, ptr %9000, align 4, !tbaa !5
  %9002 = call ptr @strerror(i32 noundef %9001) #12
  %9003 = call ptr @__errno_location() #13
  %9004 = load i32, ptr %9003, align 4, !tbaa !5
  %9005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8992, ptr noundef @.str, i32 noundef %8993, ptr noundef @.str.131, ptr noundef @.str.2, i32 noundef 479, ptr noundef %8996, ptr noundef %8999, ptr noundef %9002, i32 noundef %9004) #12
  br label %9023

9006:                                             ; preds = %8984, %8977
  %9007 = load i32, ptr %192, align 4, !tbaa !5
  %9008 = call ptr @__errno_location() #13
  store i32 %9007, ptr %9008, align 4, !tbaa !5
  %9009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9010 = load i32, ptr @test_count, align 4, !tbaa !5
  %9011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9012 = load i32, ptr %9011, align 4, !tbaa !5
  %9013 = call ptr @s2n_strerror(i32 noundef %9012, ptr noundef @.str.3)
  %9014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9015 = load i32, ptr %9014, align 4, !tbaa !5
  %9016 = call ptr @s2n_strerror_debug(i32 noundef %9015, ptr noundef @.str.3)
  %9017 = call ptr @__errno_location() #13
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  %9019 = call ptr @strerror(i32 noundef %9018) #12
  %9020 = call ptr @__errno_location() #13
  %9021 = load i32, ptr %9020, align 4, !tbaa !5
  %9022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9009, ptr noundef @.str.4, i32 noundef %9010, ptr noundef @.str.131, ptr noundef @.str.2, i32 noundef 479, ptr noundef %9013, ptr noundef %9016, ptr noundef %9019, i32 noundef %9021) #12
  br label %9023

9023:                                             ; preds = %9006, %8989
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #12
  br label %9024

9024:                                             ; preds = %9023
  br label %9025

9025:                                             ; preds = %9024
  call void @exit(i32 noundef 1) #14
  unreachable

9026:                                             ; No predecessors!
  br label %9027

9027:                                             ; preds = %9026
  br label %9028

9028:                                             ; preds = %9027, %8969
  br label %9029

9029:                                             ; preds = %9028
  br label %9030

9030:                                             ; preds = %9029
  br label %9031

9031:                                             ; preds = %9030
  %9032 = load i32, ptr @test_count, align 4, !tbaa !5
  %9033 = add nsw i32 %9032, 1
  store i32 %9033, ptr @test_count, align 4, !tbaa !5
  %9034 = load ptr, ptr %182, align 8, !tbaa !9
  %9035 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %9034)
  %9036 = icmp eq i32 %9035, -1
  br i1 %9036, label %9037, label %9090

9037:                                             ; preds = %9031
  br label %9038

9038:                                             ; preds = %9037
  br label %9039

9039:                                             ; preds = %9038
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #12
  %9040 = call ptr @__errno_location() #13
  %9041 = load i32, ptr %9040, align 4, !tbaa !5
  store i32 %9041, ptr %193, align 4, !tbaa !5
  %9042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9043 = call i32 @s2n_print_stacktrace(ptr noundef %9042)
  %9044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9045 = trunc i8 %9044 to i1
  br i1 %9045, label %9046, label %9068

9046:                                             ; preds = %9039
  %9047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9048 = call i32 @fileno(ptr noundef %9047) #12
  %9049 = call i32 @isatty(i32 noundef %9048) #12
  %9050 = icmp ne i32 %9049, 0
  br i1 %9050, label %9051, label %9068

9051:                                             ; preds = %9046
  %9052 = load i32, ptr %193, align 4, !tbaa !5
  %9053 = call ptr @__errno_location() #13
  store i32 %9052, ptr %9053, align 4, !tbaa !5
  %9054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9055 = load i32, ptr @test_count, align 4, !tbaa !5
  %9056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror(i32 noundef %9057, ptr noundef @.str.3)
  %9059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @s2n_strerror_debug(i32 noundef %9060, ptr noundef @.str.3)
  %9062 = call ptr @__errno_location() #13
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call ptr @strerror(i32 noundef %9063) #12
  %9065 = call ptr @__errno_location() #13
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  %9067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9054, ptr noundef @.str, i32 noundef %9055, ptr noundef @.str.132, ptr noundef @.str.2, i32 noundef 480, ptr noundef %9058, ptr noundef %9061, ptr noundef %9064, i32 noundef %9066) #12
  br label %9085

9068:                                             ; preds = %9046, %9039
  %9069 = load i32, ptr %193, align 4, !tbaa !5
  %9070 = call ptr @__errno_location() #13
  store i32 %9069, ptr %9070, align 4, !tbaa !5
  %9071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9072 = load i32, ptr @test_count, align 4, !tbaa !5
  %9073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9074 = load i32, ptr %9073, align 4, !tbaa !5
  %9075 = call ptr @s2n_strerror(i32 noundef %9074, ptr noundef @.str.3)
  %9076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9077 = load i32, ptr %9076, align 4, !tbaa !5
  %9078 = call ptr @s2n_strerror_debug(i32 noundef %9077, ptr noundef @.str.3)
  %9079 = call ptr @__errno_location() #13
  %9080 = load i32, ptr %9079, align 4, !tbaa !5
  %9081 = call ptr @strerror(i32 noundef %9080) #12
  %9082 = call ptr @__errno_location() #13
  %9083 = load i32, ptr %9082, align 4, !tbaa !5
  %9084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9071, ptr noundef @.str.4, i32 noundef %9072, ptr noundef @.str.132, ptr noundef @.str.2, i32 noundef 480, ptr noundef %9075, ptr noundef %9078, ptr noundef %9081, i32 noundef %9083) #12
  br label %9085

9085:                                             ; preds = %9068, %9051
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #12
  br label %9086

9086:                                             ; preds = %9085
  br label %9087

9087:                                             ; preds = %9086
  call void @exit(i32 noundef 1) #14
  unreachable

9088:                                             ; No predecessors!
  br label %9089

9089:                                             ; preds = %9088
  br label %9090

9090:                                             ; preds = %9089, %9031
  br label %9091

9091:                                             ; preds = %9090
  br label %9092

9092:                                             ; preds = %9091
  br label %9093

9093:                                             ; preds = %9092
  %9094 = load i32, ptr @test_count, align 4, !tbaa !5
  %9095 = add nsw i32 %9094, 1
  store i32 %9095, ptr @test_count, align 4, !tbaa !5
  %9096 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %185, ptr noundef @.str.10, ptr noundef @.str.11)
  %9097 = icmp eq i32 %9096, -1
  br i1 %9097, label %9098, label %9151

9098:                                             ; preds = %9093
  br label %9099

9099:                                             ; preds = %9098
  br label %9100

9100:                                             ; preds = %9099
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #12
  %9101 = call ptr @__errno_location() #13
  %9102 = load i32, ptr %9101, align 4, !tbaa !5
  store i32 %9102, ptr %194, align 4, !tbaa !5
  %9103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9104 = call i32 @s2n_print_stacktrace(ptr noundef %9103)
  %9105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9106 = trunc i8 %9105 to i1
  br i1 %9106, label %9107, label %9129

9107:                                             ; preds = %9100
  %9108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9109 = call i32 @fileno(ptr noundef %9108) #12
  %9110 = call i32 @isatty(i32 noundef %9109) #12
  %9111 = icmp ne i32 %9110, 0
  br i1 %9111, label %9112, label %9129

9112:                                             ; preds = %9107
  %9113 = load i32, ptr %194, align 4, !tbaa !5
  %9114 = call ptr @__errno_location() #13
  store i32 %9113, ptr %9114, align 4, !tbaa !5
  %9115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9116 = load i32, ptr @test_count, align 4, !tbaa !5
  %9117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9118 = load i32, ptr %9117, align 4, !tbaa !5
  %9119 = call ptr @s2n_strerror(i32 noundef %9118, ptr noundef @.str.3)
  %9120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9121 = load i32, ptr %9120, align 4, !tbaa !5
  %9122 = call ptr @s2n_strerror_debug(i32 noundef %9121, ptr noundef @.str.3)
  %9123 = call ptr @__errno_location() #13
  %9124 = load i32, ptr %9123, align 4, !tbaa !5
  %9125 = call ptr @strerror(i32 noundef %9124) #12
  %9126 = call ptr @__errno_location() #13
  %9127 = load i32, ptr %9126, align 4, !tbaa !5
  %9128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9115, ptr noundef @.str, i32 noundef %9116, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 483, ptr noundef %9119, ptr noundef %9122, ptr noundef %9125, i32 noundef %9127) #12
  br label %9146

9129:                                             ; preds = %9107, %9100
  %9130 = load i32, ptr %194, align 4, !tbaa !5
  %9131 = call ptr @__errno_location() #13
  store i32 %9130, ptr %9131, align 4, !tbaa !5
  %9132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9133 = load i32, ptr @test_count, align 4, !tbaa !5
  %9134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9135 = load i32, ptr %9134, align 4, !tbaa !5
  %9136 = call ptr @s2n_strerror(i32 noundef %9135, ptr noundef @.str.3)
  %9137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9138 = load i32, ptr %9137, align 4, !tbaa !5
  %9139 = call ptr @s2n_strerror_debug(i32 noundef %9138, ptr noundef @.str.3)
  %9140 = call ptr @__errno_location() #13
  %9141 = load i32, ptr %9140, align 4, !tbaa !5
  %9142 = call ptr @strerror(i32 noundef %9141) #12
  %9143 = call ptr @__errno_location() #13
  %9144 = load i32, ptr %9143, align 4, !tbaa !5
  %9145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9132, ptr noundef @.str.4, i32 noundef %9133, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 483, ptr noundef %9136, ptr noundef %9139, ptr noundef %9142, i32 noundef %9144) #12
  br label %9146

9146:                                             ; preds = %9129, %9112
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #12
  br label %9147

9147:                                             ; preds = %9146
  br label %9148

9148:                                             ; preds = %9147
  call void @exit(i32 noundef 1) #14
  unreachable

9149:                                             ; No predecessors!
  br label %9150

9150:                                             ; preds = %9149
  br label %9151

9151:                                             ; preds = %9150, %9093
  br label %9152

9152:                                             ; preds = %9151
  br label %9153

9153:                                             ; preds = %9152
  br label %9154

9154:                                             ; preds = %9153
  %9155 = load i32, ptr @test_count, align 4, !tbaa !5
  %9156 = add nsw i32 %9155, 1
  store i32 %9156, ptr @test_count, align 4, !tbaa !5
  %9157 = load ptr, ptr %182, align 8, !tbaa !9
  %9158 = load ptr, ptr %185, align 8, !tbaa !9
  %9159 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9157, ptr noundef %9158)
  %9160 = icmp eq i32 %9159, -1
  br i1 %9160, label %9161, label %9214

9161:                                             ; preds = %9154
  br label %9162

9162:                                             ; preds = %9161
  br label %9163

9163:                                             ; preds = %9162
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #12
  %9164 = call ptr @__errno_location() #13
  %9165 = load i32, ptr %9164, align 4, !tbaa !5
  store i32 %9165, ptr %195, align 4, !tbaa !5
  %9166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9167 = call i32 @s2n_print_stacktrace(ptr noundef %9166)
  %9168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9169 = trunc i8 %9168 to i1
  br i1 %9169, label %9170, label %9192

9170:                                             ; preds = %9163
  %9171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9172 = call i32 @fileno(ptr noundef %9171) #12
  %9173 = call i32 @isatty(i32 noundef %9172) #12
  %9174 = icmp ne i32 %9173, 0
  br i1 %9174, label %9175, label %9192

9175:                                             ; preds = %9170
  %9176 = load i32, ptr %195, align 4, !tbaa !5
  %9177 = call ptr @__errno_location() #13
  store i32 %9176, ptr %9177, align 4, !tbaa !5
  %9178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9179 = load i32, ptr @test_count, align 4, !tbaa !5
  %9180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9181 = load i32, ptr %9180, align 4, !tbaa !5
  %9182 = call ptr @s2n_strerror(i32 noundef %9181, ptr noundef @.str.3)
  %9183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9184 = load i32, ptr %9183, align 4, !tbaa !5
  %9185 = call ptr @s2n_strerror_debug(i32 noundef %9184, ptr noundef @.str.3)
  %9186 = call ptr @__errno_location() #13
  %9187 = load i32, ptr %9186, align 4, !tbaa !5
  %9188 = call ptr @strerror(i32 noundef %9187) #12
  %9189 = call ptr @__errno_location() #13
  %9190 = load i32, ptr %9189, align 4, !tbaa !5
  %9191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9178, ptr noundef @.str, i32 noundef %9179, ptr noundef @.str.116, ptr noundef @.str.2, i32 noundef 484, ptr noundef %9182, ptr noundef %9185, ptr noundef %9188, i32 noundef %9190) #12
  br label %9209

9192:                                             ; preds = %9170, %9163
  %9193 = load i32, ptr %195, align 4, !tbaa !5
  %9194 = call ptr @__errno_location() #13
  store i32 %9193, ptr %9194, align 4, !tbaa !5
  %9195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9196 = load i32, ptr @test_count, align 4, !tbaa !5
  %9197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call ptr @s2n_strerror(i32 noundef %9198, ptr noundef @.str.3)
  %9200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9201 = load i32, ptr %9200, align 4, !tbaa !5
  %9202 = call ptr @s2n_strerror_debug(i32 noundef %9201, ptr noundef @.str.3)
  %9203 = call ptr @__errno_location() #13
  %9204 = load i32, ptr %9203, align 4, !tbaa !5
  %9205 = call ptr @strerror(i32 noundef %9204) #12
  %9206 = call ptr @__errno_location() #13
  %9207 = load i32, ptr %9206, align 4, !tbaa !5
  %9208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9195, ptr noundef @.str.4, i32 noundef %9196, ptr noundef @.str.116, ptr noundef @.str.2, i32 noundef 484, ptr noundef %9199, ptr noundef %9202, ptr noundef %9205, i32 noundef %9207) #12
  br label %9209

9209:                                             ; preds = %9192, %9175
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #12
  br label %9210

9210:                                             ; preds = %9209
  br label %9211

9211:                                             ; preds = %9210
  call void @exit(i32 noundef 1) #14
  unreachable

9212:                                             ; No predecessors!
  br label %9213

9213:                                             ; preds = %9212
  br label %9214

9214:                                             ; preds = %9213, %9154
  br label %9215

9215:                                             ; preds = %9214
  br label %9216

9216:                                             ; preds = %9215
  br label %9217

9217:                                             ; preds = %9216
  %9218 = load i32, ptr @test_count, align 4, !tbaa !5
  %9219 = add nsw i32 %9218, 1
  store i32 %9219, ptr @test_count, align 4, !tbaa !5
  %9220 = load ptr, ptr %181, align 8, !tbaa !9
  %9221 = load ptr, ptr %185, align 8, !tbaa !9
  %9222 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9220, ptr noundef %9221)
  %9223 = icmp eq i32 %9222, -1
  br i1 %9223, label %9224, label %9277

9224:                                             ; preds = %9217
  br label %9225

9225:                                             ; preds = %9224
  br label %9226

9226:                                             ; preds = %9225
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #12
  %9227 = call ptr @__errno_location() #13
  %9228 = load i32, ptr %9227, align 4, !tbaa !5
  store i32 %9228, ptr %196, align 4, !tbaa !5
  %9229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9230 = call i32 @s2n_print_stacktrace(ptr noundef %9229)
  %9231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9232 = trunc i8 %9231 to i1
  br i1 %9232, label %9233, label %9255

9233:                                             ; preds = %9226
  %9234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9235 = call i32 @fileno(ptr noundef %9234) #12
  %9236 = call i32 @isatty(i32 noundef %9235) #12
  %9237 = icmp ne i32 %9236, 0
  br i1 %9237, label %9238, label %9255

9238:                                             ; preds = %9233
  %9239 = load i32, ptr %196, align 4, !tbaa !5
  %9240 = call ptr @__errno_location() #13
  store i32 %9239, ptr %9240, align 4, !tbaa !5
  %9241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9242 = load i32, ptr @test_count, align 4, !tbaa !5
  %9243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror(i32 noundef %9244, ptr noundef @.str.3)
  %9246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9247 = load i32, ptr %9246, align 4, !tbaa !5
  %9248 = call ptr @s2n_strerror_debug(i32 noundef %9247, ptr noundef @.str.3)
  %9249 = call ptr @__errno_location() #13
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call ptr @strerror(i32 noundef %9250) #12
  %9252 = call ptr @__errno_location() #13
  %9253 = load i32, ptr %9252, align 4, !tbaa !5
  %9254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9241, ptr noundef @.str, i32 noundef %9242, ptr noundef @.str.117, ptr noundef @.str.2, i32 noundef 485, ptr noundef %9245, ptr noundef %9248, ptr noundef %9251, i32 noundef %9253) #12
  br label %9272

9255:                                             ; preds = %9233, %9226
  %9256 = load i32, ptr %196, align 4, !tbaa !5
  %9257 = call ptr @__errno_location() #13
  store i32 %9256, ptr %9257, align 4, !tbaa !5
  %9258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9259 = load i32, ptr @test_count, align 4, !tbaa !5
  %9260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9261 = load i32, ptr %9260, align 4, !tbaa !5
  %9262 = call ptr @s2n_strerror(i32 noundef %9261, ptr noundef @.str.3)
  %9263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9264 = load i32, ptr %9263, align 4, !tbaa !5
  %9265 = call ptr @s2n_strerror_debug(i32 noundef %9264, ptr noundef @.str.3)
  %9266 = call ptr @__errno_location() #13
  %9267 = load i32, ptr %9266, align 4, !tbaa !5
  %9268 = call ptr @strerror(i32 noundef %9267) #12
  %9269 = call ptr @__errno_location() #13
  %9270 = load i32, ptr %9269, align 4, !tbaa !5
  %9271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9258, ptr noundef @.str.4, i32 noundef %9259, ptr noundef @.str.117, ptr noundef @.str.2, i32 noundef 485, ptr noundef %9262, ptr noundef %9265, ptr noundef %9268, i32 noundef %9270) #12
  br label %9272

9272:                                             ; preds = %9255, %9238
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #12
  br label %9273

9273:                                             ; preds = %9272
  br label %9274

9274:                                             ; preds = %9273
  call void @exit(i32 noundef 1) #14
  unreachable

9275:                                             ; No predecessors!
  br label %9276

9276:                                             ; preds = %9275
  br label %9277

9277:                                             ; preds = %9276, %9217
  br label %9278

9278:                                             ; preds = %9277
  br label %9279

9279:                                             ; preds = %9278
  br label %9280

9280:                                             ; preds = %9279
  %9281 = load i32, ptr @test_count, align 4, !tbaa !5
  %9282 = add nsw i32 %9281, 1
  store i32 %9282, ptr @test_count, align 4, !tbaa !5
  %9283 = load ptr, ptr %183, align 8, !tbaa !9
  %9284 = load ptr, ptr %181, align 8, !tbaa !9
  %9285 = call i32 @s2n_connection_set_config(ptr noundef %9283, ptr noundef %9284)
  %9286 = icmp eq i32 %9285, -1
  br i1 %9286, label %9287, label %9340

9287:                                             ; preds = %9280
  br label %9288

9288:                                             ; preds = %9287
  br label %9289

9289:                                             ; preds = %9288
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #12
  %9290 = call ptr @__errno_location() #13
  %9291 = load i32, ptr %9290, align 4, !tbaa !5
  store i32 %9291, ptr %197, align 4, !tbaa !5
  %9292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9293 = call i32 @s2n_print_stacktrace(ptr noundef %9292)
  %9294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9295 = trunc i8 %9294 to i1
  br i1 %9295, label %9296, label %9318

9296:                                             ; preds = %9289
  %9297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9298 = call i32 @fileno(ptr noundef %9297) #12
  %9299 = call i32 @isatty(i32 noundef %9298) #12
  %9300 = icmp ne i32 %9299, 0
  br i1 %9300, label %9301, label %9318

9301:                                             ; preds = %9296
  %9302 = load i32, ptr %197, align 4, !tbaa !5
  %9303 = call ptr @__errno_location() #13
  store i32 %9302, ptr %9303, align 4, !tbaa !5
  %9304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9305 = load i32, ptr @test_count, align 4, !tbaa !5
  %9306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9307 = load i32, ptr %9306, align 4, !tbaa !5
  %9308 = call ptr @s2n_strerror(i32 noundef %9307, ptr noundef @.str.3)
  %9309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9310 = load i32, ptr %9309, align 4, !tbaa !5
  %9311 = call ptr @s2n_strerror_debug(i32 noundef %9310, ptr noundef @.str.3)
  %9312 = call ptr @__errno_location() #13
  %9313 = load i32, ptr %9312, align 4, !tbaa !5
  %9314 = call ptr @strerror(i32 noundef %9313) #12
  %9315 = call ptr @__errno_location() #13
  %9316 = load i32, ptr %9315, align 4, !tbaa !5
  %9317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9304, ptr noundef @.str, i32 noundef %9305, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 487, ptr noundef %9308, ptr noundef %9311, ptr noundef %9314, i32 noundef %9316) #12
  br label %9335

9318:                                             ; preds = %9296, %9289
  %9319 = load i32, ptr %197, align 4, !tbaa !5
  %9320 = call ptr @__errno_location() #13
  store i32 %9319, ptr %9320, align 4, !tbaa !5
  %9321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9322 = load i32, ptr @test_count, align 4, !tbaa !5
  %9323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  %9325 = call ptr @s2n_strerror(i32 noundef %9324, ptr noundef @.str.3)
  %9326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9327 = load i32, ptr %9326, align 4, !tbaa !5
  %9328 = call ptr @s2n_strerror_debug(i32 noundef %9327, ptr noundef @.str.3)
  %9329 = call ptr @__errno_location() #13
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  %9331 = call ptr @strerror(i32 noundef %9330) #12
  %9332 = call ptr @__errno_location() #13
  %9333 = load i32, ptr %9332, align 4, !tbaa !5
  %9334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9321, ptr noundef @.str.4, i32 noundef %9322, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 487, ptr noundef %9325, ptr noundef %9328, ptr noundef %9331, i32 noundef %9333) #12
  br label %9335

9335:                                             ; preds = %9318, %9301
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #12
  br label %9336

9336:                                             ; preds = %9335
  br label %9337

9337:                                             ; preds = %9336
  call void @exit(i32 noundef 1) #14
  unreachable

9338:                                             ; No predecessors!
  br label %9339

9339:                                             ; preds = %9338
  br label %9340

9340:                                             ; preds = %9339, %9280
  br label %9341

9341:                                             ; preds = %9340
  br label %9342

9342:                                             ; preds = %9341
  br label %9343

9343:                                             ; preds = %9342
  %9344 = load i32, ptr @test_count, align 4, !tbaa !5
  %9345 = add nsw i32 %9344, 1
  store i32 %9345, ptr @test_count, align 4, !tbaa !5
  %9346 = load ptr, ptr %184, align 8, !tbaa !9
  %9347 = load ptr, ptr %182, align 8, !tbaa !9
  %9348 = call i32 @s2n_connection_set_config(ptr noundef %9346, ptr noundef %9347)
  %9349 = icmp eq i32 %9348, -1
  br i1 %9349, label %9350, label %9403

9350:                                             ; preds = %9343
  br label %9351

9351:                                             ; preds = %9350
  br label %9352

9352:                                             ; preds = %9351
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #12
  %9353 = call ptr @__errno_location() #13
  %9354 = load i32, ptr %9353, align 4, !tbaa !5
  store i32 %9354, ptr %198, align 4, !tbaa !5
  %9355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9356 = call i32 @s2n_print_stacktrace(ptr noundef %9355)
  %9357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9358 = trunc i8 %9357 to i1
  br i1 %9358, label %9359, label %9381

9359:                                             ; preds = %9352
  %9360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9361 = call i32 @fileno(ptr noundef %9360) #12
  %9362 = call i32 @isatty(i32 noundef %9361) #12
  %9363 = icmp ne i32 %9362, 0
  br i1 %9363, label %9364, label %9381

9364:                                             ; preds = %9359
  %9365 = load i32, ptr %198, align 4, !tbaa !5
  %9366 = call ptr @__errno_location() #13
  store i32 %9365, ptr %9366, align 4, !tbaa !5
  %9367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call ptr @s2n_strerror(i32 noundef %9370, ptr noundef @.str.3)
  %9372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9373 = load i32, ptr %9372, align 4, !tbaa !5
  %9374 = call ptr @s2n_strerror_debug(i32 noundef %9373, ptr noundef @.str.3)
  %9375 = call ptr @__errno_location() #13
  %9376 = load i32, ptr %9375, align 4, !tbaa !5
  %9377 = call ptr @strerror(i32 noundef %9376) #12
  %9378 = call ptr @__errno_location() #13
  %9379 = load i32, ptr %9378, align 4, !tbaa !5
  %9380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9367, ptr noundef @.str, i32 noundef %9368, ptr noundef @.str.118, ptr noundef @.str.2, i32 noundef 488, ptr noundef %9371, ptr noundef %9374, ptr noundef %9377, i32 noundef %9379) #12
  br label %9398

9381:                                             ; preds = %9359, %9352
  %9382 = load i32, ptr %198, align 4, !tbaa !5
  %9383 = call ptr @__errno_location() #13
  store i32 %9382, ptr %9383, align 4, !tbaa !5
  %9384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9385 = load i32, ptr @test_count, align 4, !tbaa !5
  %9386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9387 = load i32, ptr %9386, align 4, !tbaa !5
  %9388 = call ptr @s2n_strerror(i32 noundef %9387, ptr noundef @.str.3)
  %9389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9390 = load i32, ptr %9389, align 4, !tbaa !5
  %9391 = call ptr @s2n_strerror_debug(i32 noundef %9390, ptr noundef @.str.3)
  %9392 = call ptr @__errno_location() #13
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call ptr @strerror(i32 noundef %9393) #12
  %9395 = call ptr @__errno_location() #13
  %9396 = load i32, ptr %9395, align 4, !tbaa !5
  %9397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9384, ptr noundef @.str.4, i32 noundef %9385, ptr noundef @.str.118, ptr noundef @.str.2, i32 noundef 488, ptr noundef %9388, ptr noundef %9391, ptr noundef %9394, i32 noundef %9396) #12
  br label %9398

9398:                                             ; preds = %9381, %9364
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #12
  br label %9399

9399:                                             ; preds = %9398
  br label %9400

9400:                                             ; preds = %9399
  call void @exit(i32 noundef 1) #14
  unreachable

9401:                                             ; No predecessors!
  br label %9402

9402:                                             ; preds = %9401
  br label %9403

9403:                                             ; preds = %9402, %9343
  br label %9404

9404:                                             ; preds = %9403
  br label %9405

9405:                                             ; preds = %9404
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #12
  br label %9406

9406:                                             ; preds = %9405
  %9407 = load i32, ptr @test_count, align 4, !tbaa !5
  %9408 = add nsw i32 %9407, 1
  store i32 %9408, ptr @test_count, align 4, !tbaa !5
  %9409 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %199)
  %9410 = icmp eq i32 %9409, -1
  br i1 %9410, label %9411, label %9464

9411:                                             ; preds = %9406
  br label %9412

9412:                                             ; preds = %9411
  br label %9413

9413:                                             ; preds = %9412
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #12
  %9414 = call ptr @__errno_location() #13
  %9415 = load i32, ptr %9414, align 4, !tbaa !5
  store i32 %9415, ptr %200, align 4, !tbaa !5
  %9416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9417 = call i32 @s2n_print_stacktrace(ptr noundef %9416)
  %9418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9419 = trunc i8 %9418 to i1
  br i1 %9419, label %9420, label %9442

9420:                                             ; preds = %9413
  %9421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9422 = call i32 @fileno(ptr noundef %9421) #12
  %9423 = call i32 @isatty(i32 noundef %9422) #12
  %9424 = icmp ne i32 %9423, 0
  br i1 %9424, label %9425, label %9442

9425:                                             ; preds = %9420
  %9426 = load i32, ptr %200, align 4, !tbaa !5
  %9427 = call ptr @__errno_location() #13
  store i32 %9426, ptr %9427, align 4, !tbaa !5
  %9428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9429 = load i32, ptr @test_count, align 4, !tbaa !5
  %9430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9431 = load i32, ptr %9430, align 4, !tbaa !5
  %9432 = call ptr @s2n_strerror(i32 noundef %9431, ptr noundef @.str.3)
  %9433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9434 = load i32, ptr %9433, align 4, !tbaa !5
  %9435 = call ptr @s2n_strerror_debug(i32 noundef %9434, ptr noundef @.str.3)
  %9436 = call ptr @__errno_location() #13
  %9437 = load i32, ptr %9436, align 4, !tbaa !5
  %9438 = call ptr @strerror(i32 noundef %9437) #12
  %9439 = call ptr @__errno_location() #13
  %9440 = load i32, ptr %9439, align 4, !tbaa !5
  %9441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9428, ptr noundef @.str, i32 noundef %9429, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 491, ptr noundef %9432, ptr noundef %9435, ptr noundef %9438, i32 noundef %9440) #12
  br label %9459

9442:                                             ; preds = %9420, %9413
  %9443 = load i32, ptr %200, align 4, !tbaa !5
  %9444 = call ptr @__errno_location() #13
  store i32 %9443, ptr %9444, align 4, !tbaa !5
  %9445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9446 = load i32, ptr @test_count, align 4, !tbaa !5
  %9447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  %9449 = call ptr @s2n_strerror(i32 noundef %9448, ptr noundef @.str.3)
  %9450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9451 = load i32, ptr %9450, align 4, !tbaa !5
  %9452 = call ptr @s2n_strerror_debug(i32 noundef %9451, ptr noundef @.str.3)
  %9453 = call ptr @__errno_location() #13
  %9454 = load i32, ptr %9453, align 4, !tbaa !5
  %9455 = call ptr @strerror(i32 noundef %9454) #12
  %9456 = call ptr @__errno_location() #13
  %9457 = load i32, ptr %9456, align 4, !tbaa !5
  %9458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9445, ptr noundef @.str.4, i32 noundef %9446, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 491, ptr noundef %9449, ptr noundef %9452, ptr noundef %9455, i32 noundef %9457) #12
  br label %9459

9459:                                             ; preds = %9442, %9425
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #12
  br label %9460

9460:                                             ; preds = %9459
  br label %9461

9461:                                             ; preds = %9460
  call void @exit(i32 noundef 1) #14
  unreachable

9462:                                             ; No predecessors!
  br label %9463

9463:                                             ; preds = %9462
  br label %9464

9464:                                             ; preds = %9463, %9406
  br label %9465

9465:                                             ; preds = %9464
  br label %9466

9466:                                             ; preds = %9465
  br label %9467

9467:                                             ; preds = %9466
  %9468 = load i32, ptr @test_count, align 4, !tbaa !5
  %9469 = add nsw i32 %9468, 1
  store i32 %9469, ptr @test_count, align 4, !tbaa !5
  %9470 = load ptr, ptr %184, align 8, !tbaa !9
  %9471 = load ptr, ptr %183, align 8, !tbaa !9
  %9472 = call i32 @s2n_connections_set_io_pair(ptr noundef %9470, ptr noundef %9471, ptr noundef %199)
  %9473 = icmp eq i32 %9472, -1
  br i1 %9473, label %9474, label %9527

9474:                                             ; preds = %9467
  br label %9475

9475:                                             ; preds = %9474
  br label %9476

9476:                                             ; preds = %9475
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #12
  %9477 = call ptr @__errno_location() #13
  %9478 = load i32, ptr %9477, align 4, !tbaa !5
  store i32 %9478, ptr %201, align 4, !tbaa !5
  %9479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9480 = call i32 @s2n_print_stacktrace(ptr noundef %9479)
  %9481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9482 = trunc i8 %9481 to i1
  br i1 %9482, label %9483, label %9505

9483:                                             ; preds = %9476
  %9484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9485 = call i32 @fileno(ptr noundef %9484) #12
  %9486 = call i32 @isatty(i32 noundef %9485) #12
  %9487 = icmp ne i32 %9486, 0
  br i1 %9487, label %9488, label %9505

9488:                                             ; preds = %9483
  %9489 = load i32, ptr %201, align 4, !tbaa !5
  %9490 = call ptr @__errno_location() #13
  store i32 %9489, ptr %9490, align 4, !tbaa !5
  %9491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9492 = load i32, ptr @test_count, align 4, !tbaa !5
  %9493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9494 = load i32, ptr %9493, align 4, !tbaa !5
  %9495 = call ptr @s2n_strerror(i32 noundef %9494, ptr noundef @.str.3)
  %9496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9497 = load i32, ptr %9496, align 4, !tbaa !5
  %9498 = call ptr @s2n_strerror_debug(i32 noundef %9497, ptr noundef @.str.3)
  %9499 = call ptr @__errno_location() #13
  %9500 = load i32, ptr %9499, align 4, !tbaa !5
  %9501 = call ptr @strerror(i32 noundef %9500) #12
  %9502 = call ptr @__errno_location() #13
  %9503 = load i32, ptr %9502, align 4, !tbaa !5
  %9504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9491, ptr noundef @.str, i32 noundef %9492, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 492, ptr noundef %9495, ptr noundef %9498, ptr noundef %9501, i32 noundef %9503) #12
  br label %9522

9505:                                             ; preds = %9483, %9476
  %9506 = load i32, ptr %201, align 4, !tbaa !5
  %9507 = call ptr @__errno_location() #13
  store i32 %9506, ptr %9507, align 4, !tbaa !5
  %9508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9509 = load i32, ptr @test_count, align 4, !tbaa !5
  %9510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9511 = load i32, ptr %9510, align 4, !tbaa !5
  %9512 = call ptr @s2n_strerror(i32 noundef %9511, ptr noundef @.str.3)
  %9513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9514 = load i32, ptr %9513, align 4, !tbaa !5
  %9515 = call ptr @s2n_strerror_debug(i32 noundef %9514, ptr noundef @.str.3)
  %9516 = call ptr @__errno_location() #13
  %9517 = load i32, ptr %9516, align 4, !tbaa !5
  %9518 = call ptr @strerror(i32 noundef %9517) #12
  %9519 = call ptr @__errno_location() #13
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  %9521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9508, ptr noundef @.str.4, i32 noundef %9509, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 492, ptr noundef %9512, ptr noundef %9515, ptr noundef %9518, i32 noundef %9520) #12
  br label %9522

9522:                                             ; preds = %9505, %9488
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #12
  br label %9523

9523:                                             ; preds = %9522
  br label %9524

9524:                                             ; preds = %9523
  call void @exit(i32 noundef 1) #14
  unreachable

9525:                                             ; No predecessors!
  br label %9526

9526:                                             ; preds = %9525
  br label %9527

9527:                                             ; preds = %9526, %9467
  br label %9528

9528:                                             ; preds = %9527
  br label %9529

9529:                                             ; preds = %9528
  %9530 = load ptr, ptr %184, align 8, !tbaa !9
  %9531 = getelementptr inbounds %struct.s2n_connection, ptr %9530, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %9531, align 8, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 12, ptr %202) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %202, ptr align 4 @__const.main.client_hello_ctx, i64 12, i1 false)
  br label %9532

9532:                                             ; preds = %9529
  %9533 = load i32, ptr @test_count, align 4, !tbaa !5
  %9534 = add nsw i32 %9533, 1
  store i32 %9534, ptr @test_count, align 4, !tbaa !5
  %9535 = load ptr, ptr %181, align 8, !tbaa !9
  %9536 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %9535, ptr noundef @client_hello_detect_duplicate_calls, ptr noundef %202)
  %9537 = icmp eq i32 %9536, -1
  br i1 %9537, label %9538, label %9591

9538:                                             ; preds = %9532
  br label %9539

9539:                                             ; preds = %9538
  br label %9540

9540:                                             ; preds = %9539
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #12
  %9541 = call ptr @__errno_location() #13
  %9542 = load i32, ptr %9541, align 4, !tbaa !5
  store i32 %9542, ptr %203, align 4, !tbaa !5
  %9543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9544 = call i32 @s2n_print_stacktrace(ptr noundef %9543)
  %9545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9546 = trunc i8 %9545 to i1
  br i1 %9546, label %9547, label %9569

9547:                                             ; preds = %9540
  %9548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9549 = call i32 @fileno(ptr noundef %9548) #12
  %9550 = call i32 @isatty(i32 noundef %9549) #12
  %9551 = icmp ne i32 %9550, 0
  br i1 %9551, label %9552, label %9569

9552:                                             ; preds = %9547
  %9553 = load i32, ptr %203, align 4, !tbaa !5
  %9554 = call ptr @__errno_location() #13
  store i32 %9553, ptr %9554, align 4, !tbaa !5
  %9555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9556 = load i32, ptr @test_count, align 4, !tbaa !5
  %9557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9558 = load i32, ptr %9557, align 4, !tbaa !5
  %9559 = call ptr @s2n_strerror(i32 noundef %9558, ptr noundef @.str.3)
  %9560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9561 = load i32, ptr %9560, align 4, !tbaa !5
  %9562 = call ptr @s2n_strerror_debug(i32 noundef %9561, ptr noundef @.str.3)
  %9563 = call ptr @__errno_location() #13
  %9564 = load i32, ptr %9563, align 4, !tbaa !5
  %9565 = call ptr @strerror(i32 noundef %9564) #12
  %9566 = call ptr @__errno_location() #13
  %9567 = load i32, ptr %9566, align 4, !tbaa !5
  %9568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9555, ptr noundef @.str, i32 noundef %9556, ptr noundef @.str.119, ptr noundef @.str.2, i32 noundef 501, ptr noundef %9559, ptr noundef %9562, ptr noundef %9565, i32 noundef %9567) #12
  br label %9586

9569:                                             ; preds = %9547, %9540
  %9570 = load i32, ptr %203, align 4, !tbaa !5
  %9571 = call ptr @__errno_location() #13
  store i32 %9570, ptr %9571, align 4, !tbaa !5
  %9572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9573 = load i32, ptr @test_count, align 4, !tbaa !5
  %9574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9575 = load i32, ptr %9574, align 4, !tbaa !5
  %9576 = call ptr @s2n_strerror(i32 noundef %9575, ptr noundef @.str.3)
  %9577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9578 = load i32, ptr %9577, align 4, !tbaa !5
  %9579 = call ptr @s2n_strerror_debug(i32 noundef %9578, ptr noundef @.str.3)
  %9580 = call ptr @__errno_location() #13
  %9581 = load i32, ptr %9580, align 4, !tbaa !5
  %9582 = call ptr @strerror(i32 noundef %9581) #12
  %9583 = call ptr @__errno_location() #13
  %9584 = load i32, ptr %9583, align 4, !tbaa !5
  %9585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9572, ptr noundef @.str.4, i32 noundef %9573, ptr noundef @.str.119, ptr noundef @.str.2, i32 noundef 501, ptr noundef %9576, ptr noundef %9579, ptr noundef %9582, i32 noundef %9584) #12
  br label %9586

9586:                                             ; preds = %9569, %9552
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #12
  br label %9587

9587:                                             ; preds = %9586
  br label %9588

9588:                                             ; preds = %9587
  call void @exit(i32 noundef 1) #14
  unreachable

9589:                                             ; No predecessors!
  br label %9590

9590:                                             ; preds = %9589
  br label %9591

9591:                                             ; preds = %9590, %9532
  br label %9592

9592:                                             ; preds = %9591
  br label %9593

9593:                                             ; preds = %9592
  br label %9594

9594:                                             ; preds = %9593
  %9595 = load i32, ptr @test_count, align 4, !tbaa !5
  %9596 = add nsw i32 %9595, 1
  store i32 %9596, ptr @test_count, align 4, !tbaa !5
  %9597 = load ptr, ptr %181, align 8, !tbaa !9
  %9598 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef %9597, i32 noundef 1)
  %9599 = icmp eq i32 %9598, -1
  br i1 %9599, label %9600, label %9653

9600:                                             ; preds = %9594
  br label %9601

9601:                                             ; preds = %9600
  br label %9602

9602:                                             ; preds = %9601
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #12
  %9603 = call ptr @__errno_location() #13
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  store i32 %9604, ptr %204, align 4, !tbaa !5
  %9605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9606 = call i32 @s2n_print_stacktrace(ptr noundef %9605)
  %9607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9608 = trunc i8 %9607 to i1
  br i1 %9608, label %9609, label %9631

9609:                                             ; preds = %9602
  %9610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9611 = call i32 @fileno(ptr noundef %9610) #12
  %9612 = call i32 @isatty(i32 noundef %9611) #12
  %9613 = icmp ne i32 %9612, 0
  br i1 %9613, label %9614, label %9631

9614:                                             ; preds = %9609
  %9615 = load i32, ptr %204, align 4, !tbaa !5
  %9616 = call ptr @__errno_location() #13
  store i32 %9615, ptr %9616, align 4, !tbaa !5
  %9617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9618 = load i32, ptr @test_count, align 4, !tbaa !5
  %9619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call ptr @s2n_strerror(i32 noundef %9620, ptr noundef @.str.3)
  %9622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call ptr @s2n_strerror_debug(i32 noundef %9623, ptr noundef @.str.3)
  %9625 = call ptr @__errno_location() #13
  %9626 = load i32, ptr %9625, align 4, !tbaa !5
  %9627 = call ptr @strerror(i32 noundef %9626) #12
  %9628 = call ptr @__errno_location() #13
  %9629 = load i32, ptr %9628, align 4, !tbaa !5
  %9630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9617, ptr noundef @.str, i32 noundef %9618, ptr noundef @.str.133, ptr noundef @.str.2, i32 noundef 503, ptr noundef %9621, ptr noundef %9624, ptr noundef %9627, i32 noundef %9629) #12
  br label %9648

9631:                                             ; preds = %9609, %9602
  %9632 = load i32, ptr %204, align 4, !tbaa !5
  %9633 = call ptr @__errno_location() #13
  store i32 %9632, ptr %9633, align 4, !tbaa !5
  %9634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9635 = load i32, ptr @test_count, align 4, !tbaa !5
  %9636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  %9638 = call ptr @s2n_strerror(i32 noundef %9637, ptr noundef @.str.3)
  %9639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call ptr @s2n_strerror_debug(i32 noundef %9640, ptr noundef @.str.3)
  %9642 = call ptr @__errno_location() #13
  %9643 = load i32, ptr %9642, align 4, !tbaa !5
  %9644 = call ptr @strerror(i32 noundef %9643) #12
  %9645 = call ptr @__errno_location() #13
  %9646 = load i32, ptr %9645, align 4, !tbaa !5
  %9647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9634, ptr noundef @.str.4, i32 noundef %9635, ptr noundef @.str.133, ptr noundef @.str.2, i32 noundef 503, ptr noundef %9638, ptr noundef %9641, ptr noundef %9644, i32 noundef %9646) #12
  br label %9648

9648:                                             ; preds = %9631, %9614
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #12
  br label %9649

9649:                                             ; preds = %9648
  br label %9650

9650:                                             ; preds = %9649
  call void @exit(i32 noundef 1) #14
  unreachable

9651:                                             ; No predecessors!
  br label %9652

9652:                                             ; preds = %9651
  br label %9653

9653:                                             ; preds = %9652, %9594
  br label %9654

9654:                                             ; preds = %9653
  br label %9655

9655:                                             ; preds = %9654
  br label %9656

9656:                                             ; preds = %9655
  %9657 = load i32, ptr @test_count, align 4, !tbaa !5
  %9658 = add nsw i32 %9657, 1
  store i32 %9658, ptr @test_count, align 4, !tbaa !5
  %9659 = load ptr, ptr %183, align 8, !tbaa !9
  %9660 = load ptr, ptr %184, align 8, !tbaa !9
  %9661 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9659, ptr noundef %9660)
  %9662 = icmp eq i32 %9661, -1
  br i1 %9662, label %9663, label %9716

9663:                                             ; preds = %9656
  br label %9664

9664:                                             ; preds = %9663
  br label %9665

9665:                                             ; preds = %9664
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #12
  %9666 = call ptr @__errno_location() #13
  %9667 = load i32, ptr %9666, align 4, !tbaa !5
  store i32 %9667, ptr %205, align 4, !tbaa !5
  %9668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9669 = call i32 @s2n_print_stacktrace(ptr noundef %9668)
  %9670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9671 = trunc i8 %9670 to i1
  br i1 %9671, label %9672, label %9694

9672:                                             ; preds = %9665
  %9673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9674 = call i32 @fileno(ptr noundef %9673) #12
  %9675 = call i32 @isatty(i32 noundef %9674) #12
  %9676 = icmp ne i32 %9675, 0
  br i1 %9676, label %9677, label %9694

9677:                                             ; preds = %9672
  %9678 = load i32, ptr %205, align 4, !tbaa !5
  %9679 = call ptr @__errno_location() #13
  store i32 %9678, ptr %9679, align 4, !tbaa !5
  %9680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9681 = load i32, ptr @test_count, align 4, !tbaa !5
  %9682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9683 = load i32, ptr %9682, align 4, !tbaa !5
  %9684 = call ptr @s2n_strerror(i32 noundef %9683, ptr noundef @.str.3)
  %9685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9686 = load i32, ptr %9685, align 4, !tbaa !5
  %9687 = call ptr @s2n_strerror_debug(i32 noundef %9686, ptr noundef @.str.3)
  %9688 = call ptr @__errno_location() #13
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  %9690 = call ptr @strerror(i32 noundef %9689) #12
  %9691 = call ptr @__errno_location() #13
  %9692 = load i32, ptr %9691, align 4, !tbaa !5
  %9693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9680, ptr noundef @.str, i32 noundef %9681, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 506, ptr noundef %9684, ptr noundef %9687, ptr noundef %9690, i32 noundef %9692) #12
  br label %9711

9694:                                             ; preds = %9672, %9665
  %9695 = load i32, ptr %205, align 4, !tbaa !5
  %9696 = call ptr @__errno_location() #13
  store i32 %9695, ptr %9696, align 4, !tbaa !5
  %9697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9698 = load i32, ptr @test_count, align 4, !tbaa !5
  %9699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9700 = load i32, ptr %9699, align 4, !tbaa !5
  %9701 = call ptr @s2n_strerror(i32 noundef %9700, ptr noundef @.str.3)
  %9702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  %9704 = call ptr @s2n_strerror_debug(i32 noundef %9703, ptr noundef @.str.3)
  %9705 = call ptr @__errno_location() #13
  %9706 = load i32, ptr %9705, align 4, !tbaa !5
  %9707 = call ptr @strerror(i32 noundef %9706) #12
  %9708 = call ptr @__errno_location() #13
  %9709 = load i32, ptr %9708, align 4, !tbaa !5
  %9710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9697, ptr noundef @.str.4, i32 noundef %9698, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 506, ptr noundef %9701, ptr noundef %9704, ptr noundef %9707, i32 noundef %9709) #12
  br label %9711

9711:                                             ; preds = %9694, %9677
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #12
  br label %9712

9712:                                             ; preds = %9711
  br label %9713

9713:                                             ; preds = %9712
  call void @exit(i32 noundef 1) #14
  unreachable

9714:                                             ; No predecessors!
  br label %9715

9715:                                             ; preds = %9714
  br label %9716

9716:                                             ; preds = %9715, %9656
  br label %9717

9717:                                             ; preds = %9716
  br label %9718

9718:                                             ; preds = %9717
  br label %9719

9719:                                             ; preds = %9718
  %9720 = load i32, ptr @test_count, align 4, !tbaa !5
  %9721 = add nsw i32 %9720, 1
  store i32 %9721, ptr @test_count, align 4, !tbaa !5
  %9722 = load ptr, ptr %183, align 8, !tbaa !9
  %9723 = getelementptr inbounds %struct.s2n_connection, ptr %9722, i32 0, i32 52
  %9724 = getelementptr inbounds %struct.s2n_handshake, ptr %9723, i32 0, i32 6
  %9725 = load i32, ptr %9724, align 4, !tbaa !72
  %9726 = and i32 %9725, 16
  %9727 = icmp ne i32 %9726, 0
  br i1 %9727, label %9781, label %9728

9728:                                             ; preds = %9719
  br label %9729

9729:                                             ; preds = %9728
  br label %9730

9730:                                             ; preds = %9729
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #12
  %9731 = call ptr @__errno_location() #13
  %9732 = load i32, ptr %9731, align 4, !tbaa !5
  store i32 %9732, ptr %206, align 4, !tbaa !5
  %9733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9734 = call i32 @s2n_print_stacktrace(ptr noundef %9733)
  %9735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9736 = trunc i8 %9735 to i1
  br i1 %9736, label %9737, label %9759

9737:                                             ; preds = %9730
  %9738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9739 = call i32 @fileno(ptr noundef %9738) #12
  %9740 = call i32 @isatty(i32 noundef %9739) #12
  %9741 = icmp ne i32 %9740, 0
  br i1 %9741, label %9742, label %9759

9742:                                             ; preds = %9737
  %9743 = load i32, ptr %206, align 4, !tbaa !5
  %9744 = call ptr @__errno_location() #13
  store i32 %9743, ptr %9744, align 4, !tbaa !5
  %9745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9746 = load i32, ptr @test_count, align 4, !tbaa !5
  %9747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9748 = load i32, ptr %9747, align 4, !tbaa !5
  %9749 = call ptr @s2n_strerror(i32 noundef %9748, ptr noundef @.str.3)
  %9750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9751 = load i32, ptr %9750, align 4, !tbaa !5
  %9752 = call ptr @s2n_strerror_debug(i32 noundef %9751, ptr noundef @.str.3)
  %9753 = call ptr @__errno_location() #13
  %9754 = load i32, ptr %9753, align 4, !tbaa !5
  %9755 = call ptr @strerror(i32 noundef %9754) #12
  %9756 = call ptr @__errno_location() #13
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  %9758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9745, ptr noundef @.str, i32 noundef %9746, ptr noundef @.str.134, ptr noundef @.str.2, i32 noundef 507, ptr noundef %9749, ptr noundef %9752, ptr noundef %9755, i32 noundef %9757) #12
  br label %9776

9759:                                             ; preds = %9737, %9730
  %9760 = load i32, ptr %206, align 4, !tbaa !5
  %9761 = call ptr @__errno_location() #13
  store i32 %9760, ptr %9761, align 4, !tbaa !5
  %9762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9763 = load i32, ptr @test_count, align 4, !tbaa !5
  %9764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9765 = load i32, ptr %9764, align 4, !tbaa !5
  %9766 = call ptr @s2n_strerror(i32 noundef %9765, ptr noundef @.str.3)
  %9767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9768 = load i32, ptr %9767, align 4, !tbaa !5
  %9769 = call ptr @s2n_strerror_debug(i32 noundef %9768, ptr noundef @.str.3)
  %9770 = call ptr @__errno_location() #13
  %9771 = load i32, ptr %9770, align 4, !tbaa !5
  %9772 = call ptr @strerror(i32 noundef %9771) #12
  %9773 = call ptr @__errno_location() #13
  %9774 = load i32, ptr %9773, align 4, !tbaa !5
  %9775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9762, ptr noundef @.str.4, i32 noundef %9763, ptr noundef @.str.134, ptr noundef @.str.2, i32 noundef 507, ptr noundef %9766, ptr noundef %9769, ptr noundef %9772, i32 noundef %9774) #12
  br label %9776

9776:                                             ; preds = %9759, %9742
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #12
  br label %9777

9777:                                             ; preds = %9776
  br label %9778

9778:                                             ; preds = %9777
  call void @exit(i32 noundef 1) #14
  unreachable

9779:                                             ; No predecessors!
  br label %9780

9780:                                             ; preds = %9779
  br label %9781

9781:                                             ; preds = %9780, %9719
  br label %9782

9782:                                             ; preds = %9781
  br label %9783

9783:                                             ; preds = %9782
  br label %9784

9784:                                             ; preds = %9783
  %9785 = load i32, ptr @test_count, align 4, !tbaa !5
  %9786 = add nsw i32 %9785, 1
  store i32 %9786, ptr @test_count, align 4, !tbaa !5
  %9787 = getelementptr inbounds %struct.client_hello_context, ptr %202, i32 0, i32 0
  %9788 = load i32, ptr %9787, align 4, !tbaa !69
  %9789 = icmp eq i32 %9788, 1
  br i1 %9789, label %9843, label %9790

9790:                                             ; preds = %9784
  br label %9791

9791:                                             ; preds = %9790
  br label %9792

9792:                                             ; preds = %9791
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #12
  %9793 = call ptr @__errno_location() #13
  %9794 = load i32, ptr %9793, align 4, !tbaa !5
  store i32 %9794, ptr %207, align 4, !tbaa !5
  %9795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9796 = call i32 @s2n_print_stacktrace(ptr noundef %9795)
  %9797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9798 = trunc i8 %9797 to i1
  br i1 %9798, label %9799, label %9821

9799:                                             ; preds = %9792
  %9800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9801 = call i32 @fileno(ptr noundef %9800) #12
  %9802 = call i32 @isatty(i32 noundef %9801) #12
  %9803 = icmp ne i32 %9802, 0
  br i1 %9803, label %9804, label %9821

9804:                                             ; preds = %9799
  %9805 = load i32, ptr %207, align 4, !tbaa !5
  %9806 = call ptr @__errno_location() #13
  store i32 %9805, ptr %9806, align 4, !tbaa !5
  %9807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9808 = load i32, ptr @test_count, align 4, !tbaa !5
  %9809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call ptr @s2n_strerror(i32 noundef %9810, ptr noundef @.str.3)
  %9812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9813 = load i32, ptr %9812, align 4, !tbaa !5
  %9814 = call ptr @s2n_strerror_debug(i32 noundef %9813, ptr noundef @.str.3)
  %9815 = call ptr @__errno_location() #13
  %9816 = load i32, ptr %9815, align 4, !tbaa !5
  %9817 = call ptr @strerror(i32 noundef %9816) #12
  %9818 = call ptr @__errno_location() #13
  %9819 = load i32, ptr %9818, align 4, !tbaa !5
  %9820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9807, ptr noundef @.str, i32 noundef %9808, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 508, ptr noundef %9811, ptr noundef %9814, ptr noundef %9817, i32 noundef %9819) #12
  br label %9838

9821:                                             ; preds = %9799, %9792
  %9822 = load i32, ptr %207, align 4, !tbaa !5
  %9823 = call ptr @__errno_location() #13
  store i32 %9822, ptr %9823, align 4, !tbaa !5
  %9824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9825 = load i32, ptr @test_count, align 4, !tbaa !5
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror(i32 noundef %9827, ptr noundef @.str.3)
  %9829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @s2n_strerror_debug(i32 noundef %9830, ptr noundef @.str.3)
  %9832 = call ptr @__errno_location() #13
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call ptr @strerror(i32 noundef %9833) #12
  %9835 = call ptr @__errno_location() #13
  %9836 = load i32, ptr %9835, align 4, !tbaa !5
  %9837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9824, ptr noundef @.str.4, i32 noundef %9825, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 508, ptr noundef %9828, ptr noundef %9831, ptr noundef %9834, i32 noundef %9836) #12
  br label %9838

9838:                                             ; preds = %9821, %9804
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #12
  br label %9839

9839:                                             ; preds = %9838
  br label %9840

9840:                                             ; preds = %9839
  call void @exit(i32 noundef 1) #14
  unreachable

9841:                                             ; No predecessors!
  br label %9842

9842:                                             ; preds = %9841
  br label %9843

9843:                                             ; preds = %9842, %9784
  br label %9844

9844:                                             ; preds = %9843
  br label %9845

9845:                                             ; preds = %9844
  br label %9846

9846:                                             ; preds = %9845
  %9847 = load i32, ptr @test_count, align 4, !tbaa !5
  %9848 = add nsw i32 %9847, 1
  store i32 %9848, ptr @test_count, align 4, !tbaa !5
  %9849 = load ptr, ptr %183, align 8, !tbaa !9
  %9850 = call ptr @s2n_connection_get_client_hello(ptr noundef %9849)
  %9851 = icmp eq ptr %9850, null
  br i1 %9851, label %9852, label %9905

9852:                                             ; preds = %9846
  br label %9853

9853:                                             ; preds = %9852
  br label %9854

9854:                                             ; preds = %9853
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #12
  %9855 = call ptr @__errno_location() #13
  %9856 = load i32, ptr %9855, align 4, !tbaa !5
  store i32 %9856, ptr %208, align 4, !tbaa !5
  %9857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9858 = call i32 @s2n_print_stacktrace(ptr noundef %9857)
  %9859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9860 = trunc i8 %9859 to i1
  br i1 %9860, label %9861, label %9883

9861:                                             ; preds = %9854
  %9862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9863 = call i32 @fileno(ptr noundef %9862) #12
  %9864 = call i32 @isatty(i32 noundef %9863) #12
  %9865 = icmp ne i32 %9864, 0
  br i1 %9865, label %9866, label %9883

9866:                                             ; preds = %9861
  %9867 = load i32, ptr %208, align 4, !tbaa !5
  %9868 = call ptr @__errno_location() #13
  store i32 %9867, ptr %9868, align 4, !tbaa !5
  %9869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9870 = load i32, ptr @test_count, align 4, !tbaa !5
  %9871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9872 = load i32, ptr %9871, align 4, !tbaa !5
  %9873 = call ptr @s2n_strerror(i32 noundef %9872, ptr noundef @.str.3)
  %9874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9875 = load i32, ptr %9874, align 4, !tbaa !5
  %9876 = call ptr @s2n_strerror_debug(i32 noundef %9875, ptr noundef @.str.3)
  %9877 = call ptr @__errno_location() #13
  %9878 = load i32, ptr %9877, align 4, !tbaa !5
  %9879 = call ptr @strerror(i32 noundef %9878) #12
  %9880 = call ptr @__errno_location() #13
  %9881 = load i32, ptr %9880, align 4, !tbaa !5
  %9882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9869, ptr noundef @.str, i32 noundef %9870, ptr noundef @.str.135, ptr noundef @.str.2, i32 noundef 510, ptr noundef %9873, ptr noundef %9876, ptr noundef %9879, i32 noundef %9881) #12
  br label %9900

9883:                                             ; preds = %9861, %9854
  %9884 = load i32, ptr %208, align 4, !tbaa !5
  %9885 = call ptr @__errno_location() #13
  store i32 %9884, ptr %9885, align 4, !tbaa !5
  %9886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9887 = load i32, ptr @test_count, align 4, !tbaa !5
  %9888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9889 = load i32, ptr %9888, align 4, !tbaa !5
  %9890 = call ptr @s2n_strerror(i32 noundef %9889, ptr noundef @.str.3)
  %9891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9892 = load i32, ptr %9891, align 4, !tbaa !5
  %9893 = call ptr @s2n_strerror_debug(i32 noundef %9892, ptr noundef @.str.3)
  %9894 = call ptr @__errno_location() #13
  %9895 = load i32, ptr %9894, align 4, !tbaa !5
  %9896 = call ptr @strerror(i32 noundef %9895) #12
  %9897 = call ptr @__errno_location() #13
  %9898 = load i32, ptr %9897, align 4, !tbaa !5
  %9899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9886, ptr noundef @.str.4, i32 noundef %9887, ptr noundef @.str.135, ptr noundef @.str.2, i32 noundef 510, ptr noundef %9890, ptr noundef %9893, ptr noundef %9896, i32 noundef %9898) #12
  br label %9900

9900:                                             ; preds = %9883, %9866
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #12
  br label %9901

9901:                                             ; preds = %9900
  br label %9902

9902:                                             ; preds = %9901
  call void @exit(i32 noundef 1) #14
  unreachable

9903:                                             ; No predecessors!
  br label %9904

9904:                                             ; preds = %9903
  br label %9905

9905:                                             ; preds = %9904, %9846
  br label %9906

9906:                                             ; preds = %9905
  br label %9907

9907:                                             ; preds = %9906
  br label %9908

9908:                                             ; preds = %9907
  %9909 = load i32, ptr @test_count, align 4, !tbaa !5
  %9910 = add nsw i32 %9909, 1
  store i32 %9910, ptr @test_count, align 4, !tbaa !5
  %9911 = load ptr, ptr %184, align 8, !tbaa !9
  %9912 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %9911, i32 noundef 16)
  br i1 %9912, label %9966, label %9913

9913:                                             ; preds = %9908
  br label %9914

9914:                                             ; preds = %9913
  br label %9915

9915:                                             ; preds = %9914
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #12
  %9916 = call ptr @__errno_location() #13
  %9917 = load i32, ptr %9916, align 4, !tbaa !5
  store i32 %9917, ptr %209, align 4, !tbaa !5
  %9918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9919 = call i32 @s2n_print_stacktrace(ptr noundef %9918)
  %9920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9921 = trunc i8 %9920 to i1
  br i1 %9921, label %9922, label %9944

9922:                                             ; preds = %9915
  %9923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9924 = call i32 @fileno(ptr noundef %9923) #12
  %9925 = call i32 @isatty(i32 noundef %9924) #12
  %9926 = icmp ne i32 %9925, 0
  br i1 %9926, label %9927, label %9944

9927:                                             ; preds = %9922
  %9928 = load i32, ptr %209, align 4, !tbaa !5
  %9929 = call ptr @__errno_location() #13
  store i32 %9928, ptr %9929, align 4, !tbaa !5
  %9930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9931 = load i32, ptr @test_count, align 4, !tbaa !5
  %9932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  %9934 = call ptr @s2n_strerror(i32 noundef %9933, ptr noundef @.str.3)
  %9935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9936 = load i32, ptr %9935, align 4, !tbaa !5
  %9937 = call ptr @s2n_strerror_debug(i32 noundef %9936, ptr noundef @.str.3)
  %9938 = call ptr @__errno_location() #13
  %9939 = load i32, ptr %9938, align 4, !tbaa !5
  %9940 = call ptr @strerror(i32 noundef %9939) #12
  %9941 = call ptr @__errno_location() #13
  %9942 = load i32, ptr %9941, align 4, !tbaa !5
  %9943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9930, ptr noundef @.str, i32 noundef %9931, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 511, ptr noundef %9934, ptr noundef %9937, ptr noundef %9940, i32 noundef %9942) #12
  br label %9961

9944:                                             ; preds = %9922, %9915
  %9945 = load i32, ptr %209, align 4, !tbaa !5
  %9946 = call ptr @__errno_location() #13
  store i32 %9945, ptr %9946, align 4, !tbaa !5
  %9947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9948 = load i32, ptr @test_count, align 4, !tbaa !5
  %9949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9950 = load i32, ptr %9949, align 4, !tbaa !5
  %9951 = call ptr @s2n_strerror(i32 noundef %9950, ptr noundef @.str.3)
  %9952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9953 = load i32, ptr %9952, align 4, !tbaa !5
  %9954 = call ptr @s2n_strerror_debug(i32 noundef %9953, ptr noundef @.str.3)
  %9955 = call ptr @__errno_location() #13
  %9956 = load i32, ptr %9955, align 4, !tbaa !5
  %9957 = call ptr @strerror(i32 noundef %9956) #12
  %9958 = call ptr @__errno_location() #13
  %9959 = load i32, ptr %9958, align 4, !tbaa !5
  %9960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9947, ptr noundef @.str.4, i32 noundef %9948, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 511, ptr noundef %9951, ptr noundef %9954, ptr noundef %9957, i32 noundef %9959) #12
  br label %9961

9961:                                             ; preds = %9944, %9927
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #12
  br label %9962

9962:                                             ; preds = %9961
  br label %9963

9963:                                             ; preds = %9962
  call void @exit(i32 noundef 1) #14
  unreachable

9964:                                             ; No predecessors!
  br label %9965

9965:                                             ; preds = %9964
  br label %9966

9966:                                             ; preds = %9965, %9908
  br label %9967

9967:                                             ; preds = %9966
  br label %9968

9968:                                             ; preds = %9967
  br label %9969

9969:                                             ; preds = %9968
  %9970 = load i32, ptr @test_count, align 4, !tbaa !5
  %9971 = add nsw i32 %9970, 1
  store i32 %9971, ptr @test_count, align 4, !tbaa !5
  %9972 = load ptr, ptr %183, align 8, !tbaa !9
  %9973 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %9972, i32 noundef 16)
  br i1 %9973, label %10027, label %9974

9974:                                             ; preds = %9969
  br label %9975

9975:                                             ; preds = %9974
  br label %9976

9976:                                             ; preds = %9975
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #12
  %9977 = call ptr @__errno_location() #13
  %9978 = load i32, ptr %9977, align 4, !tbaa !5
  store i32 %9978, ptr %210, align 4, !tbaa !5
  %9979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9980 = call i32 @s2n_print_stacktrace(ptr noundef %9979)
  %9981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9982 = trunc i8 %9981 to i1
  br i1 %9982, label %9983, label %10005

9983:                                             ; preds = %9976
  %9984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9985 = call i32 @fileno(ptr noundef %9984) #12
  %9986 = call i32 @isatty(i32 noundef %9985) #12
  %9987 = icmp ne i32 %9986, 0
  br i1 %9987, label %9988, label %10005

9988:                                             ; preds = %9983
  %9989 = load i32, ptr %210, align 4, !tbaa !5
  %9990 = call ptr @__errno_location() #13
  store i32 %9989, ptr %9990, align 4, !tbaa !5
  %9991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9992 = load i32, ptr @test_count, align 4, !tbaa !5
  %9993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9994 = load i32, ptr %9993, align 4, !tbaa !5
  %9995 = call ptr @s2n_strerror(i32 noundef %9994, ptr noundef @.str.3)
  %9996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9997 = load i32, ptr %9996, align 4, !tbaa !5
  %9998 = call ptr @s2n_strerror_debug(i32 noundef %9997, ptr noundef @.str.3)
  %9999 = call ptr @__errno_location() #13
  %10000 = load i32, ptr %9999, align 4, !tbaa !5
  %10001 = call ptr @strerror(i32 noundef %10000) #12
  %10002 = call ptr @__errno_location() #13
  %10003 = load i32, ptr %10002, align 4, !tbaa !5
  %10004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9991, ptr noundef @.str, i32 noundef %9992, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 512, ptr noundef %9995, ptr noundef %9998, ptr noundef %10001, i32 noundef %10003) #12
  br label %10022

10005:                                            ; preds = %9983, %9976
  %10006 = load i32, ptr %210, align 4, !tbaa !5
  %10007 = call ptr @__errno_location() #13
  store i32 %10006, ptr %10007, align 4, !tbaa !5
  %10008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10009 = load i32, ptr @test_count, align 4, !tbaa !5
  %10010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10011 = load i32, ptr %10010, align 4, !tbaa !5
  %10012 = call ptr @s2n_strerror(i32 noundef %10011, ptr noundef @.str.3)
  %10013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10014 = load i32, ptr %10013, align 4, !tbaa !5
  %10015 = call ptr @s2n_strerror_debug(i32 noundef %10014, ptr noundef @.str.3)
  %10016 = call ptr @__errno_location() #13
  %10017 = load i32, ptr %10016, align 4, !tbaa !5
  %10018 = call ptr @strerror(i32 noundef %10017) #12
  %10019 = call ptr @__errno_location() #13
  %10020 = load i32, ptr %10019, align 4, !tbaa !5
  %10021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10008, ptr noundef @.str.4, i32 noundef %10009, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 512, ptr noundef %10012, ptr noundef %10015, ptr noundef %10018, i32 noundef %10020) #12
  br label %10022

10022:                                            ; preds = %10005, %9988
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #12
  br label %10023

10023:                                            ; preds = %10022
  br label %10024

10024:                                            ; preds = %10023
  call void @exit(i32 noundef 1) #14
  unreachable

10025:                                            ; No predecessors!
  br label %10026

10026:                                            ; preds = %10025
  br label %10027

10027:                                            ; preds = %10026, %9969
  br label %10028

10028:                                            ; preds = %10027
  br label %10029

10029:                                            ; preds = %10028
  br label %10030

10030:                                            ; preds = %10029
  %10031 = load i32, ptr @test_count, align 4, !tbaa !5
  %10032 = add nsw i32 %10031, 1
  store i32 %10032, ptr @test_count, align 4, !tbaa !5
  %10033 = load ptr, ptr %183, align 8, !tbaa !9
  %10034 = call i32 @s2n_connection_free(ptr noundef %10033)
  %10035 = icmp eq i32 %10034, -1
  br i1 %10035, label %10036, label %10089

10036:                                            ; preds = %10030
  br label %10037

10037:                                            ; preds = %10036
  br label %10038

10038:                                            ; preds = %10037
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #12
  %10039 = call ptr @__errno_location() #13
  %10040 = load i32, ptr %10039, align 4, !tbaa !5
  store i32 %10040, ptr %211, align 4, !tbaa !5
  %10041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10042 = call i32 @s2n_print_stacktrace(ptr noundef %10041)
  %10043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10044 = trunc i8 %10043 to i1
  br i1 %10044, label %10045, label %10067

10045:                                            ; preds = %10038
  %10046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10047 = call i32 @fileno(ptr noundef %10046) #12
  %10048 = call i32 @isatty(i32 noundef %10047) #12
  %10049 = icmp ne i32 %10048, 0
  br i1 %10049, label %10050, label %10067

10050:                                            ; preds = %10045
  %10051 = load i32, ptr %211, align 4, !tbaa !5
  %10052 = call ptr @__errno_location() #13
  store i32 %10051, ptr %10052, align 4, !tbaa !5
  %10053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10054 = load i32, ptr @test_count, align 4, !tbaa !5
  %10055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  %10057 = call ptr @s2n_strerror(i32 noundef %10056, ptr noundef @.str.3)
  %10058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  %10060 = call ptr @s2n_strerror_debug(i32 noundef %10059, ptr noundef @.str.3)
  %10061 = call ptr @__errno_location() #13
  %10062 = load i32, ptr %10061, align 4, !tbaa !5
  %10063 = call ptr @strerror(i32 noundef %10062) #12
  %10064 = call ptr @__errno_location() #13
  %10065 = load i32, ptr %10064, align 4, !tbaa !5
  %10066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10053, ptr noundef @.str, i32 noundef %10054, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 514, ptr noundef %10057, ptr noundef %10060, ptr noundef %10063, i32 noundef %10065) #12
  br label %10084

10067:                                            ; preds = %10045, %10038
  %10068 = load i32, ptr %211, align 4, !tbaa !5
  %10069 = call ptr @__errno_location() #13
  store i32 %10068, ptr %10069, align 4, !tbaa !5
  %10070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10071 = load i32, ptr @test_count, align 4, !tbaa !5
  %10072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10073 = load i32, ptr %10072, align 4, !tbaa !5
  %10074 = call ptr @s2n_strerror(i32 noundef %10073, ptr noundef @.str.3)
  %10075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10076 = load i32, ptr %10075, align 4, !tbaa !5
  %10077 = call ptr @s2n_strerror_debug(i32 noundef %10076, ptr noundef @.str.3)
  %10078 = call ptr @__errno_location() #13
  %10079 = load i32, ptr %10078, align 4, !tbaa !5
  %10080 = call ptr @strerror(i32 noundef %10079) #12
  %10081 = call ptr @__errno_location() #13
  %10082 = load i32, ptr %10081, align 4, !tbaa !5
  %10083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10070, ptr noundef @.str.4, i32 noundef %10071, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 514, ptr noundef %10074, ptr noundef %10077, ptr noundef %10080, i32 noundef %10082) #12
  br label %10084

10084:                                            ; preds = %10067, %10050
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #12
  br label %10085

10085:                                            ; preds = %10084
  br label %10086

10086:                                            ; preds = %10085
  call void @exit(i32 noundef 1) #14
  unreachable

10087:                                            ; No predecessors!
  br label %10088

10088:                                            ; preds = %10087
  br label %10089

10089:                                            ; preds = %10088, %10030
  br label %10090

10090:                                            ; preds = %10089
  br label %10091

10091:                                            ; preds = %10090
  br label %10092

10092:                                            ; preds = %10091
  %10093 = load i32, ptr @test_count, align 4, !tbaa !5
  %10094 = add nsw i32 %10093, 1
  store i32 %10094, ptr @test_count, align 4, !tbaa !5
  %10095 = load ptr, ptr %184, align 8, !tbaa !9
  %10096 = call i32 @s2n_connection_free(ptr noundef %10095)
  %10097 = icmp eq i32 %10096, -1
  br i1 %10097, label %10098, label %10151

10098:                                            ; preds = %10092
  br label %10099

10099:                                            ; preds = %10098
  br label %10100

10100:                                            ; preds = %10099
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #12
  %10101 = call ptr @__errno_location() #13
  %10102 = load i32, ptr %10101, align 4, !tbaa !5
  store i32 %10102, ptr %212, align 4, !tbaa !5
  %10103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10104 = call i32 @s2n_print_stacktrace(ptr noundef %10103)
  %10105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10106 = trunc i8 %10105 to i1
  br i1 %10106, label %10107, label %10129

10107:                                            ; preds = %10100
  %10108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10109 = call i32 @fileno(ptr noundef %10108) #12
  %10110 = call i32 @isatty(i32 noundef %10109) #12
  %10111 = icmp ne i32 %10110, 0
  br i1 %10111, label %10112, label %10129

10112:                                            ; preds = %10107
  %10113 = load i32, ptr %212, align 4, !tbaa !5
  %10114 = call ptr @__errno_location() #13
  store i32 %10113, ptr %10114, align 4, !tbaa !5
  %10115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10116 = load i32, ptr @test_count, align 4, !tbaa !5
  %10117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10118 = load i32, ptr %10117, align 4, !tbaa !5
  %10119 = call ptr @s2n_strerror(i32 noundef %10118, ptr noundef @.str.3)
  %10120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  %10122 = call ptr @s2n_strerror_debug(i32 noundef %10121, ptr noundef @.str.3)
  %10123 = call ptr @__errno_location() #13
  %10124 = load i32, ptr %10123, align 4, !tbaa !5
  %10125 = call ptr @strerror(i32 noundef %10124) #12
  %10126 = call ptr @__errno_location() #13
  %10127 = load i32, ptr %10126, align 4, !tbaa !5
  %10128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10115, ptr noundef @.str, i32 noundef %10116, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 515, ptr noundef %10119, ptr noundef %10122, ptr noundef %10125, i32 noundef %10127) #12
  br label %10146

10129:                                            ; preds = %10107, %10100
  %10130 = load i32, ptr %212, align 4, !tbaa !5
  %10131 = call ptr @__errno_location() #13
  store i32 %10130, ptr %10131, align 4, !tbaa !5
  %10132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10133 = load i32, ptr @test_count, align 4, !tbaa !5
  %10134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10135 = load i32, ptr %10134, align 4, !tbaa !5
  %10136 = call ptr @s2n_strerror(i32 noundef %10135, ptr noundef @.str.3)
  %10137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10138 = load i32, ptr %10137, align 4, !tbaa !5
  %10139 = call ptr @s2n_strerror_debug(i32 noundef %10138, ptr noundef @.str.3)
  %10140 = call ptr @__errno_location() #13
  %10141 = load i32, ptr %10140, align 4, !tbaa !5
  %10142 = call ptr @strerror(i32 noundef %10141) #12
  %10143 = call ptr @__errno_location() #13
  %10144 = load i32, ptr %10143, align 4, !tbaa !5
  %10145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10132, ptr noundef @.str.4, i32 noundef %10133, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 515, ptr noundef %10136, ptr noundef %10139, ptr noundef %10142, i32 noundef %10144) #12
  br label %10146

10146:                                            ; preds = %10129, %10112
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #12
  br label %10147

10147:                                            ; preds = %10146
  br label %10148

10148:                                            ; preds = %10147
  call void @exit(i32 noundef 1) #14
  unreachable

10149:                                            ; No predecessors!
  br label %10150

10150:                                            ; preds = %10149
  br label %10151

10151:                                            ; preds = %10150, %10092
  br label %10152

10152:                                            ; preds = %10151
  br label %10153

10153:                                            ; preds = %10152
  br label %10154

10154:                                            ; preds = %10153
  %10155 = load i32, ptr @test_count, align 4, !tbaa !5
  %10156 = add nsw i32 %10155, 1
  store i32 %10156, ptr @test_count, align 4, !tbaa !5
  %10157 = load ptr, ptr %182, align 8, !tbaa !9
  %10158 = call i32 @s2n_config_free(ptr noundef %10157)
  %10159 = icmp eq i32 %10158, -1
  br i1 %10159, label %10160, label %10213

10160:                                            ; preds = %10154
  br label %10161

10161:                                            ; preds = %10160
  br label %10162

10162:                                            ; preds = %10161
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #12
  %10163 = call ptr @__errno_location() #13
  %10164 = load i32, ptr %10163, align 4, !tbaa !5
  store i32 %10164, ptr %213, align 4, !tbaa !5
  %10165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10166 = call i32 @s2n_print_stacktrace(ptr noundef %10165)
  %10167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10168 = trunc i8 %10167 to i1
  br i1 %10168, label %10169, label %10191

10169:                                            ; preds = %10162
  %10170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10171 = call i32 @fileno(ptr noundef %10170) #12
  %10172 = call i32 @isatty(i32 noundef %10171) #12
  %10173 = icmp ne i32 %10172, 0
  br i1 %10173, label %10174, label %10191

10174:                                            ; preds = %10169
  %10175 = load i32, ptr %213, align 4, !tbaa !5
  %10176 = call ptr @__errno_location() #13
  store i32 %10175, ptr %10176, align 4, !tbaa !5
  %10177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10178 = load i32, ptr @test_count, align 4, !tbaa !5
  %10179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10180 = load i32, ptr %10179, align 4, !tbaa !5
  %10181 = call ptr @s2n_strerror(i32 noundef %10180, ptr noundef @.str.3)
  %10182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10183 = load i32, ptr %10182, align 4, !tbaa !5
  %10184 = call ptr @s2n_strerror_debug(i32 noundef %10183, ptr noundef @.str.3)
  %10185 = call ptr @__errno_location() #13
  %10186 = load i32, ptr %10185, align 4, !tbaa !5
  %10187 = call ptr @strerror(i32 noundef %10186) #12
  %10188 = call ptr @__errno_location() #13
  %10189 = load i32, ptr %10188, align 4, !tbaa !5
  %10190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10177, ptr noundef @.str, i32 noundef %10178, ptr noundef @.str.130, ptr noundef @.str.2, i32 noundef 516, ptr noundef %10181, ptr noundef %10184, ptr noundef %10187, i32 noundef %10189) #12
  br label %10208

10191:                                            ; preds = %10169, %10162
  %10192 = load i32, ptr %213, align 4, !tbaa !5
  %10193 = call ptr @__errno_location() #13
  store i32 %10192, ptr %10193, align 4, !tbaa !5
  %10194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10195 = load i32, ptr @test_count, align 4, !tbaa !5
  %10196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10197 = load i32, ptr %10196, align 4, !tbaa !5
  %10198 = call ptr @s2n_strerror(i32 noundef %10197, ptr noundef @.str.3)
  %10199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10200 = load i32, ptr %10199, align 4, !tbaa !5
  %10201 = call ptr @s2n_strerror_debug(i32 noundef %10200, ptr noundef @.str.3)
  %10202 = call ptr @__errno_location() #13
  %10203 = load i32, ptr %10202, align 4, !tbaa !5
  %10204 = call ptr @strerror(i32 noundef %10203) #12
  %10205 = call ptr @__errno_location() #13
  %10206 = load i32, ptr %10205, align 4, !tbaa !5
  %10207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10194, ptr noundef @.str.4, i32 noundef %10195, ptr noundef @.str.130, ptr noundef @.str.2, i32 noundef 516, ptr noundef %10198, ptr noundef %10201, ptr noundef %10204, i32 noundef %10206) #12
  br label %10208

10208:                                            ; preds = %10191, %10174
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #12
  br label %10209

10209:                                            ; preds = %10208
  br label %10210

10210:                                            ; preds = %10209
  call void @exit(i32 noundef 1) #14
  unreachable

10211:                                            ; No predecessors!
  br label %10212

10212:                                            ; preds = %10211
  br label %10213

10213:                                            ; preds = %10212, %10154
  br label %10214

10214:                                            ; preds = %10213
  br label %10215

10215:                                            ; preds = %10214
  br label %10216

10216:                                            ; preds = %10215
  %10217 = load i32, ptr @test_count, align 4, !tbaa !5
  %10218 = add nsw i32 %10217, 1
  store i32 %10218, ptr @test_count, align 4, !tbaa !5
  %10219 = load ptr, ptr %181, align 8, !tbaa !9
  %10220 = call i32 @s2n_config_free(ptr noundef %10219)
  %10221 = icmp eq i32 %10220, -1
  br i1 %10221, label %10222, label %10275

10222:                                            ; preds = %10216
  br label %10223

10223:                                            ; preds = %10222
  br label %10224

10224:                                            ; preds = %10223
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #12
  %10225 = call ptr @__errno_location() #13
  %10226 = load i32, ptr %10225, align 4, !tbaa !5
  store i32 %10226, ptr %214, align 4, !tbaa !5
  %10227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10228 = call i32 @s2n_print_stacktrace(ptr noundef %10227)
  %10229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10230 = trunc i8 %10229 to i1
  br i1 %10230, label %10231, label %10253

10231:                                            ; preds = %10224
  %10232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10233 = call i32 @fileno(ptr noundef %10232) #12
  %10234 = call i32 @isatty(i32 noundef %10233) #12
  %10235 = icmp ne i32 %10234, 0
  br i1 %10235, label %10236, label %10253

10236:                                            ; preds = %10231
  %10237 = load i32, ptr %214, align 4, !tbaa !5
  %10238 = call ptr @__errno_location() #13
  store i32 %10237, ptr %10238, align 4, !tbaa !5
  %10239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10240 = load i32, ptr @test_count, align 4, !tbaa !5
  %10241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10242 = load i32, ptr %10241, align 4, !tbaa !5
  %10243 = call ptr @s2n_strerror(i32 noundef %10242, ptr noundef @.str.3)
  %10244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10245 = load i32, ptr %10244, align 4, !tbaa !5
  %10246 = call ptr @s2n_strerror_debug(i32 noundef %10245, ptr noundef @.str.3)
  %10247 = call ptr @__errno_location() #13
  %10248 = load i32, ptr %10247, align 4, !tbaa !5
  %10249 = call ptr @strerror(i32 noundef %10248) #12
  %10250 = call ptr @__errno_location() #13
  %10251 = load i32, ptr %10250, align 4, !tbaa !5
  %10252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10239, ptr noundef @.str, i32 noundef %10240, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 517, ptr noundef %10243, ptr noundef %10246, ptr noundef %10249, i32 noundef %10251) #12
  br label %10270

10253:                                            ; preds = %10231, %10224
  %10254 = load i32, ptr %214, align 4, !tbaa !5
  %10255 = call ptr @__errno_location() #13
  store i32 %10254, ptr %10255, align 4, !tbaa !5
  %10256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10257 = load i32, ptr @test_count, align 4, !tbaa !5
  %10258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10259 = load i32, ptr %10258, align 4, !tbaa !5
  %10260 = call ptr @s2n_strerror(i32 noundef %10259, ptr noundef @.str.3)
  %10261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10262 = load i32, ptr %10261, align 4, !tbaa !5
  %10263 = call ptr @s2n_strerror_debug(i32 noundef %10262, ptr noundef @.str.3)
  %10264 = call ptr @__errno_location() #13
  %10265 = load i32, ptr %10264, align 4, !tbaa !5
  %10266 = call ptr @strerror(i32 noundef %10265) #12
  %10267 = call ptr @__errno_location() #13
  %10268 = load i32, ptr %10267, align 4, !tbaa !5
  %10269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10256, ptr noundef @.str.4, i32 noundef %10257, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 517, ptr noundef %10260, ptr noundef %10263, ptr noundef %10266, i32 noundef %10268) #12
  br label %10270

10270:                                            ; preds = %10253, %10236
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #12
  br label %10271

10271:                                            ; preds = %10270
  br label %10272

10272:                                            ; preds = %10271
  call void @exit(i32 noundef 1) #14
  unreachable

10273:                                            ; No predecessors!
  br label %10274

10274:                                            ; preds = %10273
  br label %10275

10275:                                            ; preds = %10274, %10216
  br label %10276

10276:                                            ; preds = %10275
  br label %10277

10277:                                            ; preds = %10276
  br label %10278

10278:                                            ; preds = %10277
  %10279 = load i32, ptr @test_count, align 4, !tbaa !5
  %10280 = add nsw i32 %10279, 1
  store i32 %10280, ptr @test_count, align 4, !tbaa !5
  %10281 = load ptr, ptr %185, align 8, !tbaa !9
  %10282 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %10281)
  %10283 = icmp eq i32 %10282, -1
  br i1 %10283, label %10284, label %10337

10284:                                            ; preds = %10278
  br label %10285

10285:                                            ; preds = %10284
  br label %10286

10286:                                            ; preds = %10285
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #12
  %10287 = call ptr @__errno_location() #13
  %10288 = load i32, ptr %10287, align 4, !tbaa !5
  store i32 %10288, ptr %215, align 4, !tbaa !5
  %10289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10290 = call i32 @s2n_print_stacktrace(ptr noundef %10289)
  %10291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10292 = trunc i8 %10291 to i1
  br i1 %10292, label %10293, label %10315

10293:                                            ; preds = %10286
  %10294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10295 = call i32 @fileno(ptr noundef %10294) #12
  %10296 = call i32 @isatty(i32 noundef %10295) #12
  %10297 = icmp ne i32 %10296, 0
  br i1 %10297, label %10298, label %10315

10298:                                            ; preds = %10293
  %10299 = load i32, ptr %215, align 4, !tbaa !5
  %10300 = call ptr @__errno_location() #13
  store i32 %10299, ptr %10300, align 4, !tbaa !5
  %10301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10302 = load i32, ptr @test_count, align 4, !tbaa !5
  %10303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10304 = load i32, ptr %10303, align 4, !tbaa !5
  %10305 = call ptr @s2n_strerror(i32 noundef %10304, ptr noundef @.str.3)
  %10306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10307 = load i32, ptr %10306, align 4, !tbaa !5
  %10308 = call ptr @s2n_strerror_debug(i32 noundef %10307, ptr noundef @.str.3)
  %10309 = call ptr @__errno_location() #13
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  %10311 = call ptr @strerror(i32 noundef %10310) #12
  %10312 = call ptr @__errno_location() #13
  %10313 = load i32, ptr %10312, align 4, !tbaa !5
  %10314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10301, ptr noundef @.str, i32 noundef %10302, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 518, ptr noundef %10305, ptr noundef %10308, ptr noundef %10311, i32 noundef %10313) #12
  br label %10332

10315:                                            ; preds = %10293, %10286
  %10316 = load i32, ptr %215, align 4, !tbaa !5
  %10317 = call ptr @__errno_location() #13
  store i32 %10316, ptr %10317, align 4, !tbaa !5
  %10318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10319 = load i32, ptr @test_count, align 4, !tbaa !5
  %10320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10321 = load i32, ptr %10320, align 4, !tbaa !5
  %10322 = call ptr @s2n_strerror(i32 noundef %10321, ptr noundef @.str.3)
  %10323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10324 = load i32, ptr %10323, align 4, !tbaa !5
  %10325 = call ptr @s2n_strerror_debug(i32 noundef %10324, ptr noundef @.str.3)
  %10326 = call ptr @__errno_location() #13
  %10327 = load i32, ptr %10326, align 4, !tbaa !5
  %10328 = call ptr @strerror(i32 noundef %10327) #12
  %10329 = call ptr @__errno_location() #13
  %10330 = load i32, ptr %10329, align 4, !tbaa !5
  %10331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10318, ptr noundef @.str.4, i32 noundef %10319, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 518, ptr noundef %10322, ptr noundef %10325, ptr noundef %10328, i32 noundef %10330) #12
  br label %10332

10332:                                            ; preds = %10315, %10298
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #12
  br label %10333

10333:                                            ; preds = %10332
  br label %10334

10334:                                            ; preds = %10333
  call void @exit(i32 noundef 1) #14
  unreachable

10335:                                            ; No predecessors!
  br label %10336

10336:                                            ; preds = %10335
  br label %10337

10337:                                            ; preds = %10336, %10278
  br label %10338

10338:                                            ; preds = %10337
  br label %10339

10339:                                            ; preds = %10338
  br label %10340

10340:                                            ; preds = %10339
  %10341 = load i32, ptr @test_count, align 4, !tbaa !5
  %10342 = add nsw i32 %10341, 1
  store i32 %10342, ptr @test_count, align 4, !tbaa !5
  %10343 = call i32 @s2n_io_pair_close(ptr noundef %199)
  %10344 = icmp eq i32 %10343, -1
  br i1 %10344, label %10345, label %10398

10345:                                            ; preds = %10340
  br label %10346

10346:                                            ; preds = %10345
  br label %10347

10347:                                            ; preds = %10346
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #12
  %10348 = call ptr @__errno_location() #13
  %10349 = load i32, ptr %10348, align 4, !tbaa !5
  store i32 %10349, ptr %216, align 4, !tbaa !5
  %10350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10351 = call i32 @s2n_print_stacktrace(ptr noundef %10350)
  %10352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10353 = trunc i8 %10352 to i1
  br i1 %10353, label %10354, label %10376

10354:                                            ; preds = %10347
  %10355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10356 = call i32 @fileno(ptr noundef %10355) #12
  %10357 = call i32 @isatty(i32 noundef %10356) #12
  %10358 = icmp ne i32 %10357, 0
  br i1 %10358, label %10359, label %10376

10359:                                            ; preds = %10354
  %10360 = load i32, ptr %216, align 4, !tbaa !5
  %10361 = call ptr @__errno_location() #13
  store i32 %10360, ptr %10361, align 4, !tbaa !5
  %10362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10363 = load i32, ptr @test_count, align 4, !tbaa !5
  %10364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10365 = load i32, ptr %10364, align 4, !tbaa !5
  %10366 = call ptr @s2n_strerror(i32 noundef %10365, ptr noundef @.str.3)
  %10367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10368 = load i32, ptr %10367, align 4, !tbaa !5
  %10369 = call ptr @s2n_strerror_debug(i32 noundef %10368, ptr noundef @.str.3)
  %10370 = call ptr @__errno_location() #13
  %10371 = load i32, ptr %10370, align 4, !tbaa !5
  %10372 = call ptr @strerror(i32 noundef %10371) #12
  %10373 = call ptr @__errno_location() #13
  %10374 = load i32, ptr %10373, align 4, !tbaa !5
  %10375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10362, ptr noundef @.str, i32 noundef %10363, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 519, ptr noundef %10366, ptr noundef %10369, ptr noundef %10372, i32 noundef %10374) #12
  br label %10393

10376:                                            ; preds = %10354, %10347
  %10377 = load i32, ptr %216, align 4, !tbaa !5
  %10378 = call ptr @__errno_location() #13
  store i32 %10377, ptr %10378, align 4, !tbaa !5
  %10379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10380 = load i32, ptr @test_count, align 4, !tbaa !5
  %10381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10382 = load i32, ptr %10381, align 4, !tbaa !5
  %10383 = call ptr @s2n_strerror(i32 noundef %10382, ptr noundef @.str.3)
  %10384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10385 = load i32, ptr %10384, align 4, !tbaa !5
  %10386 = call ptr @s2n_strerror_debug(i32 noundef %10385, ptr noundef @.str.3)
  %10387 = call ptr @__errno_location() #13
  %10388 = load i32, ptr %10387, align 4, !tbaa !5
  %10389 = call ptr @strerror(i32 noundef %10388) #12
  %10390 = call ptr @__errno_location() #13
  %10391 = load i32, ptr %10390, align 4, !tbaa !5
  %10392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10379, ptr noundef @.str.4, i32 noundef %10380, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 519, ptr noundef %10383, ptr noundef %10386, ptr noundef %10389, i32 noundef %10391) #12
  br label %10393

10393:                                            ; preds = %10376, %10359
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #12
  br label %10394

10394:                                            ; preds = %10393
  br label %10395

10395:                                            ; preds = %10394
  call void @exit(i32 noundef 1) #14
  unreachable

10396:                                            ; No predecessors!
  br label %10397

10397:                                            ; preds = %10396
  br label %10398

10398:                                            ; preds = %10397, %10340
  br label %10399

10399:                                            ; preds = %10398
  br label %10400

10400:                                            ; preds = %10399
  call void @llvm.lifetime.end.p0(i64 12, ptr %202) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #12
  br label %10401

10401:                                            ; preds = %10400
  %10402 = load i32, ptr @test_count, align 4, !tbaa !5
  %10403 = add nsw i32 %10402, 1
  store i32 %10403, ptr @test_count, align 4, !tbaa !5
  %10404 = call i32 @hello_retry_client_hello_cb_test()
  %10405 = getelementptr inbounds %struct.s2n_result, ptr %217, i32 0, i32 0
  store i32 %10404, ptr %10405, align 4
  %10406 = getelementptr inbounds %struct.s2n_result, ptr %217, i32 0, i32 0
  %10407 = load i32, ptr %10406, align 4
  %10408 = call zeroext i1 @s2n_result_is_ok(i32 %10407)
  br i1 %10408, label %10460, label %10409

10409:                                            ; preds = %10401
  br label %10410

10410:                                            ; preds = %10409
  br label %10411

10411:                                            ; preds = %10410
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #12
  %10412 = call ptr @__errno_location() #13
  %10413 = load i32, ptr %10412, align 4, !tbaa !5
  store i32 %10413, ptr %218, align 4, !tbaa !5
  %10414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10415 = call i32 @s2n_print_stacktrace(ptr noundef %10414)
  %10416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10417 = trunc i8 %10416 to i1
  br i1 %10417, label %10418, label %10440

10418:                                            ; preds = %10411
  %10419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10420 = call i32 @fileno(ptr noundef %10419) #12
  %10421 = call i32 @isatty(i32 noundef %10420) #12
  %10422 = icmp ne i32 %10421, 0
  br i1 %10422, label %10423, label %10440

10423:                                            ; preds = %10418
  %10424 = load i32, ptr %218, align 4, !tbaa !5
  %10425 = call ptr @__errno_location() #13
  store i32 %10424, ptr %10425, align 4, !tbaa !5
  %10426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10427 = load i32, ptr @test_count, align 4, !tbaa !5
  %10428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10429 = load i32, ptr %10428, align 4, !tbaa !5
  %10430 = call ptr @s2n_strerror(i32 noundef %10429, ptr noundef @.str.3)
  %10431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10432 = load i32, ptr %10431, align 4, !tbaa !5
  %10433 = call ptr @s2n_strerror_debug(i32 noundef %10432, ptr noundef @.str.3)
  %10434 = call ptr @__errno_location() #13
  %10435 = load i32, ptr %10434, align 4, !tbaa !5
  %10436 = call ptr @strerror(i32 noundef %10435) #12
  %10437 = call ptr @__errno_location() #13
  %10438 = load i32, ptr %10437, align 4, !tbaa !5
  %10439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10426, ptr noundef @.str, i32 noundef %10427, ptr noundef @.str.136, ptr noundef @.str.2, i32 noundef 524, ptr noundef %10430, ptr noundef %10433, ptr noundef %10436, i32 noundef %10438) #12
  br label %10457

10440:                                            ; preds = %10418, %10411
  %10441 = load i32, ptr %218, align 4, !tbaa !5
  %10442 = call ptr @__errno_location() #13
  store i32 %10441, ptr %10442, align 4, !tbaa !5
  %10443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10444 = load i32, ptr @test_count, align 4, !tbaa !5
  %10445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10446 = load i32, ptr %10445, align 4, !tbaa !5
  %10447 = call ptr @s2n_strerror(i32 noundef %10446, ptr noundef @.str.3)
  %10448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10449 = load i32, ptr %10448, align 4, !tbaa !5
  %10450 = call ptr @s2n_strerror_debug(i32 noundef %10449, ptr noundef @.str.3)
  %10451 = call ptr @__errno_location() #13
  %10452 = load i32, ptr %10451, align 4, !tbaa !5
  %10453 = call ptr @strerror(i32 noundef %10452) #12
  %10454 = call ptr @__errno_location() #13
  %10455 = load i32, ptr %10454, align 4, !tbaa !5
  %10456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10443, ptr noundef @.str.4, i32 noundef %10444, ptr noundef @.str.136, ptr noundef @.str.2, i32 noundef 524, ptr noundef %10447, ptr noundef %10450, ptr noundef %10453, i32 noundef %10455) #12
  br label %10457

10457:                                            ; preds = %10440, %10423
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #12
  br label %10458

10458:                                            ; preds = %10457
  call void @exit(i32 noundef 1) #14
  unreachable

10459:                                            ; No predecessors!
  br label %10460

10460:                                            ; preds = %10459, %10401
  br label %10461

10461:                                            ; preds = %10460
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #12
  store ptr null, ptr %219, align 8, !tbaa !9
  br label %10462

10462:                                            ; preds = %10461
  %10463 = load i32, ptr @test_count, align 4, !tbaa !5
  %10464 = add nsw i32 %10463, 1
  store i32 %10464, ptr @test_count, align 4, !tbaa !5
  %10465 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10465, ptr %219, align 8, !tbaa !9
  %10466 = icmp eq ptr %10465, null
  br i1 %10466, label %10467, label %10520

10467:                                            ; preds = %10462
  br label %10468

10468:                                            ; preds = %10467
  br label %10469

10469:                                            ; preds = %10468
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #12
  %10470 = call ptr @__errno_location() #13
  %10471 = load i32, ptr %10470, align 4, !tbaa !5
  store i32 %10471, ptr %220, align 4, !tbaa !5
  %10472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10473 = call i32 @s2n_print_stacktrace(ptr noundef %10472)
  %10474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10475 = trunc i8 %10474 to i1
  br i1 %10475, label %10476, label %10498

10476:                                            ; preds = %10469
  %10477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10478 = call i32 @fileno(ptr noundef %10477) #12
  %10479 = call i32 @isatty(i32 noundef %10478) #12
  %10480 = icmp ne i32 %10479, 0
  br i1 %10480, label %10481, label %10498

10481:                                            ; preds = %10476
  %10482 = load i32, ptr %220, align 4, !tbaa !5
  %10483 = call ptr @__errno_location() #13
  store i32 %10482, ptr %10483, align 4, !tbaa !5
  %10484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10485 = load i32, ptr @test_count, align 4, !tbaa !5
  %10486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10487 = load i32, ptr %10486, align 4, !tbaa !5
  %10488 = call ptr @s2n_strerror(i32 noundef %10487, ptr noundef @.str.3)
  %10489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10490 = load i32, ptr %10489, align 4, !tbaa !5
  %10491 = call ptr @s2n_strerror_debug(i32 noundef %10490, ptr noundef @.str.3)
  %10492 = call ptr @__errno_location() #13
  %10493 = load i32, ptr %10492, align 4, !tbaa !5
  %10494 = call ptr @strerror(i32 noundef %10493) #12
  %10495 = call ptr @__errno_location() #13
  %10496 = load i32, ptr %10495, align 4, !tbaa !5
  %10497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10484, ptr noundef @.str, i32 noundef %10485, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 531, ptr noundef %10488, ptr noundef %10491, ptr noundef %10494, i32 noundef %10496) #12
  br label %10515

10498:                                            ; preds = %10476, %10469
  %10499 = load i32, ptr %220, align 4, !tbaa !5
  %10500 = call ptr @__errno_location() #13
  store i32 %10499, ptr %10500, align 4, !tbaa !5
  %10501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10502 = load i32, ptr @test_count, align 4, !tbaa !5
  %10503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10504 = load i32, ptr %10503, align 4, !tbaa !5
  %10505 = call ptr @s2n_strerror(i32 noundef %10504, ptr noundef @.str.3)
  %10506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10507 = load i32, ptr %10506, align 4, !tbaa !5
  %10508 = call ptr @s2n_strerror_debug(i32 noundef %10507, ptr noundef @.str.3)
  %10509 = call ptr @__errno_location() #13
  %10510 = load i32, ptr %10509, align 4, !tbaa !5
  %10511 = call ptr @strerror(i32 noundef %10510) #12
  %10512 = call ptr @__errno_location() #13
  %10513 = load i32, ptr %10512, align 4, !tbaa !5
  %10514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10501, ptr noundef @.str.4, i32 noundef %10502, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 531, ptr noundef %10505, ptr noundef %10508, ptr noundef %10511, i32 noundef %10513) #12
  br label %10515

10515:                                            ; preds = %10498, %10481
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #12
  br label %10516

10516:                                            ; preds = %10515
  br label %10517

10517:                                            ; preds = %10516
  call void @exit(i32 noundef 1) #14
  unreachable

10518:                                            ; No predecessors!
  br label %10519

10519:                                            ; preds = %10518
  br label %10520

10520:                                            ; preds = %10519, %10462
  br label %10521

10521:                                            ; preds = %10520
  br label %10522

10522:                                            ; preds = %10521
  br label %10523

10523:                                            ; preds = %10522
  %10524 = load i32, ptr @test_count, align 4, !tbaa !5
  %10525 = add nsw i32 %10524, 1
  store i32 %10525, ptr @test_count, align 4, !tbaa !5
  %10526 = load ptr, ptr %219, align 8, !tbaa !9
  %10527 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %10526, i8 noundef zeroext 34)
  %10528 = icmp eq i32 %10527, -1
  br i1 %10528, label %10529, label %10582

10529:                                            ; preds = %10523
  br label %10530

10530:                                            ; preds = %10529
  br label %10531

10531:                                            ; preds = %10530
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #12
  %10532 = call ptr @__errno_location() #13
  %10533 = load i32, ptr %10532, align 4, !tbaa !5
  store i32 %10533, ptr %221, align 4, !tbaa !5
  %10534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10535 = call i32 @s2n_print_stacktrace(ptr noundef %10534)
  %10536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10537 = trunc i8 %10536 to i1
  br i1 %10537, label %10538, label %10560

10538:                                            ; preds = %10531
  %10539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10540 = call i32 @fileno(ptr noundef %10539) #12
  %10541 = call i32 @isatty(i32 noundef %10540) #12
  %10542 = icmp ne i32 %10541, 0
  br i1 %10542, label %10543, label %10560

10543:                                            ; preds = %10538
  %10544 = load i32, ptr %221, align 4, !tbaa !5
  %10545 = call ptr @__errno_location() #13
  store i32 %10544, ptr %10545, align 4, !tbaa !5
  %10546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10547 = load i32, ptr @test_count, align 4, !tbaa !5
  %10548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10549 = load i32, ptr %10548, align 4, !tbaa !5
  %10550 = call ptr @s2n_strerror(i32 noundef %10549, ptr noundef @.str.3)
  %10551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10552 = load i32, ptr %10551, align 4, !tbaa !5
  %10553 = call ptr @s2n_strerror_debug(i32 noundef %10552, ptr noundef @.str.3)
  %10554 = call ptr @__errno_location() #13
  %10555 = load i32, ptr %10554, align 4, !tbaa !5
  %10556 = call ptr @strerror(i32 noundef %10555) #12
  %10557 = call ptr @__errno_location() #13
  %10558 = load i32, ptr %10557, align 4, !tbaa !5
  %10559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10546, ptr noundef @.str, i32 noundef %10547, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 532, ptr noundef %10550, ptr noundef %10553, ptr noundef %10556, i32 noundef %10558) #12
  br label %10577

10560:                                            ; preds = %10538, %10531
  %10561 = load i32, ptr %221, align 4, !tbaa !5
  %10562 = call ptr @__errno_location() #13
  store i32 %10561, ptr %10562, align 4, !tbaa !5
  %10563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10564 = load i32, ptr @test_count, align 4, !tbaa !5
  %10565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10566 = load i32, ptr %10565, align 4, !tbaa !5
  %10567 = call ptr @s2n_strerror(i32 noundef %10566, ptr noundef @.str.3)
  %10568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10569 = load i32, ptr %10568, align 4, !tbaa !5
  %10570 = call ptr @s2n_strerror_debug(i32 noundef %10569, ptr noundef @.str.3)
  %10571 = call ptr @__errno_location() #13
  %10572 = load i32, ptr %10571, align 4, !tbaa !5
  %10573 = call ptr @strerror(i32 noundef %10572) #12
  %10574 = call ptr @__errno_location() #13
  %10575 = load i32, ptr %10574, align 4, !tbaa !5
  %10576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10563, ptr noundef @.str.4, i32 noundef %10564, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 532, ptr noundef %10567, ptr noundef %10570, ptr noundef %10573, i32 noundef %10575) #12
  br label %10577

10577:                                            ; preds = %10560, %10543
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #12
  br label %10578

10578:                                            ; preds = %10577
  br label %10579

10579:                                            ; preds = %10578
  call void @exit(i32 noundef 1) #14
  unreachable

10580:                                            ; No predecessors!
  br label %10581

10581:                                            ; preds = %10580
  br label %10582

10582:                                            ; preds = %10581, %10523
  br label %10583

10583:                                            ; preds = %10582
  br label %10584

10584:                                            ; preds = %10583
  br label %10585

10585:                                            ; preds = %10584
  %10586 = load i32, ptr @test_count, align 4, !tbaa !5
  %10587 = add nsw i32 %10586, 1
  store i32 %10587, ptr @test_count, align 4, !tbaa !5
  %10588 = load ptr, ptr %219, align 8, !tbaa !9
  %10589 = call i32 @s2n_set_hello_retry_required(ptr noundef %10588)
  %10590 = icmp eq i32 %10589, -1
  br i1 %10590, label %10591, label %10644

10591:                                            ; preds = %10585
  br label %10592

10592:                                            ; preds = %10591
  br label %10593

10593:                                            ; preds = %10592
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #12
  %10594 = call ptr @__errno_location() #13
  %10595 = load i32, ptr %10594, align 4, !tbaa !5
  store i32 %10595, ptr %222, align 4, !tbaa !5
  %10596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10597 = call i32 @s2n_print_stacktrace(ptr noundef %10596)
  %10598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10599 = trunc i8 %10598 to i1
  br i1 %10599, label %10600, label %10622

10600:                                            ; preds = %10593
  %10601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10602 = call i32 @fileno(ptr noundef %10601) #12
  %10603 = call i32 @isatty(i32 noundef %10602) #12
  %10604 = icmp ne i32 %10603, 0
  br i1 %10604, label %10605, label %10622

10605:                                            ; preds = %10600
  %10606 = load i32, ptr %222, align 4, !tbaa !5
  %10607 = call ptr @__errno_location() #13
  store i32 %10606, ptr %10607, align 4, !tbaa !5
  %10608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10609 = load i32, ptr @test_count, align 4, !tbaa !5
  %10610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10611 = load i32, ptr %10610, align 4, !tbaa !5
  %10612 = call ptr @s2n_strerror(i32 noundef %10611, ptr noundef @.str.3)
  %10613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10614 = load i32, ptr %10613, align 4, !tbaa !5
  %10615 = call ptr @s2n_strerror_debug(i32 noundef %10614, ptr noundef @.str.3)
  %10616 = call ptr @__errno_location() #13
  %10617 = load i32, ptr %10616, align 4, !tbaa !5
  %10618 = call ptr @strerror(i32 noundef %10617) #12
  %10619 = call ptr @__errno_location() #13
  %10620 = load i32, ptr %10619, align 4, !tbaa !5
  %10621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10608, ptr noundef @.str, i32 noundef %10609, ptr noundef @.str.137, ptr noundef @.str.2, i32 noundef 534, ptr noundef %10612, ptr noundef %10615, ptr noundef %10618, i32 noundef %10620) #12
  br label %10639

10622:                                            ; preds = %10600, %10593
  %10623 = load i32, ptr %222, align 4, !tbaa !5
  %10624 = call ptr @__errno_location() #13
  store i32 %10623, ptr %10624, align 4, !tbaa !5
  %10625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10626 = load i32, ptr @test_count, align 4, !tbaa !5
  %10627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10628 = load i32, ptr %10627, align 4, !tbaa !5
  %10629 = call ptr @s2n_strerror(i32 noundef %10628, ptr noundef @.str.3)
  %10630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10631 = load i32, ptr %10630, align 4, !tbaa !5
  %10632 = call ptr @s2n_strerror_debug(i32 noundef %10631, ptr noundef @.str.3)
  %10633 = call ptr @__errno_location() #13
  %10634 = load i32, ptr %10633, align 4, !tbaa !5
  %10635 = call ptr @strerror(i32 noundef %10634) #12
  %10636 = call ptr @__errno_location() #13
  %10637 = load i32, ptr %10636, align 4, !tbaa !5
  %10638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10625, ptr noundef @.str.4, i32 noundef %10626, ptr noundef @.str.137, ptr noundef @.str.2, i32 noundef 534, ptr noundef %10629, ptr noundef %10632, ptr noundef %10635, i32 noundef %10637) #12
  br label %10639

10639:                                            ; preds = %10622, %10605
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #12
  br label %10640

10640:                                            ; preds = %10639
  br label %10641

10641:                                            ; preds = %10640
  call void @exit(i32 noundef 1) #14
  unreachable

10642:                                            ; No predecessors!
  br label %10643

10643:                                            ; preds = %10642
  br label %10644

10644:                                            ; preds = %10643, %10585
  br label %10645

10645:                                            ; preds = %10644
  br label %10646

10646:                                            ; preds = %10645
  br label %10647

10647:                                            ; preds = %10646
  %10648 = load i32, ptr @test_count, align 4, !tbaa !5
  %10649 = add nsw i32 %10648, 1
  store i32 %10649, ptr @test_count, align 4, !tbaa !5
  %10650 = load ptr, ptr %219, align 8, !tbaa !9
  %10651 = getelementptr inbounds %struct.s2n_connection, ptr %10650, i32 0, i32 52
  %10652 = getelementptr inbounds %struct.s2n_handshake, ptr %10651, i32 0, i32 6
  %10653 = load i32, ptr %10652, align 4, !tbaa !72
  %10654 = and i32 %10653, 16
  %10655 = icmp ne i32 %10654, 0
  br i1 %10655, label %10709, label %10656

10656:                                            ; preds = %10647
  br label %10657

10657:                                            ; preds = %10656
  br label %10658

10658:                                            ; preds = %10657
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #12
  %10659 = call ptr @__errno_location() #13
  %10660 = load i32, ptr %10659, align 4, !tbaa !5
  store i32 %10660, ptr %223, align 4, !tbaa !5
  %10661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10662 = call i32 @s2n_print_stacktrace(ptr noundef %10661)
  %10663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10664 = trunc i8 %10663 to i1
  br i1 %10664, label %10665, label %10687

10665:                                            ; preds = %10658
  %10666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10667 = call i32 @fileno(ptr noundef %10666) #12
  %10668 = call i32 @isatty(i32 noundef %10667) #12
  %10669 = icmp ne i32 %10668, 0
  br i1 %10669, label %10670, label %10687

10670:                                            ; preds = %10665
  %10671 = load i32, ptr %223, align 4, !tbaa !5
  %10672 = call ptr @__errno_location() #13
  store i32 %10671, ptr %10672, align 4, !tbaa !5
  %10673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10674 = load i32, ptr @test_count, align 4, !tbaa !5
  %10675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10676 = load i32, ptr %10675, align 4, !tbaa !5
  %10677 = call ptr @s2n_strerror(i32 noundef %10676, ptr noundef @.str.3)
  %10678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10679 = load i32, ptr %10678, align 4, !tbaa !5
  %10680 = call ptr @s2n_strerror_debug(i32 noundef %10679, ptr noundef @.str.3)
  %10681 = call ptr @__errno_location() #13
  %10682 = load i32, ptr %10681, align 4, !tbaa !5
  %10683 = call ptr @strerror(i32 noundef %10682) #12
  %10684 = call ptr @__errno_location() #13
  %10685 = load i32, ptr %10684, align 4, !tbaa !5
  %10686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10673, ptr noundef @.str, i32 noundef %10674, ptr noundef @.str.138, ptr noundef @.str.2, i32 noundef 535, ptr noundef %10677, ptr noundef %10680, ptr noundef %10683, i32 noundef %10685) #12
  br label %10704

10687:                                            ; preds = %10665, %10658
  %10688 = load i32, ptr %223, align 4, !tbaa !5
  %10689 = call ptr @__errno_location() #13
  store i32 %10688, ptr %10689, align 4, !tbaa !5
  %10690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10691 = load i32, ptr @test_count, align 4, !tbaa !5
  %10692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10693 = load i32, ptr %10692, align 4, !tbaa !5
  %10694 = call ptr @s2n_strerror(i32 noundef %10693, ptr noundef @.str.3)
  %10695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10696 = load i32, ptr %10695, align 4, !tbaa !5
  %10697 = call ptr @s2n_strerror_debug(i32 noundef %10696, ptr noundef @.str.3)
  %10698 = call ptr @__errno_location() #13
  %10699 = load i32, ptr %10698, align 4, !tbaa !5
  %10700 = call ptr @strerror(i32 noundef %10699) #12
  %10701 = call ptr @__errno_location() #13
  %10702 = load i32, ptr %10701, align 4, !tbaa !5
  %10703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10690, ptr noundef @.str.4, i32 noundef %10691, ptr noundef @.str.138, ptr noundef @.str.2, i32 noundef 535, ptr noundef %10694, ptr noundef %10697, ptr noundef %10700, i32 noundef %10702) #12
  br label %10704

10704:                                            ; preds = %10687, %10670
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #12
  br label %10705

10705:                                            ; preds = %10704
  br label %10706

10706:                                            ; preds = %10705
  call void @exit(i32 noundef 1) #14
  unreachable

10707:                                            ; No predecessors!
  br label %10708

10708:                                            ; preds = %10707
  br label %10709

10709:                                            ; preds = %10708, %10647
  br label %10710

10710:                                            ; preds = %10709
  br label %10711

10711:                                            ; preds = %10710
  br label %10712

10712:                                            ; preds = %10711
  %10713 = load i32, ptr @test_count, align 4, !tbaa !5
  %10714 = add nsw i32 %10713, 1
  store i32 %10714, ptr @test_count, align 4, !tbaa !5
  %10715 = load ptr, ptr %219, align 8, !tbaa !9
  %10716 = call i32 @s2n_connection_free(ptr noundef %10715)
  %10717 = icmp eq i32 %10716, -1
  br i1 %10717, label %10718, label %10771

10718:                                            ; preds = %10712
  br label %10719

10719:                                            ; preds = %10718
  br label %10720

10720:                                            ; preds = %10719
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #12
  %10721 = call ptr @__errno_location() #13
  %10722 = load i32, ptr %10721, align 4, !tbaa !5
  store i32 %10722, ptr %224, align 4, !tbaa !5
  %10723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10724 = call i32 @s2n_print_stacktrace(ptr noundef %10723)
  %10725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10726 = trunc i8 %10725 to i1
  br i1 %10726, label %10727, label %10749

10727:                                            ; preds = %10720
  %10728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10729 = call i32 @fileno(ptr noundef %10728) #12
  %10730 = call i32 @isatty(i32 noundef %10729) #12
  %10731 = icmp ne i32 %10730, 0
  br i1 %10731, label %10732, label %10749

10732:                                            ; preds = %10727
  %10733 = load i32, ptr %224, align 4, !tbaa !5
  %10734 = call ptr @__errno_location() #13
  store i32 %10733, ptr %10734, align 4, !tbaa !5
  %10735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10736 = load i32, ptr @test_count, align 4, !tbaa !5
  %10737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10738 = load i32, ptr %10737, align 4, !tbaa !5
  %10739 = call ptr @s2n_strerror(i32 noundef %10738, ptr noundef @.str.3)
  %10740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10741 = load i32, ptr %10740, align 4, !tbaa !5
  %10742 = call ptr @s2n_strerror_debug(i32 noundef %10741, ptr noundef @.str.3)
  %10743 = call ptr @__errno_location() #13
  %10744 = load i32, ptr %10743, align 4, !tbaa !5
  %10745 = call ptr @strerror(i32 noundef %10744) #12
  %10746 = call ptr @__errno_location() #13
  %10747 = load i32, ptr %10746, align 4, !tbaa !5
  %10748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10735, ptr noundef @.str, i32 noundef %10736, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 537, ptr noundef %10739, ptr noundef %10742, ptr noundef %10745, i32 noundef %10747) #12
  br label %10766

10749:                                            ; preds = %10727, %10720
  %10750 = load i32, ptr %224, align 4, !tbaa !5
  %10751 = call ptr @__errno_location() #13
  store i32 %10750, ptr %10751, align 4, !tbaa !5
  %10752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10753 = load i32, ptr @test_count, align 4, !tbaa !5
  %10754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10755 = load i32, ptr %10754, align 4, !tbaa !5
  %10756 = call ptr @s2n_strerror(i32 noundef %10755, ptr noundef @.str.3)
  %10757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10758 = load i32, ptr %10757, align 4, !tbaa !5
  %10759 = call ptr @s2n_strerror_debug(i32 noundef %10758, ptr noundef @.str.3)
  %10760 = call ptr @__errno_location() #13
  %10761 = load i32, ptr %10760, align 4, !tbaa !5
  %10762 = call ptr @strerror(i32 noundef %10761) #12
  %10763 = call ptr @__errno_location() #13
  %10764 = load i32, ptr %10763, align 4, !tbaa !5
  %10765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10752, ptr noundef @.str.4, i32 noundef %10753, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 537, ptr noundef %10756, ptr noundef %10759, ptr noundef %10762, i32 noundef %10764) #12
  br label %10766

10766:                                            ; preds = %10749, %10732
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #12
  br label %10767

10767:                                            ; preds = %10766
  br label %10768

10768:                                            ; preds = %10767
  call void @exit(i32 noundef 1) #14
  unreachable

10769:                                            ; No predecessors!
  br label %10770

10770:                                            ; preds = %10769
  br label %10771

10771:                                            ; preds = %10770, %10712
  br label %10772

10772:                                            ; preds = %10771
  br label %10773

10773:                                            ; preds = %10772
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #12
  store ptr null, ptr %225, align 8, !tbaa !9
  br label %10774

10774:                                            ; preds = %10773
  %10775 = load i32, ptr @test_count, align 4, !tbaa !5
  %10776 = add nsw i32 %10775, 1
  store i32 %10776, ptr @test_count, align 4, !tbaa !5
  %10777 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10777, ptr %225, align 8, !tbaa !9
  %10778 = icmp eq ptr %10777, null
  br i1 %10778, label %10779, label %10832

10779:                                            ; preds = %10774
  br label %10780

10780:                                            ; preds = %10779
  br label %10781

10781:                                            ; preds = %10780
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #12
  %10782 = call ptr @__errno_location() #13
  %10783 = load i32, ptr %10782, align 4, !tbaa !5
  store i32 %10783, ptr %226, align 4, !tbaa !5
  %10784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10785 = call i32 @s2n_print_stacktrace(ptr noundef %10784)
  %10786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10787 = trunc i8 %10786 to i1
  br i1 %10787, label %10788, label %10810

10788:                                            ; preds = %10781
  %10789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10790 = call i32 @fileno(ptr noundef %10789) #12
  %10791 = call i32 @isatty(i32 noundef %10790) #12
  %10792 = icmp ne i32 %10791, 0
  br i1 %10792, label %10793, label %10810

10793:                                            ; preds = %10788
  %10794 = load i32, ptr %226, align 4, !tbaa !5
  %10795 = call ptr @__errno_location() #13
  store i32 %10794, ptr %10795, align 4, !tbaa !5
  %10796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10797 = load i32, ptr @test_count, align 4, !tbaa !5
  %10798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10799 = load i32, ptr %10798, align 4, !tbaa !5
  %10800 = call ptr @s2n_strerror(i32 noundef %10799, ptr noundef @.str.3)
  %10801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10802 = load i32, ptr %10801, align 4, !tbaa !5
  %10803 = call ptr @s2n_strerror_debug(i32 noundef %10802, ptr noundef @.str.3)
  %10804 = call ptr @__errno_location() #13
  %10805 = load i32, ptr %10804, align 4, !tbaa !5
  %10806 = call ptr @strerror(i32 noundef %10805) #12
  %10807 = call ptr @__errno_location() #13
  %10808 = load i32, ptr %10807, align 4, !tbaa !5
  %10809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10796, ptr noundef @.str, i32 noundef %10797, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 544, ptr noundef %10800, ptr noundef %10803, ptr noundef %10806, i32 noundef %10808) #12
  br label %10827

10810:                                            ; preds = %10788, %10781
  %10811 = load i32, ptr %226, align 4, !tbaa !5
  %10812 = call ptr @__errno_location() #13
  store i32 %10811, ptr %10812, align 4, !tbaa !5
  %10813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10814 = load i32, ptr @test_count, align 4, !tbaa !5
  %10815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10816 = load i32, ptr %10815, align 4, !tbaa !5
  %10817 = call ptr @s2n_strerror(i32 noundef %10816, ptr noundef @.str.3)
  %10818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10819 = load i32, ptr %10818, align 4, !tbaa !5
  %10820 = call ptr @s2n_strerror_debug(i32 noundef %10819, ptr noundef @.str.3)
  %10821 = call ptr @__errno_location() #13
  %10822 = load i32, ptr %10821, align 4, !tbaa !5
  %10823 = call ptr @strerror(i32 noundef %10822) #12
  %10824 = call ptr @__errno_location() #13
  %10825 = load i32, ptr %10824, align 4, !tbaa !5
  %10826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10813, ptr noundef @.str.4, i32 noundef %10814, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 544, ptr noundef %10817, ptr noundef %10820, ptr noundef %10823, i32 noundef %10825) #12
  br label %10827

10827:                                            ; preds = %10810, %10793
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #12
  br label %10828

10828:                                            ; preds = %10827
  br label %10829

10829:                                            ; preds = %10828
  call void @exit(i32 noundef 1) #14
  unreachable

10830:                                            ; No predecessors!
  br label %10831

10831:                                            ; preds = %10830
  br label %10832

10832:                                            ; preds = %10831, %10774
  br label %10833

10833:                                            ; preds = %10832
  br label %10834

10834:                                            ; preds = %10833
  %10835 = load ptr, ptr %225, align 8, !tbaa !9
  %10836 = getelementptr inbounds %struct.s2n_connection, ptr %10835, i32 0, i32 23
  store i8 33, ptr %10836, align 4, !tbaa !73
  br label %10837

10837:                                            ; preds = %10834
  br label %10838

10838:                                            ; preds = %10837
  br label %10839

10839:                                            ; preds = %10838
  %10840 = load i32, ptr @test_count, align 4, !tbaa !5
  %10841 = add nsw i32 %10840, 1
  store i32 %10841, ptr @test_count, align 4, !tbaa !5
  %10842 = load ptr, ptr %225, align 8, !tbaa !9
  %10843 = call i32 @s2n_set_hello_retry_required(ptr noundef %10842)
  %10844 = icmp eq i32 %10843, -1
  br i1 %10844, label %10898, label %10845

10845:                                            ; preds = %10839
  br label %10846

10846:                                            ; preds = %10845
  br label %10847

10847:                                            ; preds = %10846
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #12
  %10848 = call ptr @__errno_location() #13
  %10849 = load i32, ptr %10848, align 4, !tbaa !5
  store i32 %10849, ptr %227, align 4, !tbaa !5
  %10850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10851 = call i32 @s2n_print_stacktrace(ptr noundef %10850)
  %10852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10853 = trunc i8 %10852 to i1
  br i1 %10853, label %10854, label %10876

10854:                                            ; preds = %10847
  %10855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10856 = call i32 @fileno(ptr noundef %10855) #12
  %10857 = call i32 @isatty(i32 noundef %10856) #12
  %10858 = icmp ne i32 %10857, 0
  br i1 %10858, label %10859, label %10876

10859:                                            ; preds = %10854
  %10860 = load i32, ptr %227, align 4, !tbaa !5
  %10861 = call ptr @__errno_location() #13
  store i32 %10860, ptr %10861, align 4, !tbaa !5
  %10862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10863 = load i32, ptr @test_count, align 4, !tbaa !5
  %10864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10865 = load i32, ptr %10864, align 4, !tbaa !5
  %10866 = call ptr @s2n_strerror(i32 noundef %10865, ptr noundef @.str.3)
  %10867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10868 = load i32, ptr %10867, align 4, !tbaa !5
  %10869 = call ptr @s2n_strerror_debug(i32 noundef %10868, ptr noundef @.str.3)
  %10870 = call ptr @__errno_location() #13
  %10871 = load i32, ptr %10870, align 4, !tbaa !5
  %10872 = call ptr @strerror(i32 noundef %10871) #12
  %10873 = call ptr @__errno_location() #13
  %10874 = load i32, ptr %10873, align 4, !tbaa !5
  %10875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10862, ptr noundef @.str, i32 noundef %10863, ptr noundef @.str.139, ptr noundef @.str.2, i32 noundef 547, ptr noundef %10866, ptr noundef %10869, ptr noundef %10872, i32 noundef %10874) #12
  br label %10893

10876:                                            ; preds = %10854, %10847
  %10877 = load i32, ptr %227, align 4, !tbaa !5
  %10878 = call ptr @__errno_location() #13
  store i32 %10877, ptr %10878, align 4, !tbaa !5
  %10879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10880 = load i32, ptr @test_count, align 4, !tbaa !5
  %10881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10882 = load i32, ptr %10881, align 4, !tbaa !5
  %10883 = call ptr @s2n_strerror(i32 noundef %10882, ptr noundef @.str.3)
  %10884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10885 = load i32, ptr %10884, align 4, !tbaa !5
  %10886 = call ptr @s2n_strerror_debug(i32 noundef %10885, ptr noundef @.str.3)
  %10887 = call ptr @__errno_location() #13
  %10888 = load i32, ptr %10887, align 4, !tbaa !5
  %10889 = call ptr @strerror(i32 noundef %10888) #12
  %10890 = call ptr @__errno_location() #13
  %10891 = load i32, ptr %10890, align 4, !tbaa !5
  %10892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10879, ptr noundef @.str.4, i32 noundef %10880, ptr noundef @.str.139, ptr noundef @.str.2, i32 noundef 547, ptr noundef %10883, ptr noundef %10886, ptr noundef %10889, i32 noundef %10891) #12
  br label %10893

10893:                                            ; preds = %10876, %10859
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #12
  br label %10894

10894:                                            ; preds = %10893
  br label %10895

10895:                                            ; preds = %10894
  call void @exit(i32 noundef 1) #14
  unreachable

10896:                                            ; No predecessors!
  br label %10897

10897:                                            ; preds = %10896
  br label %10898

10898:                                            ; preds = %10897, %10839
  br label %10899

10899:                                            ; preds = %10898
  br label %10900

10900:                                            ; preds = %10899
  br label %10901

10901:                                            ; preds = %10900
  %10902 = load i32, ptr @test_count, align 4, !tbaa !5
  %10903 = add nsw i32 %10902, 1
  store i32 %10903, ptr @test_count, align 4, !tbaa !5
  %10904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10905 = load i32, ptr %10904, align 4, !tbaa !5
  %10906 = icmp eq i32 %10905, 335544346
  br i1 %10906, label %10960, label %10907

10907:                                            ; preds = %10901
  br label %10908

10908:                                            ; preds = %10907
  br label %10909

10909:                                            ; preds = %10908
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #12
  %10910 = call ptr @__errno_location() #13
  %10911 = load i32, ptr %10910, align 4, !tbaa !5
  store i32 %10911, ptr %228, align 4, !tbaa !5
  %10912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10913 = call i32 @s2n_print_stacktrace(ptr noundef %10912)
  %10914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10915 = trunc i8 %10914 to i1
  br i1 %10915, label %10916, label %10938

10916:                                            ; preds = %10909
  %10917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10918 = call i32 @fileno(ptr noundef %10917) #12
  %10919 = call i32 @isatty(i32 noundef %10918) #12
  %10920 = icmp ne i32 %10919, 0
  br i1 %10920, label %10921, label %10938

10921:                                            ; preds = %10916
  %10922 = load i32, ptr %228, align 4, !tbaa !5
  %10923 = call ptr @__errno_location() #13
  store i32 %10922, ptr %10923, align 4, !tbaa !5
  %10924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10925 = load i32, ptr @test_count, align 4, !tbaa !5
  %10926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10927 = load i32, ptr %10926, align 4, !tbaa !5
  %10928 = call ptr @s2n_strerror(i32 noundef %10927, ptr noundef @.str.3)
  %10929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10930 = load i32, ptr %10929, align 4, !tbaa !5
  %10931 = call ptr @s2n_strerror_debug(i32 noundef %10930, ptr noundef @.str.3)
  %10932 = call ptr @__errno_location() #13
  %10933 = load i32, ptr %10932, align 4, !tbaa !5
  %10934 = call ptr @strerror(i32 noundef %10933) #12
  %10935 = call ptr @__errno_location() #13
  %10936 = load i32, ptr %10935, align 4, !tbaa !5
  %10937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10924, ptr noundef @.str, i32 noundef %10925, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 547, ptr noundef %10928, ptr noundef %10931, ptr noundef %10934, i32 noundef %10936) #12
  br label %10955

10938:                                            ; preds = %10916, %10909
  %10939 = load i32, ptr %228, align 4, !tbaa !5
  %10940 = call ptr @__errno_location() #13
  store i32 %10939, ptr %10940, align 4, !tbaa !5
  %10941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10942 = load i32, ptr @test_count, align 4, !tbaa !5
  %10943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10944 = load i32, ptr %10943, align 4, !tbaa !5
  %10945 = call ptr @s2n_strerror(i32 noundef %10944, ptr noundef @.str.3)
  %10946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10947 = load i32, ptr %10946, align 4, !tbaa !5
  %10948 = call ptr @s2n_strerror_debug(i32 noundef %10947, ptr noundef @.str.3)
  %10949 = call ptr @__errno_location() #13
  %10950 = load i32, ptr %10949, align 4, !tbaa !5
  %10951 = call ptr @strerror(i32 noundef %10950) #12
  %10952 = call ptr @__errno_location() #13
  %10953 = load i32, ptr %10952, align 4, !tbaa !5
  %10954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10941, ptr noundef @.str.4, i32 noundef %10942, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 547, ptr noundef %10945, ptr noundef %10948, ptr noundef %10951, i32 noundef %10953) #12
  br label %10955

10955:                                            ; preds = %10938, %10921
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #12
  br label %10956

10956:                                            ; preds = %10955
  br label %10957

10957:                                            ; preds = %10956
  call void @exit(i32 noundef 1) #14
  unreachable

10958:                                            ; No predecessors!
  br label %10959

10959:                                            ; preds = %10958
  br label %10960

10960:                                            ; preds = %10959, %10901
  br label %10961

10961:                                            ; preds = %10960
  br label %10962

10962:                                            ; preds = %10961
  br label %10963

10963:                                            ; preds = %10962
  %10964 = load i32, ptr @test_count, align 4, !tbaa !5
  %10965 = add nsw i32 %10964, 1
  store i32 %10965, ptr @test_count, align 4, !tbaa !5
  %10966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10967 = load i32, ptr %10966, align 4, !tbaa !5
  %10968 = call ptr @s2n_strerror_debug(i32 noundef %10967, ptr noundef @.str.3)
  %10969 = icmp eq ptr %10968, null
  br i1 %10969, label %10970, label %11023

10970:                                            ; preds = %10963
  br label %10971

10971:                                            ; preds = %10970
  br label %10972

10972:                                            ; preds = %10971
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #12
  %10973 = call ptr @__errno_location() #13
  %10974 = load i32, ptr %10973, align 4, !tbaa !5
  store i32 %10974, ptr %229, align 4, !tbaa !5
  %10975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10976 = call i32 @s2n_print_stacktrace(ptr noundef %10975)
  %10977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10978 = trunc i8 %10977 to i1
  br i1 %10978, label %10979, label %11001

10979:                                            ; preds = %10972
  %10980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10981 = call i32 @fileno(ptr noundef %10980) #12
  %10982 = call i32 @isatty(i32 noundef %10981) #12
  %10983 = icmp ne i32 %10982, 0
  br i1 %10983, label %10984, label %11001

10984:                                            ; preds = %10979
  %10985 = load i32, ptr %229, align 4, !tbaa !5
  %10986 = call ptr @__errno_location() #13
  store i32 %10985, ptr %10986, align 4, !tbaa !5
  %10987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10988 = load i32, ptr @test_count, align 4, !tbaa !5
  %10989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10990 = load i32, ptr %10989, align 4, !tbaa !5
  %10991 = call ptr @s2n_strerror(i32 noundef %10990, ptr noundef @.str.3)
  %10992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10993 = load i32, ptr %10992, align 4, !tbaa !5
  %10994 = call ptr @s2n_strerror_debug(i32 noundef %10993, ptr noundef @.str.3)
  %10995 = call ptr @__errno_location() #13
  %10996 = load i32, ptr %10995, align 4, !tbaa !5
  %10997 = call ptr @strerror(i32 noundef %10996) #12
  %10998 = call ptr @__errno_location() #13
  %10999 = load i32, ptr %10998, align 4, !tbaa !5
  %11000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10987, ptr noundef @.str, i32 noundef %10988, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 547, ptr noundef %10991, ptr noundef %10994, ptr noundef %10997, i32 noundef %10999) #12
  br label %11018

11001:                                            ; preds = %10979, %10972
  %11002 = load i32, ptr %229, align 4, !tbaa !5
  %11003 = call ptr @__errno_location() #13
  store i32 %11002, ptr %11003, align 4, !tbaa !5
  %11004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11005 = load i32, ptr @test_count, align 4, !tbaa !5
  %11006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11007 = load i32, ptr %11006, align 4, !tbaa !5
  %11008 = call ptr @s2n_strerror(i32 noundef %11007, ptr noundef @.str.3)
  %11009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11010 = load i32, ptr %11009, align 4, !tbaa !5
  %11011 = call ptr @s2n_strerror_debug(i32 noundef %11010, ptr noundef @.str.3)
  %11012 = call ptr @__errno_location() #13
  %11013 = load i32, ptr %11012, align 4, !tbaa !5
  %11014 = call ptr @strerror(i32 noundef %11013) #12
  %11015 = call ptr @__errno_location() #13
  %11016 = load i32, ptr %11015, align 4, !tbaa !5
  %11017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11004, ptr noundef @.str.4, i32 noundef %11005, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 547, ptr noundef %11008, ptr noundef %11011, ptr noundef %11014, i32 noundef %11016) #12
  br label %11018

11018:                                            ; preds = %11001, %10984
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #12
  br label %11019

11019:                                            ; preds = %11018
  br label %11020

11020:                                            ; preds = %11019
  call void @exit(i32 noundef 1) #14
  unreachable

11021:                                            ; No predecessors!
  br label %11022

11022:                                            ; preds = %11021
  br label %11023

11023:                                            ; preds = %11022, %10963
  br label %11024

11024:                                            ; preds = %11023
  br label %11025

11025:                                            ; preds = %11024
  br label %11026

11026:                                            ; preds = %11025
  br label %11027

11027:                                            ; preds = %11026
  br label %11028

11028:                                            ; preds = %11027
  %11029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11029, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11030 = call ptr @__errno_location() #13
  store i32 0, ptr %11030, align 4, !tbaa !5
  br label %11031

11031:                                            ; preds = %11028
  br label %11032

11032:                                            ; preds = %11031
  br label %11033

11033:                                            ; preds = %11032
  br label %11034

11034:                                            ; preds = %11033
  br label %11035

11035:                                            ; preds = %11034
  %11036 = load i32, ptr @test_count, align 4, !tbaa !5
  %11037 = add nsw i32 %11036, 1
  store i32 %11037, ptr @test_count, align 4, !tbaa !5
  %11038 = load ptr, ptr %225, align 8, !tbaa !9
  %11039 = getelementptr inbounds %struct.s2n_connection, ptr %11038, i32 0, i32 52
  %11040 = getelementptr inbounds %struct.s2n_handshake, ptr %11039, i32 0, i32 6
  %11041 = load i32, ptr %11040, align 4, !tbaa !72
  %11042 = and i32 %11041, 16
  %11043 = icmp ne i32 %11042, 0
  br i1 %11043, label %11044, label %11097

11044:                                            ; preds = %11035
  br label %11045

11045:                                            ; preds = %11044
  br label %11046

11046:                                            ; preds = %11045
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #12
  %11047 = call ptr @__errno_location() #13
  %11048 = load i32, ptr %11047, align 4, !tbaa !5
  store i32 %11048, ptr %230, align 4, !tbaa !5
  %11049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11050 = call i32 @s2n_print_stacktrace(ptr noundef %11049)
  %11051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11052 = trunc i8 %11051 to i1
  br i1 %11052, label %11053, label %11075

11053:                                            ; preds = %11046
  %11054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11055 = call i32 @fileno(ptr noundef %11054) #12
  %11056 = call i32 @isatty(i32 noundef %11055) #12
  %11057 = icmp ne i32 %11056, 0
  br i1 %11057, label %11058, label %11075

11058:                                            ; preds = %11053
  %11059 = load i32, ptr %230, align 4, !tbaa !5
  %11060 = call ptr @__errno_location() #13
  store i32 %11059, ptr %11060, align 4, !tbaa !5
  %11061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11062 = load i32, ptr @test_count, align 4, !tbaa !5
  %11063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11064 = load i32, ptr %11063, align 4, !tbaa !5
  %11065 = call ptr @s2n_strerror(i32 noundef %11064, ptr noundef @.str.3)
  %11066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11067 = load i32, ptr %11066, align 4, !tbaa !5
  %11068 = call ptr @s2n_strerror_debug(i32 noundef %11067, ptr noundef @.str.3)
  %11069 = call ptr @__errno_location() #13
  %11070 = load i32, ptr %11069, align 4, !tbaa !5
  %11071 = call ptr @strerror(i32 noundef %11070) #12
  %11072 = call ptr @__errno_location() #13
  %11073 = load i32, ptr %11072, align 4, !tbaa !5
  %11074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11061, ptr noundef @.str, i32 noundef %11062, ptr noundef @.str.141, ptr noundef @.str.2, i32 noundef 548, ptr noundef %11065, ptr noundef %11068, ptr noundef %11071, i32 noundef %11073) #12
  br label %11092

11075:                                            ; preds = %11053, %11046
  %11076 = load i32, ptr %230, align 4, !tbaa !5
  %11077 = call ptr @__errno_location() #13
  store i32 %11076, ptr %11077, align 4, !tbaa !5
  %11078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11079 = load i32, ptr @test_count, align 4, !tbaa !5
  %11080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11081 = load i32, ptr %11080, align 4, !tbaa !5
  %11082 = call ptr @s2n_strerror(i32 noundef %11081, ptr noundef @.str.3)
  %11083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11084 = load i32, ptr %11083, align 4, !tbaa !5
  %11085 = call ptr @s2n_strerror_debug(i32 noundef %11084, ptr noundef @.str.3)
  %11086 = call ptr @__errno_location() #13
  %11087 = load i32, ptr %11086, align 4, !tbaa !5
  %11088 = call ptr @strerror(i32 noundef %11087) #12
  %11089 = call ptr @__errno_location() #13
  %11090 = load i32, ptr %11089, align 4, !tbaa !5
  %11091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11078, ptr noundef @.str.4, i32 noundef %11079, ptr noundef @.str.141, ptr noundef @.str.2, i32 noundef 548, ptr noundef %11082, ptr noundef %11085, ptr noundef %11088, i32 noundef %11090) #12
  br label %11092

11092:                                            ; preds = %11075, %11058
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #12
  br label %11093

11093:                                            ; preds = %11092
  br label %11094

11094:                                            ; preds = %11093
  call void @exit(i32 noundef 1) #14
  unreachable

11095:                                            ; No predecessors!
  br label %11096

11096:                                            ; preds = %11095
  br label %11097

11097:                                            ; preds = %11096, %11035
  br label %11098

11098:                                            ; preds = %11097
  br label %11099

11099:                                            ; preds = %11098
  br label %11100

11100:                                            ; preds = %11099
  %11101 = load i32, ptr @test_count, align 4, !tbaa !5
  %11102 = add nsw i32 %11101, 1
  store i32 %11102, ptr @test_count, align 4, !tbaa !5
  %11103 = load ptr, ptr %225, align 8, !tbaa !9
  %11104 = call i32 @s2n_connection_free(ptr noundef %11103)
  %11105 = icmp eq i32 %11104, -1
  br i1 %11105, label %11106, label %11159

11106:                                            ; preds = %11100
  br label %11107

11107:                                            ; preds = %11106
  br label %11108

11108:                                            ; preds = %11107
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #12
  %11109 = call ptr @__errno_location() #13
  %11110 = load i32, ptr %11109, align 4, !tbaa !5
  store i32 %11110, ptr %231, align 4, !tbaa !5
  %11111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11112 = call i32 @s2n_print_stacktrace(ptr noundef %11111)
  %11113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11114 = trunc i8 %11113 to i1
  br i1 %11114, label %11115, label %11137

11115:                                            ; preds = %11108
  %11116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11117 = call i32 @fileno(ptr noundef %11116) #12
  %11118 = call i32 @isatty(i32 noundef %11117) #12
  %11119 = icmp ne i32 %11118, 0
  br i1 %11119, label %11120, label %11137

11120:                                            ; preds = %11115
  %11121 = load i32, ptr %231, align 4, !tbaa !5
  %11122 = call ptr @__errno_location() #13
  store i32 %11121, ptr %11122, align 4, !tbaa !5
  %11123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11124 = load i32, ptr @test_count, align 4, !tbaa !5
  %11125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11126 = load i32, ptr %11125, align 4, !tbaa !5
  %11127 = call ptr @s2n_strerror(i32 noundef %11126, ptr noundef @.str.3)
  %11128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11129 = load i32, ptr %11128, align 4, !tbaa !5
  %11130 = call ptr @s2n_strerror_debug(i32 noundef %11129, ptr noundef @.str.3)
  %11131 = call ptr @__errno_location() #13
  %11132 = load i32, ptr %11131, align 4, !tbaa !5
  %11133 = call ptr @strerror(i32 noundef %11132) #12
  %11134 = call ptr @__errno_location() #13
  %11135 = load i32, ptr %11134, align 4, !tbaa !5
  %11136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11123, ptr noundef @.str, i32 noundef %11124, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 550, ptr noundef %11127, ptr noundef %11130, ptr noundef %11133, i32 noundef %11135) #12
  br label %11154

11137:                                            ; preds = %11115, %11108
  %11138 = load i32, ptr %231, align 4, !tbaa !5
  %11139 = call ptr @__errno_location() #13
  store i32 %11138, ptr %11139, align 4, !tbaa !5
  %11140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11141 = load i32, ptr @test_count, align 4, !tbaa !5
  %11142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11143 = load i32, ptr %11142, align 4, !tbaa !5
  %11144 = call ptr @s2n_strerror(i32 noundef %11143, ptr noundef @.str.3)
  %11145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11146 = load i32, ptr %11145, align 4, !tbaa !5
  %11147 = call ptr @s2n_strerror_debug(i32 noundef %11146, ptr noundef @.str.3)
  %11148 = call ptr @__errno_location() #13
  %11149 = load i32, ptr %11148, align 4, !tbaa !5
  %11150 = call ptr @strerror(i32 noundef %11149) #12
  %11151 = call ptr @__errno_location() #13
  %11152 = load i32, ptr %11151, align 4, !tbaa !5
  %11153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11140, ptr noundef @.str.4, i32 noundef %11141, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 550, ptr noundef %11144, ptr noundef %11147, ptr noundef %11150, i32 noundef %11152) #12
  br label %11154

11154:                                            ; preds = %11137, %11120
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #12
  br label %11155

11155:                                            ; preds = %11154
  br label %11156

11156:                                            ; preds = %11155
  call void @exit(i32 noundef 1) #14
  unreachable

11157:                                            ; No predecessors!
  br label %11158

11158:                                            ; preds = %11157
  br label %11159

11159:                                            ; preds = %11158, %11100
  br label %11160

11160:                                            ; preds = %11159
  br label %11161

11161:                                            ; preds = %11160
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #12
  store ptr null, ptr %232, align 8, !tbaa !9
  br label %11162

11162:                                            ; preds = %11161
  %11163 = load i32, ptr @test_count, align 4, !tbaa !5
  %11164 = add nsw i32 %11163, 1
  store i32 %11164, ptr @test_count, align 4, !tbaa !5
  %11165 = call i32 @s2n_find_security_policy_from_version(ptr noundef @.str.142, ptr noundef %232)
  %11166 = icmp eq i32 %11165, -1
  br i1 %11166, label %11167, label %11220

11167:                                            ; preds = %11162
  br label %11168

11168:                                            ; preds = %11167
  br label %11169

11169:                                            ; preds = %11168
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #12
  %11170 = call ptr @__errno_location() #13
  %11171 = load i32, ptr %11170, align 4, !tbaa !5
  store i32 %11171, ptr %233, align 4, !tbaa !5
  %11172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11173 = call i32 @s2n_print_stacktrace(ptr noundef %11172)
  %11174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11175 = trunc i8 %11174 to i1
  br i1 %11175, label %11176, label %11198

11176:                                            ; preds = %11169
  %11177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11178 = call i32 @fileno(ptr noundef %11177) #12
  %11179 = call i32 @isatty(i32 noundef %11178) #12
  %11180 = icmp ne i32 %11179, 0
  br i1 %11180, label %11181, label %11198

11181:                                            ; preds = %11176
  %11182 = load i32, ptr %233, align 4, !tbaa !5
  %11183 = call ptr @__errno_location() #13
  store i32 %11182, ptr %11183, align 4, !tbaa !5
  %11184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11185 = load i32, ptr @test_count, align 4, !tbaa !5
  %11186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11187 = load i32, ptr %11186, align 4, !tbaa !5
  %11188 = call ptr @s2n_strerror(i32 noundef %11187, ptr noundef @.str.3)
  %11189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11190 = load i32, ptr %11189, align 4, !tbaa !5
  %11191 = call ptr @s2n_strerror_debug(i32 noundef %11190, ptr noundef @.str.3)
  %11192 = call ptr @__errno_location() #13
  %11193 = load i32, ptr %11192, align 4, !tbaa !5
  %11194 = call ptr @strerror(i32 noundef %11193) #12
  %11195 = call ptr @__errno_location() #13
  %11196 = load i32, ptr %11195, align 4, !tbaa !5
  %11197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11184, ptr noundef @.str, i32 noundef %11185, ptr noundef @.str.143, ptr noundef @.str.2, i32 noundef 562, ptr noundef %11188, ptr noundef %11191, ptr noundef %11194, i32 noundef %11196) #12
  br label %11215

11198:                                            ; preds = %11176, %11169
  %11199 = load i32, ptr %233, align 4, !tbaa !5
  %11200 = call ptr @__errno_location() #13
  store i32 %11199, ptr %11200, align 4, !tbaa !5
  %11201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11202 = load i32, ptr @test_count, align 4, !tbaa !5
  %11203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11204 = load i32, ptr %11203, align 4, !tbaa !5
  %11205 = call ptr @s2n_strerror(i32 noundef %11204, ptr noundef @.str.3)
  %11206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11207 = load i32, ptr %11206, align 4, !tbaa !5
  %11208 = call ptr @s2n_strerror_debug(i32 noundef %11207, ptr noundef @.str.3)
  %11209 = call ptr @__errno_location() #13
  %11210 = load i32, ptr %11209, align 4, !tbaa !5
  %11211 = call ptr @strerror(i32 noundef %11210) #12
  %11212 = call ptr @__errno_location() #13
  %11213 = load i32, ptr %11212, align 4, !tbaa !5
  %11214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11201, ptr noundef @.str.4, i32 noundef %11202, ptr noundef @.str.143, ptr noundef @.str.2, i32 noundef 562, ptr noundef %11205, ptr noundef %11208, ptr noundef %11211, i32 noundef %11213) #12
  br label %11215

11215:                                            ; preds = %11198, %11181
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #12
  br label %11216

11216:                                            ; preds = %11215
  br label %11217

11217:                                            ; preds = %11216
  call void @exit(i32 noundef 1) #14
  unreachable

11218:                                            ; No predecessors!
  br label %11219

11219:                                            ; preds = %11218
  br label %11220

11220:                                            ; preds = %11219, %11162
  br label %11221

11221:                                            ; preds = %11220
  br label %11222

11222:                                            ; preds = %11221
  br label %11223

11223:                                            ; preds = %11222
  %11224 = load i32, ptr @test_count, align 4, !tbaa !5
  %11225 = add nsw i32 %11224, 1
  store i32 %11225, ptr @test_count, align 4, !tbaa !5
  %11226 = load ptr, ptr %232, align 8, !tbaa !9
  %11227 = icmp eq ptr %11226, null
  br i1 %11227, label %11228, label %11281

11228:                                            ; preds = %11223
  br label %11229

11229:                                            ; preds = %11228
  br label %11230

11230:                                            ; preds = %11229
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #12
  %11231 = call ptr @__errno_location() #13
  %11232 = load i32, ptr %11231, align 4, !tbaa !5
  store i32 %11232, ptr %234, align 4, !tbaa !5
  %11233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11234 = call i32 @s2n_print_stacktrace(ptr noundef %11233)
  %11235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11236 = trunc i8 %11235 to i1
  br i1 %11236, label %11237, label %11259

11237:                                            ; preds = %11230
  %11238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11239 = call i32 @fileno(ptr noundef %11238) #12
  %11240 = call i32 @isatty(i32 noundef %11239) #12
  %11241 = icmp ne i32 %11240, 0
  br i1 %11241, label %11242, label %11259

11242:                                            ; preds = %11237
  %11243 = load i32, ptr %234, align 4, !tbaa !5
  %11244 = call ptr @__errno_location() #13
  store i32 %11243, ptr %11244, align 4, !tbaa !5
  %11245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11246 = load i32, ptr @test_count, align 4, !tbaa !5
  %11247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11248 = load i32, ptr %11247, align 4, !tbaa !5
  %11249 = call ptr @s2n_strerror(i32 noundef %11248, ptr noundef @.str.3)
  %11250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11251 = load i32, ptr %11250, align 4, !tbaa !5
  %11252 = call ptr @s2n_strerror_debug(i32 noundef %11251, ptr noundef @.str.3)
  %11253 = call ptr @__errno_location() #13
  %11254 = load i32, ptr %11253, align 4, !tbaa !5
  %11255 = call ptr @strerror(i32 noundef %11254) #12
  %11256 = call ptr @__errno_location() #13
  %11257 = load i32, ptr %11256, align 4, !tbaa !5
  %11258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11245, ptr noundef @.str, i32 noundef %11246, ptr noundef @.str.144, ptr noundef @.str.2, i32 noundef 563, ptr noundef %11249, ptr noundef %11252, ptr noundef %11255, i32 noundef %11257) #12
  br label %11276

11259:                                            ; preds = %11237, %11230
  %11260 = load i32, ptr %234, align 4, !tbaa !5
  %11261 = call ptr @__errno_location() #13
  store i32 %11260, ptr %11261, align 4, !tbaa !5
  %11262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11263 = load i32, ptr @test_count, align 4, !tbaa !5
  %11264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11265 = load i32, ptr %11264, align 4, !tbaa !5
  %11266 = call ptr @s2n_strerror(i32 noundef %11265, ptr noundef @.str.3)
  %11267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11268 = load i32, ptr %11267, align 4, !tbaa !5
  %11269 = call ptr @s2n_strerror_debug(i32 noundef %11268, ptr noundef @.str.3)
  %11270 = call ptr @__errno_location() #13
  %11271 = load i32, ptr %11270, align 4, !tbaa !5
  %11272 = call ptr @strerror(i32 noundef %11271) #12
  %11273 = call ptr @__errno_location() #13
  %11274 = load i32, ptr %11273, align 4, !tbaa !5
  %11275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11262, ptr noundef @.str.4, i32 noundef %11263, ptr noundef @.str.144, ptr noundef @.str.2, i32 noundef 563, ptr noundef %11266, ptr noundef %11269, ptr noundef %11272, i32 noundef %11274) #12
  br label %11276

11276:                                            ; preds = %11259, %11242
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #12
  br label %11277

11277:                                            ; preds = %11276
  br label %11278

11278:                                            ; preds = %11277
  call void @exit(i32 noundef 1) #14
  unreachable

11279:                                            ; No predecessors!
  br label %11280

11280:                                            ; preds = %11279
  br label %11281

11281:                                            ; preds = %11280, %11223
  br label %11282

11282:                                            ; preds = %11281
  br label %11283

11283:                                            ; preds = %11282
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #12
  %11284 = load ptr, ptr %232, align 8, !tbaa !9
  %11285 = getelementptr inbounds %struct.s2n_security_policy, ptr %11284, i32 0, i32 5
  %11286 = load ptr, ptr %11285, align 8, !tbaa !74
  %11287 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %11286, i32 0, i32 1
  %11288 = load ptr, ptr %11287, align 8, !tbaa !76
  %11289 = getelementptr inbounds ptr, ptr %11288, i64 0
  %11290 = load ptr, ptr %11289, align 8, !tbaa !9
  store ptr %11290, ptr %235, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #12
  %11291 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11291, ptr %236, align 8, !tbaa !9
  br label %11292

11292:                                            ; preds = %11283
  %11293 = load i32, ptr @test_count, align 4, !tbaa !5
  %11294 = add nsw i32 %11293, 1
  store i32 %11294, ptr @test_count, align 4, !tbaa !5
  %11295 = load ptr, ptr %236, align 8, !tbaa !9
  %11296 = icmp eq ptr %11295, null
  br i1 %11296, label %11297, label %11350

11297:                                            ; preds = %11292
  br label %11298

11298:                                            ; preds = %11297
  br label %11299

11299:                                            ; preds = %11298
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #12
  %11300 = call ptr @__errno_location() #13
  %11301 = load i32, ptr %11300, align 4, !tbaa !5
  store i32 %11301, ptr %237, align 4, !tbaa !5
  %11302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11303 = call i32 @s2n_print_stacktrace(ptr noundef %11302)
  %11304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11305 = trunc i8 %11304 to i1
  br i1 %11305, label %11306, label %11328

11306:                                            ; preds = %11299
  %11307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11308 = call i32 @fileno(ptr noundef %11307) #12
  %11309 = call i32 @isatty(i32 noundef %11308) #12
  %11310 = icmp ne i32 %11309, 0
  br i1 %11310, label %11311, label %11328

11311:                                            ; preds = %11306
  %11312 = load i32, ptr %237, align 4, !tbaa !5
  %11313 = call ptr @__errno_location() #13
  store i32 %11312, ptr %11313, align 4, !tbaa !5
  %11314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11315 = load i32, ptr @test_count, align 4, !tbaa !5
  %11316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11317 = load i32, ptr %11316, align 4, !tbaa !5
  %11318 = call ptr @s2n_strerror(i32 noundef %11317, ptr noundef @.str.3)
  %11319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11320 = load i32, ptr %11319, align 4, !tbaa !5
  %11321 = call ptr @s2n_strerror_debug(i32 noundef %11320, ptr noundef @.str.3)
  %11322 = call ptr @__errno_location() #13
  %11323 = load i32, ptr %11322, align 4, !tbaa !5
  %11324 = call ptr @strerror(i32 noundef %11323) #12
  %11325 = call ptr @__errno_location() #13
  %11326 = load i32, ptr %11325, align 4, !tbaa !5
  %11327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11314, ptr noundef @.str, i32 noundef %11315, ptr noundef @.str.145, ptr noundef @.str.2, i32 noundef 577, ptr noundef %11318, ptr noundef %11321, ptr noundef %11324, i32 noundef %11326) #12
  br label %11345

11328:                                            ; preds = %11306, %11299
  %11329 = load i32, ptr %237, align 4, !tbaa !5
  %11330 = call ptr @__errno_location() #13
  store i32 %11329, ptr %11330, align 4, !tbaa !5
  %11331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11332 = load i32, ptr @test_count, align 4, !tbaa !5
  %11333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11334 = load i32, ptr %11333, align 4, !tbaa !5
  %11335 = call ptr @s2n_strerror(i32 noundef %11334, ptr noundef @.str.3)
  %11336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11337 = load i32, ptr %11336, align 4, !tbaa !5
  %11338 = call ptr @s2n_strerror_debug(i32 noundef %11337, ptr noundef @.str.3)
  %11339 = call ptr @__errno_location() #13
  %11340 = load i32, ptr %11339, align 4, !tbaa !5
  %11341 = call ptr @strerror(i32 noundef %11340) #12
  %11342 = call ptr @__errno_location() #13
  %11343 = load i32, ptr %11342, align 4, !tbaa !5
  %11344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11331, ptr noundef @.str.4, i32 noundef %11332, ptr noundef @.str.145, ptr noundef @.str.2, i32 noundef 577, ptr noundef %11335, ptr noundef %11338, ptr noundef %11341, i32 noundef %11343) #12
  br label %11345

11345:                                            ; preds = %11328, %11311
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #12
  br label %11346

11346:                                            ; preds = %11345
  br label %11347

11347:                                            ; preds = %11346
  call void @exit(i32 noundef 1) #14
  unreachable

11348:                                            ; No predecessors!
  br label %11349

11349:                                            ; preds = %11348
  br label %11350

11350:                                            ; preds = %11349, %11292
  br label %11351

11351:                                            ; preds = %11350
  br label %11352

11352:                                            ; preds = %11351
  br label %11353

11353:                                            ; preds = %11352
  %11354 = load i32, ptr @test_count, align 4, !tbaa !5
  %11355 = add nsw i32 %11354, 1
  store i32 %11355, ptr @test_count, align 4, !tbaa !5
  %11356 = load ptr, ptr %236, align 8, !tbaa !9
  %11357 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11356, ptr noundef @.str.142)
  %11358 = icmp eq i32 %11357, -1
  br i1 %11358, label %11359, label %11412

11359:                                            ; preds = %11353
  br label %11360

11360:                                            ; preds = %11359
  br label %11361

11361:                                            ; preds = %11360
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #12
  %11362 = call ptr @__errno_location() #13
  %11363 = load i32, ptr %11362, align 4, !tbaa !5
  store i32 %11363, ptr %238, align 4, !tbaa !5
  %11364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11365 = call i32 @s2n_print_stacktrace(ptr noundef %11364)
  %11366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11367 = trunc i8 %11366 to i1
  br i1 %11367, label %11368, label %11390

11368:                                            ; preds = %11361
  %11369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11370 = call i32 @fileno(ptr noundef %11369) #12
  %11371 = call i32 @isatty(i32 noundef %11370) #12
  %11372 = icmp ne i32 %11371, 0
  br i1 %11372, label %11373, label %11390

11373:                                            ; preds = %11368
  %11374 = load i32, ptr %238, align 4, !tbaa !5
  %11375 = call ptr @__errno_location() #13
  store i32 %11374, ptr %11375, align 4, !tbaa !5
  %11376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11377 = load i32, ptr @test_count, align 4, !tbaa !5
  %11378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11379 = load i32, ptr %11378, align 4, !tbaa !5
  %11380 = call ptr @s2n_strerror(i32 noundef %11379, ptr noundef @.str.3)
  %11381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11382 = load i32, ptr %11381, align 4, !tbaa !5
  %11383 = call ptr @s2n_strerror_debug(i32 noundef %11382, ptr noundef @.str.3)
  %11384 = call ptr @__errno_location() #13
  %11385 = load i32, ptr %11384, align 4, !tbaa !5
  %11386 = call ptr @strerror(i32 noundef %11385) #12
  %11387 = call ptr @__errno_location() #13
  %11388 = load i32, ptr %11387, align 4, !tbaa !5
  %11389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11376, ptr noundef @.str, i32 noundef %11377, ptr noundef @.str.146, ptr noundef @.str.2, i32 noundef 578, ptr noundef %11380, ptr noundef %11383, ptr noundef %11386, i32 noundef %11388) #12
  br label %11407

11390:                                            ; preds = %11368, %11361
  %11391 = load i32, ptr %238, align 4, !tbaa !5
  %11392 = call ptr @__errno_location() #13
  store i32 %11391, ptr %11392, align 4, !tbaa !5
  %11393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11394 = load i32, ptr @test_count, align 4, !tbaa !5
  %11395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11396 = load i32, ptr %11395, align 4, !tbaa !5
  %11397 = call ptr @s2n_strerror(i32 noundef %11396, ptr noundef @.str.3)
  %11398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11399 = load i32, ptr %11398, align 4, !tbaa !5
  %11400 = call ptr @s2n_strerror_debug(i32 noundef %11399, ptr noundef @.str.3)
  %11401 = call ptr @__errno_location() #13
  %11402 = load i32, ptr %11401, align 4, !tbaa !5
  %11403 = call ptr @strerror(i32 noundef %11402) #12
  %11404 = call ptr @__errno_location() #13
  %11405 = load i32, ptr %11404, align 4, !tbaa !5
  %11406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11393, ptr noundef @.str.4, i32 noundef %11394, ptr noundef @.str.146, ptr noundef @.str.2, i32 noundef 578, ptr noundef %11397, ptr noundef %11400, ptr noundef %11403, i32 noundef %11405) #12
  br label %11407

11407:                                            ; preds = %11390, %11373
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #12
  br label %11408

11408:                                            ; preds = %11407
  br label %11409

11409:                                            ; preds = %11408
  call void @exit(i32 noundef 1) #14
  unreachable

11410:                                            ; No predecessors!
  br label %11411

11411:                                            ; preds = %11410
  br label %11412

11412:                                            ; preds = %11411, %11353
  br label %11413

11413:                                            ; preds = %11412
  br label %11414

11414:                                            ; preds = %11413
  %11415 = load ptr, ptr %236, align 8, !tbaa !9
  %11416 = getelementptr inbounds %struct.s2n_connection, ptr %11415, i32 0, i32 23
  store i8 34, ptr %11416, align 4, !tbaa !73
  %11417 = load ptr, ptr %236, align 8, !tbaa !9
  %11418 = getelementptr inbounds %struct.s2n_connection, ptr %11417, i32 0, i32 27
  %11419 = load ptr, ptr %11418, align 8, !tbaa !42
  %11420 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11419, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %11420, align 8, !tbaa !43
  %11421 = load ptr, ptr %235, align 8, !tbaa !9
  %11422 = load ptr, ptr %236, align 8, !tbaa !9
  %11423 = getelementptr inbounds %struct.s2n_connection, ptr %11422, i32 0, i32 31
  %11424 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11423, i32 0, i32 1
  %11425 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11424, i32 0, i32 0
  store ptr %11421, ptr %11425, align 8, !tbaa !48
  br label %11426

11426:                                            ; preds = %11414
  %11427 = load i32, ptr @test_count, align 4, !tbaa !5
  %11428 = add nsw i32 %11427, 1
  store i32 %11428, ptr @test_count, align 4, !tbaa !5
  %11429 = load ptr, ptr %236, align 8, !tbaa !9
  %11430 = call i32 @s2n_server_hello_retry_recv(ptr noundef %11429)
  %11431 = icmp eq i32 %11430, -1
  br i1 %11431, label %11432, label %11485

11432:                                            ; preds = %11426
  br label %11433

11433:                                            ; preds = %11432
  br label %11434

11434:                                            ; preds = %11433
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #12
  %11435 = call ptr @__errno_location() #13
  %11436 = load i32, ptr %11435, align 4, !tbaa !5
  store i32 %11436, ptr %239, align 4, !tbaa !5
  %11437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11438 = call i32 @s2n_print_stacktrace(ptr noundef %11437)
  %11439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11440 = trunc i8 %11439 to i1
  br i1 %11440, label %11441, label %11463

11441:                                            ; preds = %11434
  %11442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11443 = call i32 @fileno(ptr noundef %11442) #12
  %11444 = call i32 @isatty(i32 noundef %11443) #12
  %11445 = icmp ne i32 %11444, 0
  br i1 %11445, label %11446, label %11463

11446:                                            ; preds = %11441
  %11447 = load i32, ptr %239, align 4, !tbaa !5
  %11448 = call ptr @__errno_location() #13
  store i32 %11447, ptr %11448, align 4, !tbaa !5
  %11449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11450 = load i32, ptr @test_count, align 4, !tbaa !5
  %11451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11452 = load i32, ptr %11451, align 4, !tbaa !5
  %11453 = call ptr @s2n_strerror(i32 noundef %11452, ptr noundef @.str.3)
  %11454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11455 = load i32, ptr %11454, align 4, !tbaa !5
  %11456 = call ptr @s2n_strerror_debug(i32 noundef %11455, ptr noundef @.str.3)
  %11457 = call ptr @__errno_location() #13
  %11458 = load i32, ptr %11457, align 4, !tbaa !5
  %11459 = call ptr @strerror(i32 noundef %11458) #12
  %11460 = call ptr @__errno_location() #13
  %11461 = load i32, ptr %11460, align 4, !tbaa !5
  %11462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11449, ptr noundef @.str, i32 noundef %11450, ptr noundef @.str.147, ptr noundef @.str.2, i32 noundef 585, ptr noundef %11453, ptr noundef %11456, ptr noundef %11459, i32 noundef %11461) #12
  br label %11480

11463:                                            ; preds = %11441, %11434
  %11464 = load i32, ptr %239, align 4, !tbaa !5
  %11465 = call ptr @__errno_location() #13
  store i32 %11464, ptr %11465, align 4, !tbaa !5
  %11466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11467 = load i32, ptr @test_count, align 4, !tbaa !5
  %11468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11469 = load i32, ptr %11468, align 4, !tbaa !5
  %11470 = call ptr @s2n_strerror(i32 noundef %11469, ptr noundef @.str.3)
  %11471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11472 = load i32, ptr %11471, align 4, !tbaa !5
  %11473 = call ptr @s2n_strerror_debug(i32 noundef %11472, ptr noundef @.str.3)
  %11474 = call ptr @__errno_location() #13
  %11475 = load i32, ptr %11474, align 4, !tbaa !5
  %11476 = call ptr @strerror(i32 noundef %11475) #12
  %11477 = call ptr @__errno_location() #13
  %11478 = load i32, ptr %11477, align 4, !tbaa !5
  %11479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11466, ptr noundef @.str.4, i32 noundef %11467, ptr noundef @.str.147, ptr noundef @.str.2, i32 noundef 585, ptr noundef %11470, ptr noundef %11473, ptr noundef %11476, i32 noundef %11478) #12
  br label %11480

11480:                                            ; preds = %11463, %11446
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #12
  br label %11481

11481:                                            ; preds = %11480
  br label %11482

11482:                                            ; preds = %11481
  call void @exit(i32 noundef 1) #14
  unreachable

11483:                                            ; No predecessors!
  br label %11484

11484:                                            ; preds = %11483
  br label %11485

11485:                                            ; preds = %11484, %11426
  br label %11486

11486:                                            ; preds = %11485
  br label %11487

11487:                                            ; preds = %11486
  %11488 = load ptr, ptr %235, align 8, !tbaa !9
  %11489 = load ptr, ptr %236, align 8, !tbaa !9
  %11490 = getelementptr inbounds %struct.s2n_connection, ptr %11489, i32 0, i32 31
  %11491 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11490, i32 0, i32 3
  %11492 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11491, i32 0, i32 0
  store ptr %11488, ptr %11492, align 8, !tbaa !49
  %11493 = call ptr @EVP_PKEY_new()
  %11494 = load ptr, ptr %236, align 8, !tbaa !9
  %11495 = getelementptr inbounds %struct.s2n_connection, ptr %11494, i32 0, i32 31
  %11496 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11495, i32 0, i32 3
  %11497 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11496, i32 0, i32 1
  store ptr %11493, ptr %11497, align 8, !tbaa !78
  br label %11498

11498:                                            ; preds = %11487
  %11499 = load i32, ptr @test_count, align 4, !tbaa !5
  %11500 = add nsw i32 %11499, 1
  store i32 %11500, ptr @test_count, align 4, !tbaa !5
  %11501 = load ptr, ptr %236, align 8, !tbaa !9
  %11502 = getelementptr inbounds %struct.s2n_connection, ptr %11501, i32 0, i32 31
  %11503 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11502, i32 0, i32 3
  %11504 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11503, i32 0, i32 1
  %11505 = load ptr, ptr %11504, align 8, !tbaa !78
  %11506 = icmp eq ptr %11505, null
  br i1 %11506, label %11507, label %11560

11507:                                            ; preds = %11498
  br label %11508

11508:                                            ; preds = %11507
  br label %11509

11509:                                            ; preds = %11508
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #12
  %11510 = call ptr @__errno_location() #13
  %11511 = load i32, ptr %11510, align 4, !tbaa !5
  store i32 %11511, ptr %240, align 4, !tbaa !5
  %11512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11513 = call i32 @s2n_print_stacktrace(ptr noundef %11512)
  %11514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11515 = trunc i8 %11514 to i1
  br i1 %11515, label %11516, label %11538

11516:                                            ; preds = %11509
  %11517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11518 = call i32 @fileno(ptr noundef %11517) #12
  %11519 = call i32 @isatty(i32 noundef %11518) #12
  %11520 = icmp ne i32 %11519, 0
  br i1 %11520, label %11521, label %11538

11521:                                            ; preds = %11516
  %11522 = load i32, ptr %240, align 4, !tbaa !5
  %11523 = call ptr @__errno_location() #13
  store i32 %11522, ptr %11523, align 4, !tbaa !5
  %11524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11525 = load i32, ptr @test_count, align 4, !tbaa !5
  %11526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11527 = load i32, ptr %11526, align 4, !tbaa !5
  %11528 = call ptr @s2n_strerror(i32 noundef %11527, ptr noundef @.str.3)
  %11529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11530 = load i32, ptr %11529, align 4, !tbaa !5
  %11531 = call ptr @s2n_strerror_debug(i32 noundef %11530, ptr noundef @.str.3)
  %11532 = call ptr @__errno_location() #13
  %11533 = load i32, ptr %11532, align 4, !tbaa !5
  %11534 = call ptr @strerror(i32 noundef %11533) #12
  %11535 = call ptr @__errno_location() #13
  %11536 = load i32, ptr %11535, align 4, !tbaa !5
  %11537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11524, ptr noundef @.str, i32 noundef %11525, ptr noundef @.str.148, ptr noundef @.str.2, i32 noundef 590, ptr noundef %11528, ptr noundef %11531, ptr noundef %11534, i32 noundef %11536) #12
  br label %11555

11538:                                            ; preds = %11516, %11509
  %11539 = load i32, ptr %240, align 4, !tbaa !5
  %11540 = call ptr @__errno_location() #13
  store i32 %11539, ptr %11540, align 4, !tbaa !5
  %11541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11542 = load i32, ptr @test_count, align 4, !tbaa !5
  %11543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11544 = load i32, ptr %11543, align 4, !tbaa !5
  %11545 = call ptr @s2n_strerror(i32 noundef %11544, ptr noundef @.str.3)
  %11546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11547 = load i32, ptr %11546, align 4, !tbaa !5
  %11548 = call ptr @s2n_strerror_debug(i32 noundef %11547, ptr noundef @.str.3)
  %11549 = call ptr @__errno_location() #13
  %11550 = load i32, ptr %11549, align 4, !tbaa !5
  %11551 = call ptr @strerror(i32 noundef %11550) #12
  %11552 = call ptr @__errno_location() #13
  %11553 = load i32, ptr %11552, align 4, !tbaa !5
  %11554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11541, ptr noundef @.str.4, i32 noundef %11542, ptr noundef @.str.148, ptr noundef @.str.2, i32 noundef 590, ptr noundef %11545, ptr noundef %11548, ptr noundef %11551, i32 noundef %11553) #12
  br label %11555

11555:                                            ; preds = %11538, %11521
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #12
  br label %11556

11556:                                            ; preds = %11555
  br label %11557

11557:                                            ; preds = %11556
  call void @exit(i32 noundef 1) #14
  unreachable

11558:                                            ; No predecessors!
  br label %11559

11559:                                            ; preds = %11558
  br label %11560

11560:                                            ; preds = %11559, %11498
  br label %11561

11561:                                            ; preds = %11560
  br label %11562

11562:                                            ; preds = %11561
  br label %11563

11563:                                            ; preds = %11562
  br label %11564

11564:                                            ; preds = %11563
  br label %11565

11565:                                            ; preds = %11564
  %11566 = load i32, ptr @test_count, align 4, !tbaa !5
  %11567 = add nsw i32 %11566, 1
  store i32 %11567, ptr @test_count, align 4, !tbaa !5
  %11568 = load ptr, ptr %236, align 8, !tbaa !9
  %11569 = call i32 @s2n_server_hello_retry_recv(ptr noundef %11568)
  %11570 = icmp eq i32 %11569, -1
  br i1 %11570, label %11624, label %11571

11571:                                            ; preds = %11565
  br label %11572

11572:                                            ; preds = %11571
  br label %11573

11573:                                            ; preds = %11572
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #12
  %11574 = call ptr @__errno_location() #13
  %11575 = load i32, ptr %11574, align 4, !tbaa !5
  store i32 %11575, ptr %241, align 4, !tbaa !5
  %11576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11577 = call i32 @s2n_print_stacktrace(ptr noundef %11576)
  %11578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11579 = trunc i8 %11578 to i1
  br i1 %11579, label %11580, label %11602

11580:                                            ; preds = %11573
  %11581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11582 = call i32 @fileno(ptr noundef %11581) #12
  %11583 = call i32 @isatty(i32 noundef %11582) #12
  %11584 = icmp ne i32 %11583, 0
  br i1 %11584, label %11585, label %11602

11585:                                            ; preds = %11580
  %11586 = load i32, ptr %241, align 4, !tbaa !5
  %11587 = call ptr @__errno_location() #13
  store i32 %11586, ptr %11587, align 4, !tbaa !5
  %11588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11589 = load i32, ptr @test_count, align 4, !tbaa !5
  %11590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11591 = load i32, ptr %11590, align 4, !tbaa !5
  %11592 = call ptr @s2n_strerror(i32 noundef %11591, ptr noundef @.str.3)
  %11593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11594 = load i32, ptr %11593, align 4, !tbaa !5
  %11595 = call ptr @s2n_strerror_debug(i32 noundef %11594, ptr noundef @.str.3)
  %11596 = call ptr @__errno_location() #13
  %11597 = load i32, ptr %11596, align 4, !tbaa !5
  %11598 = call ptr @strerror(i32 noundef %11597) #12
  %11599 = call ptr @__errno_location() #13
  %11600 = load i32, ptr %11599, align 4, !tbaa !5
  %11601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11588, ptr noundef @.str, i32 noundef %11589, ptr noundef @.str.149, ptr noundef @.str.2, i32 noundef 592, ptr noundef %11592, ptr noundef %11595, ptr noundef %11598, i32 noundef %11600) #12
  br label %11619

11602:                                            ; preds = %11580, %11573
  %11603 = load i32, ptr %241, align 4, !tbaa !5
  %11604 = call ptr @__errno_location() #13
  store i32 %11603, ptr %11604, align 4, !tbaa !5
  %11605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11606 = load i32, ptr @test_count, align 4, !tbaa !5
  %11607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11608 = load i32, ptr %11607, align 4, !tbaa !5
  %11609 = call ptr @s2n_strerror(i32 noundef %11608, ptr noundef @.str.3)
  %11610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11611 = load i32, ptr %11610, align 4, !tbaa !5
  %11612 = call ptr @s2n_strerror_debug(i32 noundef %11611, ptr noundef @.str.3)
  %11613 = call ptr @__errno_location() #13
  %11614 = load i32, ptr %11613, align 4, !tbaa !5
  %11615 = call ptr @strerror(i32 noundef %11614) #12
  %11616 = call ptr @__errno_location() #13
  %11617 = load i32, ptr %11616, align 4, !tbaa !5
  %11618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11605, ptr noundef @.str.4, i32 noundef %11606, ptr noundef @.str.149, ptr noundef @.str.2, i32 noundef 592, ptr noundef %11609, ptr noundef %11612, ptr noundef %11615, i32 noundef %11617) #12
  br label %11619

11619:                                            ; preds = %11602, %11585
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #12
  br label %11620

11620:                                            ; preds = %11619
  br label %11621

11621:                                            ; preds = %11620
  call void @exit(i32 noundef 1) #14
  unreachable

11622:                                            ; No predecessors!
  br label %11623

11623:                                            ; preds = %11622
  br label %11624

11624:                                            ; preds = %11623, %11565
  br label %11625

11625:                                            ; preds = %11624
  br label %11626

11626:                                            ; preds = %11625
  br label %11627

11627:                                            ; preds = %11626
  %11628 = load i32, ptr @test_count, align 4, !tbaa !5
  %11629 = add nsw i32 %11628, 1
  store i32 %11629, ptr @test_count, align 4, !tbaa !5
  %11630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11631 = load i32, ptr %11630, align 4, !tbaa !5
  %11632 = icmp eq i32 %11631, 335544346
  br i1 %11632, label %11686, label %11633

11633:                                            ; preds = %11627
  br label %11634

11634:                                            ; preds = %11633
  br label %11635

11635:                                            ; preds = %11634
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #12
  %11636 = call ptr @__errno_location() #13
  %11637 = load i32, ptr %11636, align 4, !tbaa !5
  store i32 %11637, ptr %242, align 4, !tbaa !5
  %11638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11639 = call i32 @s2n_print_stacktrace(ptr noundef %11638)
  %11640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11641 = trunc i8 %11640 to i1
  br i1 %11641, label %11642, label %11664

11642:                                            ; preds = %11635
  %11643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11644 = call i32 @fileno(ptr noundef %11643) #12
  %11645 = call i32 @isatty(i32 noundef %11644) #12
  %11646 = icmp ne i32 %11645, 0
  br i1 %11646, label %11647, label %11664

11647:                                            ; preds = %11642
  %11648 = load i32, ptr %242, align 4, !tbaa !5
  %11649 = call ptr @__errno_location() #13
  store i32 %11648, ptr %11649, align 4, !tbaa !5
  %11650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11651 = load i32, ptr @test_count, align 4, !tbaa !5
  %11652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11653 = load i32, ptr %11652, align 4, !tbaa !5
  %11654 = call ptr @s2n_strerror(i32 noundef %11653, ptr noundef @.str.3)
  %11655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11656 = load i32, ptr %11655, align 4, !tbaa !5
  %11657 = call ptr @s2n_strerror_debug(i32 noundef %11656, ptr noundef @.str.3)
  %11658 = call ptr @__errno_location() #13
  %11659 = load i32, ptr %11658, align 4, !tbaa !5
  %11660 = call ptr @strerror(i32 noundef %11659) #12
  %11661 = call ptr @__errno_location() #13
  %11662 = load i32, ptr %11661, align 4, !tbaa !5
  %11663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11650, ptr noundef @.str, i32 noundef %11651, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 592, ptr noundef %11654, ptr noundef %11657, ptr noundef %11660, i32 noundef %11662) #12
  br label %11681

11664:                                            ; preds = %11642, %11635
  %11665 = load i32, ptr %242, align 4, !tbaa !5
  %11666 = call ptr @__errno_location() #13
  store i32 %11665, ptr %11666, align 4, !tbaa !5
  %11667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11668 = load i32, ptr @test_count, align 4, !tbaa !5
  %11669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11670 = load i32, ptr %11669, align 4, !tbaa !5
  %11671 = call ptr @s2n_strerror(i32 noundef %11670, ptr noundef @.str.3)
  %11672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11673 = load i32, ptr %11672, align 4, !tbaa !5
  %11674 = call ptr @s2n_strerror_debug(i32 noundef %11673, ptr noundef @.str.3)
  %11675 = call ptr @__errno_location() #13
  %11676 = load i32, ptr %11675, align 4, !tbaa !5
  %11677 = call ptr @strerror(i32 noundef %11676) #12
  %11678 = call ptr @__errno_location() #13
  %11679 = load i32, ptr %11678, align 4, !tbaa !5
  %11680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11667, ptr noundef @.str.4, i32 noundef %11668, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 592, ptr noundef %11671, ptr noundef %11674, ptr noundef %11677, i32 noundef %11679) #12
  br label %11681

11681:                                            ; preds = %11664, %11647
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #12
  br label %11682

11682:                                            ; preds = %11681
  br label %11683

11683:                                            ; preds = %11682
  call void @exit(i32 noundef 1) #14
  unreachable

11684:                                            ; No predecessors!
  br label %11685

11685:                                            ; preds = %11684
  br label %11686

11686:                                            ; preds = %11685, %11627
  br label %11687

11687:                                            ; preds = %11686
  br label %11688

11688:                                            ; preds = %11687
  br label %11689

11689:                                            ; preds = %11688
  %11690 = load i32, ptr @test_count, align 4, !tbaa !5
  %11691 = add nsw i32 %11690, 1
  store i32 %11691, ptr @test_count, align 4, !tbaa !5
  %11692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11693 = load i32, ptr %11692, align 4, !tbaa !5
  %11694 = call ptr @s2n_strerror_debug(i32 noundef %11693, ptr noundef @.str.3)
  %11695 = icmp eq ptr %11694, null
  br i1 %11695, label %11696, label %11749

11696:                                            ; preds = %11689
  br label %11697

11697:                                            ; preds = %11696
  br label %11698

11698:                                            ; preds = %11697
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #12
  %11699 = call ptr @__errno_location() #13
  %11700 = load i32, ptr %11699, align 4, !tbaa !5
  store i32 %11700, ptr %243, align 4, !tbaa !5
  %11701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11702 = call i32 @s2n_print_stacktrace(ptr noundef %11701)
  %11703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11704 = trunc i8 %11703 to i1
  br i1 %11704, label %11705, label %11727

11705:                                            ; preds = %11698
  %11706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11707 = call i32 @fileno(ptr noundef %11706) #12
  %11708 = call i32 @isatty(i32 noundef %11707) #12
  %11709 = icmp ne i32 %11708, 0
  br i1 %11709, label %11710, label %11727

11710:                                            ; preds = %11705
  %11711 = load i32, ptr %243, align 4, !tbaa !5
  %11712 = call ptr @__errno_location() #13
  store i32 %11711, ptr %11712, align 4, !tbaa !5
  %11713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11714 = load i32, ptr @test_count, align 4, !tbaa !5
  %11715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11716 = load i32, ptr %11715, align 4, !tbaa !5
  %11717 = call ptr @s2n_strerror(i32 noundef %11716, ptr noundef @.str.3)
  %11718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11719 = load i32, ptr %11718, align 4, !tbaa !5
  %11720 = call ptr @s2n_strerror_debug(i32 noundef %11719, ptr noundef @.str.3)
  %11721 = call ptr @__errno_location() #13
  %11722 = load i32, ptr %11721, align 4, !tbaa !5
  %11723 = call ptr @strerror(i32 noundef %11722) #12
  %11724 = call ptr @__errno_location() #13
  %11725 = load i32, ptr %11724, align 4, !tbaa !5
  %11726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11713, ptr noundef @.str, i32 noundef %11714, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 592, ptr noundef %11717, ptr noundef %11720, ptr noundef %11723, i32 noundef %11725) #12
  br label %11744

11727:                                            ; preds = %11705, %11698
  %11728 = load i32, ptr %243, align 4, !tbaa !5
  %11729 = call ptr @__errno_location() #13
  store i32 %11728, ptr %11729, align 4, !tbaa !5
  %11730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11731 = load i32, ptr @test_count, align 4, !tbaa !5
  %11732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11733 = load i32, ptr %11732, align 4, !tbaa !5
  %11734 = call ptr @s2n_strerror(i32 noundef %11733, ptr noundef @.str.3)
  %11735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11736 = load i32, ptr %11735, align 4, !tbaa !5
  %11737 = call ptr @s2n_strerror_debug(i32 noundef %11736, ptr noundef @.str.3)
  %11738 = call ptr @__errno_location() #13
  %11739 = load i32, ptr %11738, align 4, !tbaa !5
  %11740 = call ptr @strerror(i32 noundef %11739) #12
  %11741 = call ptr @__errno_location() #13
  %11742 = load i32, ptr %11741, align 4, !tbaa !5
  %11743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11730, ptr noundef @.str.4, i32 noundef %11731, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 592, ptr noundef %11734, ptr noundef %11737, ptr noundef %11740, i32 noundef %11742) #12
  br label %11744

11744:                                            ; preds = %11727, %11710
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #12
  br label %11745

11745:                                            ; preds = %11744
  br label %11746

11746:                                            ; preds = %11745
  call void @exit(i32 noundef 1) #14
  unreachable

11747:                                            ; No predecessors!
  br label %11748

11748:                                            ; preds = %11747
  br label %11749

11749:                                            ; preds = %11748, %11689
  br label %11750

11750:                                            ; preds = %11749
  br label %11751

11751:                                            ; preds = %11750
  br label %11752

11752:                                            ; preds = %11751
  br label %11753

11753:                                            ; preds = %11752
  br label %11754

11754:                                            ; preds = %11753
  %11755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11755, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11756 = call ptr @__errno_location() #13
  store i32 0, ptr %11756, align 4, !tbaa !5
  br label %11757

11757:                                            ; preds = %11754
  br label %11758

11758:                                            ; preds = %11757
  br label %11759

11759:                                            ; preds = %11758
  br label %11760

11760:                                            ; preds = %11759
  br label %11761

11761:                                            ; preds = %11760
  %11762 = load i32, ptr @test_count, align 4, !tbaa !5
  %11763 = add nsw i32 %11762, 1
  store i32 %11763, ptr @test_count, align 4, !tbaa !5
  %11764 = load ptr, ptr %236, align 8, !tbaa !9
  %11765 = call i32 @s2n_connection_free(ptr noundef %11764)
  %11766 = icmp eq i32 %11765, -1
  br i1 %11766, label %11767, label %11820

11767:                                            ; preds = %11761
  br label %11768

11768:                                            ; preds = %11767
  br label %11769

11769:                                            ; preds = %11768
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #12
  %11770 = call ptr @__errno_location() #13
  %11771 = load i32, ptr %11770, align 4, !tbaa !5
  store i32 %11771, ptr %244, align 4, !tbaa !5
  %11772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11773 = call i32 @s2n_print_stacktrace(ptr noundef %11772)
  %11774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11775 = trunc i8 %11774 to i1
  br i1 %11775, label %11776, label %11798

11776:                                            ; preds = %11769
  %11777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11778 = call i32 @fileno(ptr noundef %11777) #12
  %11779 = call i32 @isatty(i32 noundef %11778) #12
  %11780 = icmp ne i32 %11779, 0
  br i1 %11780, label %11781, label %11798

11781:                                            ; preds = %11776
  %11782 = load i32, ptr %244, align 4, !tbaa !5
  %11783 = call ptr @__errno_location() #13
  store i32 %11782, ptr %11783, align 4, !tbaa !5
  %11784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11785 = load i32, ptr @test_count, align 4, !tbaa !5
  %11786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11787 = load i32, ptr %11786, align 4, !tbaa !5
  %11788 = call ptr @s2n_strerror(i32 noundef %11787, ptr noundef @.str.3)
  %11789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11790 = load i32, ptr %11789, align 4, !tbaa !5
  %11791 = call ptr @s2n_strerror_debug(i32 noundef %11790, ptr noundef @.str.3)
  %11792 = call ptr @__errno_location() #13
  %11793 = load i32, ptr %11792, align 4, !tbaa !5
  %11794 = call ptr @strerror(i32 noundef %11793) #12
  %11795 = call ptr @__errno_location() #13
  %11796 = load i32, ptr %11795, align 4, !tbaa !5
  %11797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11784, ptr noundef @.str, i32 noundef %11785, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 594, ptr noundef %11788, ptr noundef %11791, ptr noundef %11794, i32 noundef %11796) #12
  br label %11815

11798:                                            ; preds = %11776, %11769
  %11799 = load i32, ptr %244, align 4, !tbaa !5
  %11800 = call ptr @__errno_location() #13
  store i32 %11799, ptr %11800, align 4, !tbaa !5
  %11801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11802 = load i32, ptr @test_count, align 4, !tbaa !5
  %11803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11804 = load i32, ptr %11803, align 4, !tbaa !5
  %11805 = call ptr @s2n_strerror(i32 noundef %11804, ptr noundef @.str.3)
  %11806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11807 = load i32, ptr %11806, align 4, !tbaa !5
  %11808 = call ptr @s2n_strerror_debug(i32 noundef %11807, ptr noundef @.str.3)
  %11809 = call ptr @__errno_location() #13
  %11810 = load i32, ptr %11809, align 4, !tbaa !5
  %11811 = call ptr @strerror(i32 noundef %11810) #12
  %11812 = call ptr @__errno_location() #13
  %11813 = load i32, ptr %11812, align 4, !tbaa !5
  %11814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11801, ptr noundef @.str.4, i32 noundef %11802, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 594, ptr noundef %11805, ptr noundef %11808, ptr noundef %11811, i32 noundef %11813) #12
  br label %11815

11815:                                            ; preds = %11798, %11781
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #12
  br label %11816

11816:                                            ; preds = %11815
  br label %11817

11817:                                            ; preds = %11816
  call void @exit(i32 noundef 1) #14
  unreachable

11818:                                            ; No predecessors!
  br label %11819

11819:                                            ; preds = %11818
  br label %11820

11820:                                            ; preds = %11819, %11761
  br label %11821

11821:                                            ; preds = %11820
  br label %11822

11822:                                            ; preds = %11821
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #12
  %11823 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11823, ptr %245, align 8, !tbaa !9
  br label %11824

11824:                                            ; preds = %11822
  %11825 = load i32, ptr @test_count, align 4, !tbaa !5
  %11826 = add nsw i32 %11825, 1
  store i32 %11826, ptr @test_count, align 4, !tbaa !5
  %11827 = load ptr, ptr %245, align 8, !tbaa !9
  %11828 = icmp eq ptr %11827, null
  br i1 %11828, label %11829, label %11882

11829:                                            ; preds = %11824
  br label %11830

11830:                                            ; preds = %11829
  br label %11831

11831:                                            ; preds = %11830
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #12
  %11832 = call ptr @__errno_location() #13
  %11833 = load i32, ptr %11832, align 4, !tbaa !5
  store i32 %11833, ptr %246, align 4, !tbaa !5
  %11834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11835 = call i32 @s2n_print_stacktrace(ptr noundef %11834)
  %11836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11837 = trunc i8 %11836 to i1
  br i1 %11837, label %11838, label %11860

11838:                                            ; preds = %11831
  %11839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11840 = call i32 @fileno(ptr noundef %11839) #12
  %11841 = call i32 @isatty(i32 noundef %11840) #12
  %11842 = icmp ne i32 %11841, 0
  br i1 %11842, label %11843, label %11860

11843:                                            ; preds = %11838
  %11844 = load i32, ptr %246, align 4, !tbaa !5
  %11845 = call ptr @__errno_location() #13
  store i32 %11844, ptr %11845, align 4, !tbaa !5
  %11846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11847 = load i32, ptr @test_count, align 4, !tbaa !5
  %11848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11849 = load i32, ptr %11848, align 4, !tbaa !5
  %11850 = call ptr @s2n_strerror(i32 noundef %11849, ptr noundef @.str.3)
  %11851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11852 = load i32, ptr %11851, align 4, !tbaa !5
  %11853 = call ptr @s2n_strerror_debug(i32 noundef %11852, ptr noundef @.str.3)
  %11854 = call ptr @__errno_location() #13
  %11855 = load i32, ptr %11854, align 4, !tbaa !5
  %11856 = call ptr @strerror(i32 noundef %11855) #12
  %11857 = call ptr @__errno_location() #13
  %11858 = load i32, ptr %11857, align 4, !tbaa !5
  %11859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11846, ptr noundef @.str, i32 noundef %11847, ptr noundef @.str.145, ptr noundef @.str.2, i32 noundef 600, ptr noundef %11850, ptr noundef %11853, ptr noundef %11856, i32 noundef %11858) #12
  br label %11877

11860:                                            ; preds = %11838, %11831
  %11861 = load i32, ptr %246, align 4, !tbaa !5
  %11862 = call ptr @__errno_location() #13
  store i32 %11861, ptr %11862, align 4, !tbaa !5
  %11863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11864 = load i32, ptr @test_count, align 4, !tbaa !5
  %11865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11866 = load i32, ptr %11865, align 4, !tbaa !5
  %11867 = call ptr @s2n_strerror(i32 noundef %11866, ptr noundef @.str.3)
  %11868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11869 = load i32, ptr %11868, align 4, !tbaa !5
  %11870 = call ptr @s2n_strerror_debug(i32 noundef %11869, ptr noundef @.str.3)
  %11871 = call ptr @__errno_location() #13
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  %11873 = call ptr @strerror(i32 noundef %11872) #12
  %11874 = call ptr @__errno_location() #13
  %11875 = load i32, ptr %11874, align 4, !tbaa !5
  %11876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11863, ptr noundef @.str.4, i32 noundef %11864, ptr noundef @.str.145, ptr noundef @.str.2, i32 noundef 600, ptr noundef %11867, ptr noundef %11870, ptr noundef %11873, i32 noundef %11875) #12
  br label %11877

11877:                                            ; preds = %11860, %11843
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #12
  br label %11878

11878:                                            ; preds = %11877
  br label %11879

11879:                                            ; preds = %11878
  call void @exit(i32 noundef 1) #14
  unreachable

11880:                                            ; No predecessors!
  br label %11881

11881:                                            ; preds = %11880
  br label %11882

11882:                                            ; preds = %11881, %11824
  br label %11883

11883:                                            ; preds = %11882
  br label %11884

11884:                                            ; preds = %11883
  br label %11885

11885:                                            ; preds = %11884
  %11886 = load i32, ptr @test_count, align 4, !tbaa !5
  %11887 = add nsw i32 %11886, 1
  store i32 %11887, ptr @test_count, align 4, !tbaa !5
  %11888 = load ptr, ptr %245, align 8, !tbaa !9
  %11889 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11888, ptr noundef @.str.142)
  %11890 = icmp eq i32 %11889, -1
  br i1 %11890, label %11891, label %11944

11891:                                            ; preds = %11885
  br label %11892

11892:                                            ; preds = %11891
  br label %11893

11893:                                            ; preds = %11892
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #12
  %11894 = call ptr @__errno_location() #13
  %11895 = load i32, ptr %11894, align 4, !tbaa !5
  store i32 %11895, ptr %247, align 4, !tbaa !5
  %11896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11897 = call i32 @s2n_print_stacktrace(ptr noundef %11896)
  %11898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11899 = trunc i8 %11898 to i1
  br i1 %11899, label %11900, label %11922

11900:                                            ; preds = %11893
  %11901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11902 = call i32 @fileno(ptr noundef %11901) #12
  %11903 = call i32 @isatty(i32 noundef %11902) #12
  %11904 = icmp ne i32 %11903, 0
  br i1 %11904, label %11905, label %11922

11905:                                            ; preds = %11900
  %11906 = load i32, ptr %247, align 4, !tbaa !5
  %11907 = call ptr @__errno_location() #13
  store i32 %11906, ptr %11907, align 4, !tbaa !5
  %11908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11909 = load i32, ptr @test_count, align 4, !tbaa !5
  %11910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11911 = load i32, ptr %11910, align 4, !tbaa !5
  %11912 = call ptr @s2n_strerror(i32 noundef %11911, ptr noundef @.str.3)
  %11913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11914 = load i32, ptr %11913, align 4, !tbaa !5
  %11915 = call ptr @s2n_strerror_debug(i32 noundef %11914, ptr noundef @.str.3)
  %11916 = call ptr @__errno_location() #13
  %11917 = load i32, ptr %11916, align 4, !tbaa !5
  %11918 = call ptr @strerror(i32 noundef %11917) #12
  %11919 = call ptr @__errno_location() #13
  %11920 = load i32, ptr %11919, align 4, !tbaa !5
  %11921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11908, ptr noundef @.str, i32 noundef %11909, ptr noundef @.str.146, ptr noundef @.str.2, i32 noundef 601, ptr noundef %11912, ptr noundef %11915, ptr noundef %11918, i32 noundef %11920) #12
  br label %11939

11922:                                            ; preds = %11900, %11893
  %11923 = load i32, ptr %247, align 4, !tbaa !5
  %11924 = call ptr @__errno_location() #13
  store i32 %11923, ptr %11924, align 4, !tbaa !5
  %11925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11926 = load i32, ptr @test_count, align 4, !tbaa !5
  %11927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11928 = load i32, ptr %11927, align 4, !tbaa !5
  %11929 = call ptr @s2n_strerror(i32 noundef %11928, ptr noundef @.str.3)
  %11930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11931 = load i32, ptr %11930, align 4, !tbaa !5
  %11932 = call ptr @s2n_strerror_debug(i32 noundef %11931, ptr noundef @.str.3)
  %11933 = call ptr @__errno_location() #13
  %11934 = load i32, ptr %11933, align 4, !tbaa !5
  %11935 = call ptr @strerror(i32 noundef %11934) #12
  %11936 = call ptr @__errno_location() #13
  %11937 = load i32, ptr %11936, align 4, !tbaa !5
  %11938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11925, ptr noundef @.str.4, i32 noundef %11926, ptr noundef @.str.146, ptr noundef @.str.2, i32 noundef 601, ptr noundef %11929, ptr noundef %11932, ptr noundef %11935, i32 noundef %11937) #12
  br label %11939

11939:                                            ; preds = %11922, %11905
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #12
  br label %11940

11940:                                            ; preds = %11939
  br label %11941

11941:                                            ; preds = %11940
  call void @exit(i32 noundef 1) #14
  unreachable

11942:                                            ; No predecessors!
  br label %11943

11943:                                            ; preds = %11942
  br label %11944

11944:                                            ; preds = %11943, %11885
  br label %11945

11945:                                            ; preds = %11944
  br label %11946

11946:                                            ; preds = %11945
  %11947 = load ptr, ptr %245, align 8, !tbaa !9
  %11948 = getelementptr inbounds %struct.s2n_connection, ptr %11947, i32 0, i32 23
  store i8 34, ptr %11948, align 4, !tbaa !73
  %11949 = load ptr, ptr %245, align 8, !tbaa !9
  %11950 = getelementptr inbounds %struct.s2n_connection, ptr %11949, i32 0, i32 27
  %11951 = load ptr, ptr %11950, align 8, !tbaa !42
  %11952 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11951, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %11952, align 8, !tbaa !43
  %11953 = load ptr, ptr %235, align 8, !tbaa !9
  %11954 = load ptr, ptr %245, align 8, !tbaa !9
  %11955 = getelementptr inbounds %struct.s2n_connection, ptr %11954, i32 0, i32 31
  %11956 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11955, i32 0, i32 1
  %11957 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11956, i32 0, i32 0
  store ptr %11953, ptr %11957, align 8, !tbaa !48
  %11958 = load ptr, ptr %245, align 8, !tbaa !9
  %11959 = getelementptr inbounds %struct.s2n_connection, ptr %11958, i32 0, i32 89
  store i32 1, ptr %11959, align 8, !tbaa !79
  br label %11960

11960:                                            ; preds = %11946
  %11961 = load i32, ptr @test_count, align 4, !tbaa !5
  %11962 = add nsw i32 %11961, 1
  store i32 %11962, ptr @test_count, align 4, !tbaa !5
  %11963 = load ptr, ptr %245, align 8, !tbaa !9
  %11964 = call i32 @s2n_server_hello_retry_recv(ptr noundef %11963)
  %11965 = icmp eq i32 %11964, -1
  br i1 %11965, label %11966, label %12019

11966:                                            ; preds = %11960
  br label %11967

11967:                                            ; preds = %11966
  br label %11968

11968:                                            ; preds = %11967
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #12
  %11969 = call ptr @__errno_location() #13
  %11970 = load i32, ptr %11969, align 4, !tbaa !5
  store i32 %11970, ptr %248, align 4, !tbaa !5
  %11971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11972 = call i32 @s2n_print_stacktrace(ptr noundef %11971)
  %11973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11974 = trunc i8 %11973 to i1
  br i1 %11974, label %11975, label %11997

11975:                                            ; preds = %11968
  %11976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11977 = call i32 @fileno(ptr noundef %11976) #12
  %11978 = call i32 @isatty(i32 noundef %11977) #12
  %11979 = icmp ne i32 %11978, 0
  br i1 %11979, label %11980, label %11997

11980:                                            ; preds = %11975
  %11981 = load i32, ptr %248, align 4, !tbaa !5
  %11982 = call ptr @__errno_location() #13
  store i32 %11981, ptr %11982, align 4, !tbaa !5
  %11983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11984 = load i32, ptr @test_count, align 4, !tbaa !5
  %11985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11986 = load i32, ptr %11985, align 4, !tbaa !5
  %11987 = call ptr @s2n_strerror(i32 noundef %11986, ptr noundef @.str.3)
  %11988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11989 = load i32, ptr %11988, align 4, !tbaa !5
  %11990 = call ptr @s2n_strerror_debug(i32 noundef %11989, ptr noundef @.str.3)
  %11991 = call ptr @__errno_location() #13
  %11992 = load i32, ptr %11991, align 4, !tbaa !5
  %11993 = call ptr @strerror(i32 noundef %11992) #12
  %11994 = call ptr @__errno_location() #13
  %11995 = load i32, ptr %11994, align 4, !tbaa !5
  %11996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11983, ptr noundef @.str, i32 noundef %11984, ptr noundef @.str.147, ptr noundef @.str.2, i32 noundef 609, ptr noundef %11987, ptr noundef %11990, ptr noundef %11993, i32 noundef %11995) #12
  br label %12014

11997:                                            ; preds = %11975, %11968
  %11998 = load i32, ptr %248, align 4, !tbaa !5
  %11999 = call ptr @__errno_location() #13
  store i32 %11998, ptr %11999, align 4, !tbaa !5
  %12000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12001 = load i32, ptr @test_count, align 4, !tbaa !5
  %12002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12003 = load i32, ptr %12002, align 4, !tbaa !5
  %12004 = call ptr @s2n_strerror(i32 noundef %12003, ptr noundef @.str.3)
  %12005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12006 = load i32, ptr %12005, align 4, !tbaa !5
  %12007 = call ptr @s2n_strerror_debug(i32 noundef %12006, ptr noundef @.str.3)
  %12008 = call ptr @__errno_location() #13
  %12009 = load i32, ptr %12008, align 4, !tbaa !5
  %12010 = call ptr @strerror(i32 noundef %12009) #12
  %12011 = call ptr @__errno_location() #13
  %12012 = load i32, ptr %12011, align 4, !tbaa !5
  %12013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12000, ptr noundef @.str.4, i32 noundef %12001, ptr noundef @.str.147, ptr noundef @.str.2, i32 noundef 609, ptr noundef %12004, ptr noundef %12007, ptr noundef %12010, i32 noundef %12012) #12
  br label %12014

12014:                                            ; preds = %11997, %11980
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #12
  br label %12015

12015:                                            ; preds = %12014
  br label %12016

12016:                                            ; preds = %12015
  call void @exit(i32 noundef 1) #14
  unreachable

12017:                                            ; No predecessors!
  br label %12018

12018:                                            ; preds = %12017
  br label %12019

12019:                                            ; preds = %12018, %11960
  br label %12020

12020:                                            ; preds = %12019
  br label %12021

12021:                                            ; preds = %12020
  %12022 = load ptr, ptr %245, align 8, !tbaa !9
  %12023 = getelementptr inbounds %struct.s2n_connection, ptr %12022, i32 0, i32 89
  store i32 2, ptr %12023, align 8, !tbaa !79
  %12024 = load ptr, ptr %235, align 8, !tbaa !9
  %12025 = load ptr, ptr %245, align 8, !tbaa !9
  %12026 = getelementptr inbounds %struct.s2n_connection, ptr %12025, i32 0, i32 31
  %12027 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12026, i32 0, i32 3
  %12028 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12027, i32 0, i32 0
  store ptr %12024, ptr %12028, align 8, !tbaa !49
  %12029 = call ptr @EVP_PKEY_new()
  %12030 = load ptr, ptr %245, align 8, !tbaa !9
  %12031 = getelementptr inbounds %struct.s2n_connection, ptr %12030, i32 0, i32 31
  %12032 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12031, i32 0, i32 3
  %12033 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12032, i32 0, i32 1
  store ptr %12029, ptr %12033, align 8, !tbaa !78
  br label %12034

12034:                                            ; preds = %12021
  %12035 = load i32, ptr @test_count, align 4, !tbaa !5
  %12036 = add nsw i32 %12035, 1
  store i32 %12036, ptr @test_count, align 4, !tbaa !5
  %12037 = load ptr, ptr %245, align 8, !tbaa !9
  %12038 = getelementptr inbounds %struct.s2n_connection, ptr %12037, i32 0, i32 31
  %12039 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12038, i32 0, i32 3
  %12040 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12039, i32 0, i32 1
  %12041 = load ptr, ptr %12040, align 8, !tbaa !78
  %12042 = icmp eq ptr %12041, null
  br i1 %12042, label %12043, label %12096

12043:                                            ; preds = %12034
  br label %12044

12044:                                            ; preds = %12043
  br label %12045

12045:                                            ; preds = %12044
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #12
  %12046 = call ptr @__errno_location() #13
  %12047 = load i32, ptr %12046, align 4, !tbaa !5
  store i32 %12047, ptr %249, align 4, !tbaa !5
  %12048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12049 = call i32 @s2n_print_stacktrace(ptr noundef %12048)
  %12050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12051 = trunc i8 %12050 to i1
  br i1 %12051, label %12052, label %12074

12052:                                            ; preds = %12045
  %12053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12054 = call i32 @fileno(ptr noundef %12053) #12
  %12055 = call i32 @isatty(i32 noundef %12054) #12
  %12056 = icmp ne i32 %12055, 0
  br i1 %12056, label %12057, label %12074

12057:                                            ; preds = %12052
  %12058 = load i32, ptr %249, align 4, !tbaa !5
  %12059 = call ptr @__errno_location() #13
  store i32 %12058, ptr %12059, align 4, !tbaa !5
  %12060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12061 = load i32, ptr @test_count, align 4, !tbaa !5
  %12062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12063 = load i32, ptr %12062, align 4, !tbaa !5
  %12064 = call ptr @s2n_strerror(i32 noundef %12063, ptr noundef @.str.3)
  %12065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12066 = load i32, ptr %12065, align 4, !tbaa !5
  %12067 = call ptr @s2n_strerror_debug(i32 noundef %12066, ptr noundef @.str.3)
  %12068 = call ptr @__errno_location() #13
  %12069 = load i32, ptr %12068, align 4, !tbaa !5
  %12070 = call ptr @strerror(i32 noundef %12069) #12
  %12071 = call ptr @__errno_location() #13
  %12072 = load i32, ptr %12071, align 4, !tbaa !5
  %12073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12060, ptr noundef @.str, i32 noundef %12061, ptr noundef @.str.148, ptr noundef @.str.2, i32 noundef 615, ptr noundef %12064, ptr noundef %12067, ptr noundef %12070, i32 noundef %12072) #12
  br label %12091

12074:                                            ; preds = %12052, %12045
  %12075 = load i32, ptr %249, align 4, !tbaa !5
  %12076 = call ptr @__errno_location() #13
  store i32 %12075, ptr %12076, align 4, !tbaa !5
  %12077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12078 = load i32, ptr @test_count, align 4, !tbaa !5
  %12079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12080 = load i32, ptr %12079, align 4, !tbaa !5
  %12081 = call ptr @s2n_strerror(i32 noundef %12080, ptr noundef @.str.3)
  %12082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12083 = load i32, ptr %12082, align 4, !tbaa !5
  %12084 = call ptr @s2n_strerror_debug(i32 noundef %12083, ptr noundef @.str.3)
  %12085 = call ptr @__errno_location() #13
  %12086 = load i32, ptr %12085, align 4, !tbaa !5
  %12087 = call ptr @strerror(i32 noundef %12086) #12
  %12088 = call ptr @__errno_location() #13
  %12089 = load i32, ptr %12088, align 4, !tbaa !5
  %12090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12077, ptr noundef @.str.4, i32 noundef %12078, ptr noundef @.str.148, ptr noundef @.str.2, i32 noundef 615, ptr noundef %12081, ptr noundef %12084, ptr noundef %12087, i32 noundef %12089) #12
  br label %12091

12091:                                            ; preds = %12074, %12057
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #12
  br label %12092

12092:                                            ; preds = %12091
  br label %12093

12093:                                            ; preds = %12092
  call void @exit(i32 noundef 1) #14
  unreachable

12094:                                            ; No predecessors!
  br label %12095

12095:                                            ; preds = %12094
  br label %12096

12096:                                            ; preds = %12095, %12034
  br label %12097

12097:                                            ; preds = %12096
  br label %12098

12098:                                            ; preds = %12097
  br label %12099

12099:                                            ; preds = %12098
  br label %12100

12100:                                            ; preds = %12099
  br label %12101

12101:                                            ; preds = %12100
  %12102 = load i32, ptr @test_count, align 4, !tbaa !5
  %12103 = add nsw i32 %12102, 1
  store i32 %12103, ptr @test_count, align 4, !tbaa !5
  %12104 = load ptr, ptr %245, align 8, !tbaa !9
  %12105 = call i32 @s2n_server_hello_retry_recv(ptr noundef %12104)
  %12106 = icmp eq i32 %12105, -1
  br i1 %12106, label %12160, label %12107

12107:                                            ; preds = %12101
  br label %12108

12108:                                            ; preds = %12107
  br label %12109

12109:                                            ; preds = %12108
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #12
  %12110 = call ptr @__errno_location() #13
  %12111 = load i32, ptr %12110, align 4, !tbaa !5
  store i32 %12111, ptr %250, align 4, !tbaa !5
  %12112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12113 = call i32 @s2n_print_stacktrace(ptr noundef %12112)
  %12114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12115 = trunc i8 %12114 to i1
  br i1 %12115, label %12116, label %12138

12116:                                            ; preds = %12109
  %12117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12118 = call i32 @fileno(ptr noundef %12117) #12
  %12119 = call i32 @isatty(i32 noundef %12118) #12
  %12120 = icmp ne i32 %12119, 0
  br i1 %12120, label %12121, label %12138

12121:                                            ; preds = %12116
  %12122 = load i32, ptr %250, align 4, !tbaa !5
  %12123 = call ptr @__errno_location() #13
  store i32 %12122, ptr %12123, align 4, !tbaa !5
  %12124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12125 = load i32, ptr @test_count, align 4, !tbaa !5
  %12126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12127 = load i32, ptr %12126, align 4, !tbaa !5
  %12128 = call ptr @s2n_strerror(i32 noundef %12127, ptr noundef @.str.3)
  %12129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12130 = load i32, ptr %12129, align 4, !tbaa !5
  %12131 = call ptr @s2n_strerror_debug(i32 noundef %12130, ptr noundef @.str.3)
  %12132 = call ptr @__errno_location() #13
  %12133 = load i32, ptr %12132, align 4, !tbaa !5
  %12134 = call ptr @strerror(i32 noundef %12133) #12
  %12135 = call ptr @__errno_location() #13
  %12136 = load i32, ptr %12135, align 4, !tbaa !5
  %12137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12124, ptr noundef @.str, i32 noundef %12125, ptr noundef @.str.149, ptr noundef @.str.2, i32 noundef 617, ptr noundef %12128, ptr noundef %12131, ptr noundef %12134, i32 noundef %12136) #12
  br label %12155

12138:                                            ; preds = %12116, %12109
  %12139 = load i32, ptr %250, align 4, !tbaa !5
  %12140 = call ptr @__errno_location() #13
  store i32 %12139, ptr %12140, align 4, !tbaa !5
  %12141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12142 = load i32, ptr @test_count, align 4, !tbaa !5
  %12143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12144 = load i32, ptr %12143, align 4, !tbaa !5
  %12145 = call ptr @s2n_strerror(i32 noundef %12144, ptr noundef @.str.3)
  %12146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12147 = load i32, ptr %12146, align 4, !tbaa !5
  %12148 = call ptr @s2n_strerror_debug(i32 noundef %12147, ptr noundef @.str.3)
  %12149 = call ptr @__errno_location() #13
  %12150 = load i32, ptr %12149, align 4, !tbaa !5
  %12151 = call ptr @strerror(i32 noundef %12150) #12
  %12152 = call ptr @__errno_location() #13
  %12153 = load i32, ptr %12152, align 4, !tbaa !5
  %12154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12141, ptr noundef @.str.4, i32 noundef %12142, ptr noundef @.str.149, ptr noundef @.str.2, i32 noundef 617, ptr noundef %12145, ptr noundef %12148, ptr noundef %12151, i32 noundef %12153) #12
  br label %12155

12155:                                            ; preds = %12138, %12121
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #12
  br label %12156

12156:                                            ; preds = %12155
  br label %12157

12157:                                            ; preds = %12156
  call void @exit(i32 noundef 1) #14
  unreachable

12158:                                            ; No predecessors!
  br label %12159

12159:                                            ; preds = %12158
  br label %12160

12160:                                            ; preds = %12159, %12101
  br label %12161

12161:                                            ; preds = %12160
  br label %12162

12162:                                            ; preds = %12161
  br label %12163

12163:                                            ; preds = %12162
  %12164 = load i32, ptr @test_count, align 4, !tbaa !5
  %12165 = add nsw i32 %12164, 1
  store i32 %12165, ptr @test_count, align 4, !tbaa !5
  %12166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12167 = load i32, ptr %12166, align 4, !tbaa !5
  %12168 = icmp eq i32 %12167, 335544346
  br i1 %12168, label %12222, label %12169

12169:                                            ; preds = %12163
  br label %12170

12170:                                            ; preds = %12169
  br label %12171

12171:                                            ; preds = %12170
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #12
  %12172 = call ptr @__errno_location() #13
  %12173 = load i32, ptr %12172, align 4, !tbaa !5
  store i32 %12173, ptr %251, align 4, !tbaa !5
  %12174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12175 = call i32 @s2n_print_stacktrace(ptr noundef %12174)
  %12176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12177 = trunc i8 %12176 to i1
  br i1 %12177, label %12178, label %12200

12178:                                            ; preds = %12171
  %12179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12180 = call i32 @fileno(ptr noundef %12179) #12
  %12181 = call i32 @isatty(i32 noundef %12180) #12
  %12182 = icmp ne i32 %12181, 0
  br i1 %12182, label %12183, label %12200

12183:                                            ; preds = %12178
  %12184 = load i32, ptr %251, align 4, !tbaa !5
  %12185 = call ptr @__errno_location() #13
  store i32 %12184, ptr %12185, align 4, !tbaa !5
  %12186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12187 = load i32, ptr @test_count, align 4, !tbaa !5
  %12188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12189 = load i32, ptr %12188, align 4, !tbaa !5
  %12190 = call ptr @s2n_strerror(i32 noundef %12189, ptr noundef @.str.3)
  %12191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12192 = load i32, ptr %12191, align 4, !tbaa !5
  %12193 = call ptr @s2n_strerror_debug(i32 noundef %12192, ptr noundef @.str.3)
  %12194 = call ptr @__errno_location() #13
  %12195 = load i32, ptr %12194, align 4, !tbaa !5
  %12196 = call ptr @strerror(i32 noundef %12195) #12
  %12197 = call ptr @__errno_location() #13
  %12198 = load i32, ptr %12197, align 4, !tbaa !5
  %12199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12186, ptr noundef @.str, i32 noundef %12187, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 617, ptr noundef %12190, ptr noundef %12193, ptr noundef %12196, i32 noundef %12198) #12
  br label %12217

12200:                                            ; preds = %12178, %12171
  %12201 = load i32, ptr %251, align 4, !tbaa !5
  %12202 = call ptr @__errno_location() #13
  store i32 %12201, ptr %12202, align 4, !tbaa !5
  %12203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12204 = load i32, ptr @test_count, align 4, !tbaa !5
  %12205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12206 = load i32, ptr %12205, align 4, !tbaa !5
  %12207 = call ptr @s2n_strerror(i32 noundef %12206, ptr noundef @.str.3)
  %12208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12209 = load i32, ptr %12208, align 4, !tbaa !5
  %12210 = call ptr @s2n_strerror_debug(i32 noundef %12209, ptr noundef @.str.3)
  %12211 = call ptr @__errno_location() #13
  %12212 = load i32, ptr %12211, align 4, !tbaa !5
  %12213 = call ptr @strerror(i32 noundef %12212) #12
  %12214 = call ptr @__errno_location() #13
  %12215 = load i32, ptr %12214, align 4, !tbaa !5
  %12216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12203, ptr noundef @.str.4, i32 noundef %12204, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 617, ptr noundef %12207, ptr noundef %12210, ptr noundef %12213, i32 noundef %12215) #12
  br label %12217

12217:                                            ; preds = %12200, %12183
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #12
  br label %12218

12218:                                            ; preds = %12217
  br label %12219

12219:                                            ; preds = %12218
  call void @exit(i32 noundef 1) #14
  unreachable

12220:                                            ; No predecessors!
  br label %12221

12221:                                            ; preds = %12220
  br label %12222

12222:                                            ; preds = %12221, %12163
  br label %12223

12223:                                            ; preds = %12222
  br label %12224

12224:                                            ; preds = %12223
  br label %12225

12225:                                            ; preds = %12224
  %12226 = load i32, ptr @test_count, align 4, !tbaa !5
  %12227 = add nsw i32 %12226, 1
  store i32 %12227, ptr @test_count, align 4, !tbaa !5
  %12228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12229 = load i32, ptr %12228, align 4, !tbaa !5
  %12230 = call ptr @s2n_strerror_debug(i32 noundef %12229, ptr noundef @.str.3)
  %12231 = icmp eq ptr %12230, null
  br i1 %12231, label %12232, label %12285

12232:                                            ; preds = %12225
  br label %12233

12233:                                            ; preds = %12232
  br label %12234

12234:                                            ; preds = %12233
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #12
  %12235 = call ptr @__errno_location() #13
  %12236 = load i32, ptr %12235, align 4, !tbaa !5
  store i32 %12236, ptr %252, align 4, !tbaa !5
  %12237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12238 = call i32 @s2n_print_stacktrace(ptr noundef %12237)
  %12239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12240 = trunc i8 %12239 to i1
  br i1 %12240, label %12241, label %12263

12241:                                            ; preds = %12234
  %12242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12243 = call i32 @fileno(ptr noundef %12242) #12
  %12244 = call i32 @isatty(i32 noundef %12243) #12
  %12245 = icmp ne i32 %12244, 0
  br i1 %12245, label %12246, label %12263

12246:                                            ; preds = %12241
  %12247 = load i32, ptr %252, align 4, !tbaa !5
  %12248 = call ptr @__errno_location() #13
  store i32 %12247, ptr %12248, align 4, !tbaa !5
  %12249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12250 = load i32, ptr @test_count, align 4, !tbaa !5
  %12251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12252 = load i32, ptr %12251, align 4, !tbaa !5
  %12253 = call ptr @s2n_strerror(i32 noundef %12252, ptr noundef @.str.3)
  %12254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12255 = load i32, ptr %12254, align 4, !tbaa !5
  %12256 = call ptr @s2n_strerror_debug(i32 noundef %12255, ptr noundef @.str.3)
  %12257 = call ptr @__errno_location() #13
  %12258 = load i32, ptr %12257, align 4, !tbaa !5
  %12259 = call ptr @strerror(i32 noundef %12258) #12
  %12260 = call ptr @__errno_location() #13
  %12261 = load i32, ptr %12260, align 4, !tbaa !5
  %12262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12249, ptr noundef @.str, i32 noundef %12250, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 617, ptr noundef %12253, ptr noundef %12256, ptr noundef %12259, i32 noundef %12261) #12
  br label %12280

12263:                                            ; preds = %12241, %12234
  %12264 = load i32, ptr %252, align 4, !tbaa !5
  %12265 = call ptr @__errno_location() #13
  store i32 %12264, ptr %12265, align 4, !tbaa !5
  %12266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12267 = load i32, ptr @test_count, align 4, !tbaa !5
  %12268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12269 = load i32, ptr %12268, align 4, !tbaa !5
  %12270 = call ptr @s2n_strerror(i32 noundef %12269, ptr noundef @.str.3)
  %12271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12272 = load i32, ptr %12271, align 4, !tbaa !5
  %12273 = call ptr @s2n_strerror_debug(i32 noundef %12272, ptr noundef @.str.3)
  %12274 = call ptr @__errno_location() #13
  %12275 = load i32, ptr %12274, align 4, !tbaa !5
  %12276 = call ptr @strerror(i32 noundef %12275) #12
  %12277 = call ptr @__errno_location() #13
  %12278 = load i32, ptr %12277, align 4, !tbaa !5
  %12279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12266, ptr noundef @.str.4, i32 noundef %12267, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 617, ptr noundef %12270, ptr noundef %12273, ptr noundef %12276, i32 noundef %12278) #12
  br label %12280

12280:                                            ; preds = %12263, %12246
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #12
  br label %12281

12281:                                            ; preds = %12280
  br label %12282

12282:                                            ; preds = %12281
  call void @exit(i32 noundef 1) #14
  unreachable

12283:                                            ; No predecessors!
  br label %12284

12284:                                            ; preds = %12283
  br label %12285

12285:                                            ; preds = %12284, %12225
  br label %12286

12286:                                            ; preds = %12285
  br label %12287

12287:                                            ; preds = %12286
  br label %12288

12288:                                            ; preds = %12287
  br label %12289

12289:                                            ; preds = %12288
  br label %12290

12290:                                            ; preds = %12289
  %12291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12291, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12292 = call ptr @__errno_location() #13
  store i32 0, ptr %12292, align 4, !tbaa !5
  br label %12293

12293:                                            ; preds = %12290
  br label %12294

12294:                                            ; preds = %12293
  br label %12295

12295:                                            ; preds = %12294
  br label %12296

12296:                                            ; preds = %12295
  br label %12297

12297:                                            ; preds = %12296
  %12298 = load i32, ptr @test_count, align 4, !tbaa !5
  %12299 = add nsw i32 %12298, 1
  store i32 %12299, ptr @test_count, align 4, !tbaa !5
  %12300 = load ptr, ptr %245, align 8, !tbaa !9
  %12301 = call i32 @s2n_connection_free(ptr noundef %12300)
  %12302 = icmp eq i32 %12301, -1
  br i1 %12302, label %12303, label %12356

12303:                                            ; preds = %12297
  br label %12304

12304:                                            ; preds = %12303
  br label %12305

12305:                                            ; preds = %12304
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #12
  %12306 = call ptr @__errno_location() #13
  %12307 = load i32, ptr %12306, align 4, !tbaa !5
  store i32 %12307, ptr %253, align 4, !tbaa !5
  %12308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12309 = call i32 @s2n_print_stacktrace(ptr noundef %12308)
  %12310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12311 = trunc i8 %12310 to i1
  br i1 %12311, label %12312, label %12334

12312:                                            ; preds = %12305
  %12313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12314 = call i32 @fileno(ptr noundef %12313) #12
  %12315 = call i32 @isatty(i32 noundef %12314) #12
  %12316 = icmp ne i32 %12315, 0
  br i1 %12316, label %12317, label %12334

12317:                                            ; preds = %12312
  %12318 = load i32, ptr %253, align 4, !tbaa !5
  %12319 = call ptr @__errno_location() #13
  store i32 %12318, ptr %12319, align 4, !tbaa !5
  %12320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12321 = load i32, ptr @test_count, align 4, !tbaa !5
  %12322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12323 = load i32, ptr %12322, align 4, !tbaa !5
  %12324 = call ptr @s2n_strerror(i32 noundef %12323, ptr noundef @.str.3)
  %12325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12326 = load i32, ptr %12325, align 4, !tbaa !5
  %12327 = call ptr @s2n_strerror_debug(i32 noundef %12326, ptr noundef @.str.3)
  %12328 = call ptr @__errno_location() #13
  %12329 = load i32, ptr %12328, align 4, !tbaa !5
  %12330 = call ptr @strerror(i32 noundef %12329) #12
  %12331 = call ptr @__errno_location() #13
  %12332 = load i32, ptr %12331, align 4, !tbaa !5
  %12333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12320, ptr noundef @.str, i32 noundef %12321, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 619, ptr noundef %12324, ptr noundef %12327, ptr noundef %12330, i32 noundef %12332) #12
  br label %12351

12334:                                            ; preds = %12312, %12305
  %12335 = load i32, ptr %253, align 4, !tbaa !5
  %12336 = call ptr @__errno_location() #13
  store i32 %12335, ptr %12336, align 4, !tbaa !5
  %12337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12338 = load i32, ptr @test_count, align 4, !tbaa !5
  %12339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12340 = load i32, ptr %12339, align 4, !tbaa !5
  %12341 = call ptr @s2n_strerror(i32 noundef %12340, ptr noundef @.str.3)
  %12342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12343 = load i32, ptr %12342, align 4, !tbaa !5
  %12344 = call ptr @s2n_strerror_debug(i32 noundef %12343, ptr noundef @.str.3)
  %12345 = call ptr @__errno_location() #13
  %12346 = load i32, ptr %12345, align 4, !tbaa !5
  %12347 = call ptr @strerror(i32 noundef %12346) #12
  %12348 = call ptr @__errno_location() #13
  %12349 = load i32, ptr %12348, align 4, !tbaa !5
  %12350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12337, ptr noundef @.str.4, i32 noundef %12338, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 619, ptr noundef %12341, ptr noundef %12344, ptr noundef %12347, i32 noundef %12349) #12
  br label %12351

12351:                                            ; preds = %12334, %12317
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #12
  br label %12352

12352:                                            ; preds = %12351
  br label %12353

12353:                                            ; preds = %12352
  call void @exit(i32 noundef 1) #14
  unreachable

12354:                                            ; No predecessors!
  br label %12355

12355:                                            ; preds = %12354
  br label %12356

12356:                                            ; preds = %12355, %12297
  br label %12357

12357:                                            ; preds = %12356
  br label %12358

12358:                                            ; preds = %12357
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #12
  br label %12359

12359:                                            ; preds = %12358
  %12360 = load i32, ptr @test_count, align 4, !tbaa !5
  %12361 = add nsw i32 %12360, 1
  store i32 %12361, ptr @test_count, align 4, !tbaa !5
  %12362 = call i32 (...) @s2n_disable_tls13_in_test()
  %12363 = icmp eq i32 %12362, -1
  br i1 %12363, label %12364, label %12415

12364:                                            ; preds = %12359
  br label %12365

12365:                                            ; preds = %12364
  br label %12366

12366:                                            ; preds = %12365
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #12
  %12367 = call ptr @__errno_location() #13
  %12368 = load i32, ptr %12367, align 4, !tbaa !5
  store i32 %12368, ptr %254, align 4, !tbaa !5
  %12369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12370 = call i32 @s2n_print_stacktrace(ptr noundef %12369)
  %12371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12372 = trunc i8 %12371 to i1
  br i1 %12372, label %12373, label %12395

12373:                                            ; preds = %12366
  %12374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12375 = call i32 @fileno(ptr noundef %12374) #12
  %12376 = call i32 @isatty(i32 noundef %12375) #12
  %12377 = icmp ne i32 %12376, 0
  br i1 %12377, label %12378, label %12395

12378:                                            ; preds = %12373
  %12379 = load i32, ptr %254, align 4, !tbaa !5
  %12380 = call ptr @__errno_location() #13
  store i32 %12379, ptr %12380, align 4, !tbaa !5
  %12381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12382 = load i32, ptr @test_count, align 4, !tbaa !5
  %12383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12384 = load i32, ptr %12383, align 4, !tbaa !5
  %12385 = call ptr @s2n_strerror(i32 noundef %12384, ptr noundef @.str.3)
  %12386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12387 = load i32, ptr %12386, align 4, !tbaa !5
  %12388 = call ptr @s2n_strerror_debug(i32 noundef %12387, ptr noundef @.str.3)
  %12389 = call ptr @__errno_location() #13
  %12390 = load i32, ptr %12389, align 4, !tbaa !5
  %12391 = call ptr @strerror(i32 noundef %12390) #12
  %12392 = call ptr @__errno_location() #13
  %12393 = load i32, ptr %12392, align 4, !tbaa !5
  %12394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12381, ptr noundef @.str, i32 noundef %12382, ptr noundef @.str.150, ptr noundef @.str.2, i32 noundef 623, ptr noundef %12385, ptr noundef %12388, ptr noundef %12391, i32 noundef %12393) #12
  br label %12412

12395:                                            ; preds = %12373, %12366
  %12396 = load i32, ptr %254, align 4, !tbaa !5
  %12397 = call ptr @__errno_location() #13
  store i32 %12396, ptr %12397, align 4, !tbaa !5
  %12398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12399 = load i32, ptr @test_count, align 4, !tbaa !5
  %12400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12401 = load i32, ptr %12400, align 4, !tbaa !5
  %12402 = call ptr @s2n_strerror(i32 noundef %12401, ptr noundef @.str.3)
  %12403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12404 = load i32, ptr %12403, align 4, !tbaa !5
  %12405 = call ptr @s2n_strerror_debug(i32 noundef %12404, ptr noundef @.str.3)
  %12406 = call ptr @__errno_location() #13
  %12407 = load i32, ptr %12406, align 4, !tbaa !5
  %12408 = call ptr @strerror(i32 noundef %12407) #12
  %12409 = call ptr @__errno_location() #13
  %12410 = load i32, ptr %12409, align 4, !tbaa !5
  %12411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12398, ptr noundef @.str.4, i32 noundef %12399, ptr noundef @.str.150, ptr noundef @.str.2, i32 noundef 623, ptr noundef %12402, ptr noundef %12405, ptr noundef %12408, i32 noundef %12410) #12
  br label %12412

12412:                                            ; preds = %12395, %12378
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #12
  br label %12413

12413:                                            ; preds = %12412
  call void @exit(i32 noundef 1) #14
  unreachable

12414:                                            ; No predecessors!
  br label %12415

12415:                                            ; preds = %12414, %12359
  br label %12416

12416:                                            ; preds = %12415
  br label %12417

12417:                                            ; preds = %12416
  br label %12418

12418:                                            ; preds = %12417
  %12419 = call i32 @s2n_cleanup()
  %12420 = icmp eq i32 %12419, -1
  br i1 %12420, label %12421, label %12472

12421:                                            ; preds = %12418
  br label %12422

12422:                                            ; preds = %12421
  br label %12423

12423:                                            ; preds = %12422
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #12
  %12424 = call ptr @__errno_location() #13
  %12425 = load i32, ptr %12424, align 4, !tbaa !5
  store i32 %12425, ptr %255, align 4, !tbaa !5
  %12426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12427 = call i32 @s2n_print_stacktrace(ptr noundef %12426)
  %12428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12429 = trunc i8 %12428 to i1
  br i1 %12429, label %12430, label %12452

12430:                                            ; preds = %12423
  %12431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12432 = call i32 @fileno(ptr noundef %12431) #12
  %12433 = call i32 @isatty(i32 noundef %12432) #12
  %12434 = icmp ne i32 %12433, 0
  br i1 %12434, label %12435, label %12452

12435:                                            ; preds = %12430
  %12436 = load i32, ptr %255, align 4, !tbaa !5
  %12437 = call ptr @__errno_location() #13
  store i32 %12436, ptr %12437, align 4, !tbaa !5
  %12438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12439 = load i32, ptr @test_count, align 4, !tbaa !5
  %12440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12441 = load i32, ptr %12440, align 4, !tbaa !5
  %12442 = call ptr @s2n_strerror(i32 noundef %12441, ptr noundef @.str.3)
  %12443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12444 = load i32, ptr %12443, align 4, !tbaa !5
  %12445 = call ptr @s2n_strerror_debug(i32 noundef %12444, ptr noundef @.str.3)
  %12446 = call ptr @__errno_location() #13
  %12447 = load i32, ptr %12446, align 4, !tbaa !5
  %12448 = call ptr @strerror(i32 noundef %12447) #12
  %12449 = call ptr @__errno_location() #13
  %12450 = load i32, ptr %12449, align 4, !tbaa !5
  %12451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12438, ptr noundef @.str, i32 noundef %12439, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 625, ptr noundef %12442, ptr noundef %12445, ptr noundef %12448, i32 noundef %12450) #12
  br label %12469

12452:                                            ; preds = %12430, %12423
  %12453 = load i32, ptr %255, align 4, !tbaa !5
  %12454 = call ptr @__errno_location() #13
  store i32 %12453, ptr %12454, align 4, !tbaa !5
  %12455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12456 = load i32, ptr @test_count, align 4, !tbaa !5
  %12457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12458 = load i32, ptr %12457, align 4, !tbaa !5
  %12459 = call ptr @s2n_strerror(i32 noundef %12458, ptr noundef @.str.3)
  %12460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12461 = load i32, ptr %12460, align 4, !tbaa !5
  %12462 = call ptr @s2n_strerror_debug(i32 noundef %12461, ptr noundef @.str.3)
  %12463 = call ptr @__errno_location() #13
  %12464 = load i32, ptr %12463, align 4, !tbaa !5
  %12465 = call ptr @strerror(i32 noundef %12464) #12
  %12466 = call ptr @__errno_location() #13
  %12467 = load i32, ptr %12466, align 4, !tbaa !5
  %12468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12455, ptr noundef @.str.4, i32 noundef %12456, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 625, ptr noundef %12459, ptr noundef %12462, ptr noundef %12465, i32 noundef %12467) #12
  br label %12469

12469:                                            ; preds = %12452, %12435
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #12
  br label %12470

12470:                                            ; preds = %12469
  call void @exit(i32 noundef 1) #14
  unreachable

12471:                                            ; No predecessors!
  br label %12472

12472:                                            ; preds = %12471, %12418
  br label %12473

12473:                                            ; preds = %12472
  br label %12474

12474:                                            ; preds = %12473
  br label %12475

12475:                                            ; preds = %12474
  %12476 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %12477 = icmp eq i32 %12476, -1
  br i1 %12477, label %12478, label %12529

12478:                                            ; preds = %12475
  br label %12479

12479:                                            ; preds = %12478
  br label %12480

12480:                                            ; preds = %12479
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #12
  %12481 = call ptr @__errno_location() #13
  %12482 = load i32, ptr %12481, align 4, !tbaa !5
  store i32 %12482, ptr %256, align 4, !tbaa !5
  %12483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12484 = call i32 @s2n_print_stacktrace(ptr noundef %12483)
  %12485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12486 = trunc i8 %12485 to i1
  br i1 %12486, label %12487, label %12509

12487:                                            ; preds = %12480
  %12488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12489 = call i32 @fileno(ptr noundef %12488) #12
  %12490 = call i32 @isatty(i32 noundef %12489) #12
  %12491 = icmp ne i32 %12490, 0
  br i1 %12491, label %12492, label %12509

12492:                                            ; preds = %12487
  %12493 = load i32, ptr %256, align 4, !tbaa !5
  %12494 = call ptr @__errno_location() #13
  store i32 %12493, ptr %12494, align 4, !tbaa !5
  %12495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12496 = load i32, ptr @test_count, align 4, !tbaa !5
  %12497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12498 = load i32, ptr %12497, align 4, !tbaa !5
  %12499 = call ptr @s2n_strerror(i32 noundef %12498, ptr noundef @.str.3)
  %12500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12501 = load i32, ptr %12500, align 4, !tbaa !5
  %12502 = call ptr @s2n_strerror_debug(i32 noundef %12501, ptr noundef @.str.3)
  %12503 = call ptr @__errno_location() #13
  %12504 = load i32, ptr %12503, align 4, !tbaa !5
  %12505 = call ptr @strerror(i32 noundef %12504) #12
  %12506 = call ptr @__errno_location() #13
  %12507 = load i32, ptr %12506, align 4, !tbaa !5
  %12508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12495, ptr noundef @.str, i32 noundef %12496, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 625, ptr noundef %12499, ptr noundef %12502, ptr noundef %12505, i32 noundef %12507) #12
  br label %12526

12509:                                            ; preds = %12487, %12480
  %12510 = load i32, ptr %256, align 4, !tbaa !5
  %12511 = call ptr @__errno_location() #13
  store i32 %12510, ptr %12511, align 4, !tbaa !5
  %12512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12513 = load i32, ptr @test_count, align 4, !tbaa !5
  %12514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12515 = load i32, ptr %12514, align 4, !tbaa !5
  %12516 = call ptr @s2n_strerror(i32 noundef %12515, ptr noundef @.str.3)
  %12517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12518 = load i32, ptr %12517, align 4, !tbaa !5
  %12519 = call ptr @s2n_strerror_debug(i32 noundef %12518, ptr noundef @.str.3)
  %12520 = call ptr @__errno_location() #13
  %12521 = load i32, ptr %12520, align 4, !tbaa !5
  %12522 = call ptr @strerror(i32 noundef %12521) #12
  %12523 = call ptr @__errno_location() #13
  %12524 = load i32, ptr %12523, align 4, !tbaa !5
  %12525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12512, ptr noundef @.str.4, i32 noundef %12513, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 625, ptr noundef %12516, ptr noundef %12519, ptr noundef %12522, i32 noundef %12524) #12
  br label %12526

12526:                                            ; preds = %12509, %12492
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #12
  br label %12527

12527:                                            ; preds = %12526
  call void @exit(i32 noundef 1) #14
  unreachable

12528:                                            ; No predecessors!
  br label %12529

12529:                                            ; preds = %12528, %12475
  br label %12530

12530:                                            ; preds = %12529
  %12531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12532 = trunc i8 %12531 to i1
  br i1 %12532, label %12533, label %12549

12533:                                            ; preds = %12530
  %12534 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12535 = call i32 @fileno(ptr noundef %12534) #12
  %12536 = call i32 @isatty(i32 noundef %12535) #12
  %12537 = icmp ne i32 %12536, 0
  br i1 %12537, label %12538, label %12549

12538:                                            ; preds = %12533
  %12539 = load i32, ptr @test_count, align 4, !tbaa !5
  %12540 = icmp ne i32 %12539, 0
  br i1 %12540, label %12541, label %12545

12541:                                            ; preds = %12538
  %12542 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12543 = load i32, ptr @test_count, align 4, !tbaa !5
  %12544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12542, ptr noundef @.str.38, i32 noundef %12543) #12
  br label %12548

12545:                                            ; preds = %12538
  %12546 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12546, ptr noundef @.str.39) #12
  br label %12548

12548:                                            ; preds = %12545, %12541
  br label %12560

12549:                                            ; preds = %12533, %12530
  %12550 = load i32, ptr @test_count, align 4, !tbaa !5
  %12551 = icmp ne i32 %12550, 0
  br i1 %12551, label %12552, label %12556

12552:                                            ; preds = %12549
  %12553 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12554 = load i32, ptr @test_count, align 4, !tbaa !5
  %12555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12553, ptr noundef @.str.40, i32 noundef %12554) #12
  br label %12559

12556:                                            ; preds = %12549
  %12557 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12557, ptr noundef @.str.41) #12
  br label %12559

12559:                                            ; preds = %12556, %12552
  br label %12560

12560:                                            ; preds = %12559, %12548
  store i32 0, ptr %3, align 4
  br label %12562

12561:                                            ; No predecessors!
  br label %12562

12562:                                            ; preds = %12561, %12560, %6311, %5055, %580
  %12563 = load i32, ptr %3, align 4
  ret i32 %12563

12564:                                            ; preds = %6311, %5055
  unreachable
}

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_cleanup() #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) #2

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef) #2

declare i32 @s2n_set_connection_hello_retry_flags(ptr noundef) #2

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

declare i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_extensions_server_supported_versions_size(ptr noundef) #2

declare i32 @s2n_extensions_server_key_share_send_size(ptr noundef) #2

declare zeroext i1 @s2n_is_hello_retry_message(ptr noundef) #2

declare i32 @s2n_server_hello_retry_send(ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

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

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #2

declare i32 @s2n_server_hello_recv(ptr noundef) #2

declare i32 @s2n_connection_allow_response_extension(ptr noundef, i16 noundef zeroext) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.expect.i64(i64, i64) #11

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) #2

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

declare i32 @s2n_calculate_stacktrace() #2

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

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

declare i32 @s2n_set_hello_retry_required(ptr noundef) #2

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

declare i32 @s2n_free(ptr noundef) #2

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

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

declare i32 @s2n_tls13_keys_free(ptr noundef) #2

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

declare i32 @s2n_hash_free(ptr noundef) #2

declare i32 @s2n_hash_new(ptr noundef) #2

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

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

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

declare i32 @s2n_server_hello_retry_recreate_transcript(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @client_hello_detect_duplicate_calls(ptr noundef, ptr noundef) #6

declare i32 @s2n_client_hello_send(ptr noundef) #2

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

declare i32 @s2n_client_hello_recv(ptr noundef) #2

declare zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef) #2

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

declare ptr @s2n_connection_get_client_hello(ptr noundef) #2

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

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

declare i32 @s2n_server_hello_retry_recv(ptr noundef) #2

declare ptr @EVP_PKEY_new() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nocallback nofree nosync nounwind willreturn memory(none) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { noreturn nounwind }
attributes #15 = { 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, !7, i64 216}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 232}
!43 = !{!44, !10, i64 0}
!44 = !{!"s2n_crypto_parameters", !10, i64 0, !45, i64 8, !45, i64 16, !46, i64 24, !46, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!45 = !{!"s2n_session_key", !10, i64 0}
!46 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !47, i64 16, !47, i64 72, !47, i64 128, !47, i64 184, !7, i64 240, !7, i64 368}
!47 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!48 = !{!16, !10, i64 656}
!49 = !{!16, !10, i64 704}
!50 = !{!32, !6, i64 28}
!51 = !{!32, !6, i64 24}
!52 = !{!16, !10, i64 664}
!53 = !{!54, !31, i64 0}
!54 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!55 = !{!56, !10, i64 0}
!56 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!57 = !{!56, !10, i64 8}
!58 = !{!31, !31, i64 0}
!59 = !{!16, !7, i64 219}
!60 = !{!61, !7, i64 8}
!61 = !{!"s2n_tls13_keys", !6, i64 0, !6, i64 4, !7, i64 8, !25, i64 16, !25, i64 40, !7, i64 64, !7, i64 112, !46, i64 160}
!62 = !{!7, !7, i64 0}
!63 = !{!61, !6, i64 4}
!64 = !{!25, !6, i64 8}
!65 = !{!25, !10, i64 0}
!66 = !{!16, !10, i64 16}
!67 = !{!16, !6, i64 2044}
!68 = !{!16, !6, i64 2040}
!69 = !{!70, !6, i64 0}
!70 = !{!"client_hello_context", !6, i64 0, !6, i64 4, !12, i64 8}
!71 = !{!16, !6, i64 2176}
!72 = !{!16, !6, i64 2172}
!73 = !{!16, !7, i64 220}
!74 = !{!75, !10, i64 40}
!75 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!76 = !{!77, !10, i64 8}
!77 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!78 = !{!16, !10, i64 712}
!79 = !{!16, !6, i64 4088}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_debug_info = type { ptr, ptr }
%struct.client_hello_context = type { i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%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.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [86 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [92 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.28 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [56 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [86 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_all_supported_curves_list = external local_unnamed_addr constant [0 x ptr], align 8
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [86 x i8], align 1
@hello_retry_req_random = external global [32 x i8], align 16
@.str.56 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [79 x i8], align 1
@s2n_server_key_share_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.81 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [111 x i8], align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@.str.84 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [393 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [77 x i8], align 1
@__const.main.client_hello_ctx = external hidden unnamed_addr constant %struct.client_hello_context, align 4
@.str.133 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.147 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [56 x i8], align 1

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #1

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #4

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #3

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #6

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local i32 @hello_retry_client_hello_cb_test() local_unnamed_addr #7

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

declare i32 @s2n_config_set_client_hello_cb(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_client_hello_cb_mode(ptr noundef, i32 noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr 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 #7 {
  %3 = alloca [32 x i8], align 16
  %4 = alloca [32 x i8], align 16
  %5 = alloca i16, align 2
  %6 = alloca i16, align 2
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca %struct.s2n_blob, align 8
  %9 = alloca %struct.s2n_blob, align 8
  %10 = alloca %struct.s2n_tls13_keys, align 8
  %11 = alloca %struct.s2n_blob, align 8
  %12 = alloca %struct.s2n_hash_state, align 8
  %13 = alloca [64 x i8], align 16
  %14 = alloca %struct.s2n_hash_state, align 8
  %15 = alloca [64 x i8], align 16
  %16 = alloca ptr, align 8
  %17 = alloca %struct.client_hello_context, align 4
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_test_io_pair, align 4
  %20 = alloca %struct.client_hello_context, align 4
  %21 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %22 = load ptr, ptr @stdout, align 8, !tbaa !9
  %23 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2) #13
  %24 = load ptr, ptr @stdout, align 8, !tbaa !9
  %25 = tail call i32 @fflush(ptr noundef %24)
  %26 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %27 = icmp eq i32 %26, -1
  br i1 %27, label %28, label %52

28:                                               ; preds = %2
  %29 = tail call ptr @__errno_location() #14
  %30 = load i32, ptr %29, align 4, !tbaa !5
  %31 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32 = tail call i32 @s2n_print_stacktrace(ptr noundef %31) #13
  %33 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34 = trunc nuw i8 %33 to i1
  br i1 %34, label %35, label %39

35:                                               ; preds = %28
  %36 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37 = tail call i32 @fileno(ptr noundef %36) #13
  %38 = tail call i32 @isatty(i32 noundef %37) #13
  %.not849 = icmp eq i32 %38, 0
  br i1 %.not849, label %39, label %40

39:                                               ; preds = %35, %28
  br label %40

40:                                               ; preds = %35, %39
  %.str.4.sink = phi ptr [ @.str.4, %39 ], [ @.str, %35 ]
  store i32 %30, ptr %29, align 4, !tbaa !5
  %41 = load ptr, ptr @stderr, align 8, !tbaa !9
  %42 = load i32, ptr @test_count, align 4, !tbaa !5
  %43 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %44 = load i32, ptr %43, align 4, !tbaa !5
  %45 = tail call ptr @s2n_strerror(i32 noundef %44, ptr noundef nonnull @.str.3) #13
  %46 = load i32, ptr %43, align 4, !tbaa !5
  %47 = tail call ptr @s2n_strerror_debug(i32 noundef %46, ptr noundef nonnull @.str.3) #13
  %48 = load i32, ptr %29, align 4, !tbaa !5
  %49 = tail call ptr @strerror(i32 noundef %48) #13
  %50 = load i32, ptr %29, align 4, !tbaa !5
  %51 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %41, ptr noundef nonnull %.str.4.sink, i32 noundef %42, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 150, ptr noundef %45, ptr noundef %47, ptr noundef %49, i32 noundef %50) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

52:                                               ; preds = %2
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = add nsw i32 %53, 1
  store i32 %54, ptr @test_count, align 4, !tbaa !5
  %55 = tail call i32 @s2n_enable_atexit() #13
  %56 = icmp eq i32 %55, -1
  br i1 %56, label %57, label %81

57:                                               ; preds = %52
  %58 = tail call ptr @__errno_location() #14
  %59 = load i32, ptr %58, align 4, !tbaa !5
  %60 = load ptr, ptr @stderr, align 8, !tbaa !9
  %61 = tail call i32 @s2n_print_stacktrace(ptr noundef %60) #13
  %62 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %63 = trunc nuw i8 %62 to i1
  br i1 %63, label %64, label %68

64:                                               ; preds = %57
  %65 = load ptr, ptr @stderr, align 8, !tbaa !9
  %66 = tail call i32 @fileno(ptr noundef %65) #13
  %67 = tail call i32 @isatty(i32 noundef %66) #13
  %.not848 = icmp eq i32 %67, 0
  br i1 %.not848, label %68, label %69

68:                                               ; preds = %64, %57
  br label %69

69:                                               ; preds = %64, %68
  %.str.4.sink873 = phi ptr [ @.str.4, %68 ], [ @.str, %64 ]
  store i32 %59, ptr %58, align 4, !tbaa !5
  %70 = load ptr, ptr @stderr, align 8, !tbaa !9
  %71 = load i32, ptr @test_count, align 4, !tbaa !5
  %72 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %73 = load i32, ptr %72, align 4, !tbaa !5
  %74 = tail call ptr @s2n_strerror(i32 noundef %73, ptr noundef nonnull @.str.3) #13
  %75 = load i32, ptr %72, align 4, !tbaa !5
  %76 = tail call ptr @s2n_strerror_debug(i32 noundef %75, ptr noundef nonnull @.str.3) #13
  %77 = load i32, ptr %58, align 4, !tbaa !5
  %78 = tail call ptr @strerror(i32 noundef %77) #13
  %79 = load i32, ptr %58, align 4, !tbaa !5
  %80 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %70, ptr noundef nonnull %.str.4.sink873, i32 noundef %71, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 150, ptr noundef %74, ptr noundef %76, ptr noundef %78, i32 noundef %79) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

81:                                               ; preds = %52
  %82 = tail call i32 @s2n_init() #13
  %83 = icmp eq i32 %82, -1
  br i1 %83, label %84, label %108

84:                                               ; preds = %81
  %85 = tail call ptr @__errno_location() #14
  %86 = load i32, ptr %85, align 4, !tbaa !5
  %87 = load ptr, ptr @stderr, align 8, !tbaa !9
  %88 = tail call i32 @s2n_print_stacktrace(ptr noundef %87) #13
  %89 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %90 = trunc nuw i8 %89 to i1
  br i1 %90, label %91, label %95

91:                                               ; preds = %84
  %92 = load ptr, ptr @stderr, align 8, !tbaa !9
  %93 = tail call i32 @fileno(ptr noundef %92) #13
  %94 = tail call i32 @isatty(i32 noundef %93) #13
  %.not847 = icmp eq i32 %94, 0
  br i1 %.not847, label %95, label %96

95:                                               ; preds = %91, %84
  br label %96

96:                                               ; preds = %91, %95
  %.str.4.sink884 = phi ptr [ @.str.4, %95 ], [ @.str, %91 ]
  store i32 %86, ptr %85, align 4, !tbaa !5
  %97 = load ptr, ptr @stderr, align 8, !tbaa !9
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = tail call ptr @s2n_strerror(i32 noundef %100, ptr noundef nonnull @.str.3) #13
  %102 = load i32, ptr %99, align 4, !tbaa !5
  %103 = tail call ptr @s2n_strerror_debug(i32 noundef %102, ptr noundef nonnull @.str.3) #13
  %104 = load i32, ptr %85, align 4, !tbaa !5
  %105 = tail call ptr @strerror(i32 noundef %104) #13
  %106 = load i32, ptr %85, align 4, !tbaa !5
  %107 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %97, ptr noundef nonnull %.str.4.sink884, i32 noundef %98, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 150, ptr noundef %101, ptr noundef %103, ptr noundef %105, i32 noundef %106) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

108:                                              ; preds = %81
  %109 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #13
  br i1 %109, label %185, label %110

110:                                              ; preds = %108
  %111 = tail call i32 @s2n_cleanup() #13
  %112 = icmp eq i32 %111, -1
  br i1 %112, label %113, label %137

113:                                              ; preds = %110
  %114 = tail call ptr @__errno_location() #14
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %117 = tail call i32 @s2n_print_stacktrace(ptr noundef %116) #13
  %118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %119 = trunc nuw i8 %118 to i1
  br i1 %119, label %120, label %124

120:                                              ; preds = %113
  %121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %122 = tail call i32 @fileno(ptr noundef %121) #13
  %123 = tail call i32 @isatty(i32 noundef %122) #13
  %.not648 = icmp eq i32 %123, 0
  br i1 %.not648, label %124, label %125

124:                                              ; preds = %120, %113
  br label %125

125:                                              ; preds = %120, %124
  %.str.4.sink895 = phi ptr [ @.str.4, %124 ], [ @.str, %120 ]
  store i32 %115, ptr %114, align 4, !tbaa !5
  %126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %127 = load i32, ptr @test_count, align 4, !tbaa !5
  %128 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = tail call ptr @s2n_strerror(i32 noundef %129, ptr noundef nonnull @.str.3) #13
  %131 = load i32, ptr %128, align 4, !tbaa !5
  %132 = tail call ptr @s2n_strerror_debug(i32 noundef %131, ptr noundef nonnull @.str.3) #13
  %133 = load i32, ptr %114, align 4, !tbaa !5
  %134 = tail call ptr @strerror(i32 noundef %133) #13
  %135 = load i32, ptr %114, align 4, !tbaa !5
  %136 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %126, ptr noundef nonnull %.str.4.sink895, i32 noundef %127, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 153, ptr noundef %130, ptr noundef %132, ptr noundef %134, i32 noundef %135) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

137:                                              ; preds = %110
  %138 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %139 = icmp eq i32 %138, -1
  br i1 %139, label %140, label %164

140:                                              ; preds = %137
  %141 = tail call ptr @__errno_location() #14
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = tail call i32 @s2n_print_stacktrace(ptr noundef %143) #13
  %145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %146 = trunc nuw i8 %145 to i1
  br i1 %146, label %147, label %151

147:                                              ; preds = %140
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = tail call i32 @fileno(ptr noundef %148) #13
  %150 = tail call i32 @isatty(i32 noundef %149) #13
  %.not647 = icmp eq i32 %150, 0
  br i1 %.not647, label %151, label %152

151:                                              ; preds = %147, %140
  br label %152

152:                                              ; preds = %147, %151
  %.str.4.sink906 = phi ptr [ @.str.4, %151 ], [ @.str, %147 ]
  store i32 %142, ptr %141, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = tail call ptr @s2n_strerror(i32 noundef %156, ptr noundef nonnull @.str.3) #13
  %158 = load i32, ptr %155, align 4, !tbaa !5
  %159 = tail call ptr @s2n_strerror_debug(i32 noundef %158, ptr noundef nonnull @.str.3) #13
  %160 = load i32, ptr %141, align 4, !tbaa !5
  %161 = tail call ptr @strerror(i32 noundef %160) #13
  %162 = load i32, ptr %141, align 4, !tbaa !5
  %163 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %153, ptr noundef nonnull %.str.4.sink906, i32 noundef %154, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 153, ptr noundef %157, ptr noundef %159, ptr noundef %161, i32 noundef %162) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

164:                                              ; preds = %137
  %165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %166 = trunc nuw i8 %165 to i1
  br i1 %166, label %167, label %178

167:                                              ; preds = %164
  %168 = load ptr, ptr @stdout, align 8, !tbaa !9
  %169 = tail call i32 @fileno(ptr noundef %168) #13
  %170 = tail call i32 @isatty(i32 noundef %169) #13
  %.not = icmp eq i32 %170, 0
  br i1 %.not, label %178, label %171

171:                                              ; preds = %167
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not646 = icmp eq i32 %172, 0
  %173 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not646, label %176, label %174

174:                                              ; preds = %171
  %175 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef nonnull @.str.38, i32 noundef %172) #13
  br label %.thread855

176:                                              ; preds = %171
  %177 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef nonnull @.str.39) #13
  br label %.thread855

178:                                              ; preds = %167, %164
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not645 = icmp eq i32 %179, 0
  %180 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not645, label %183, label %181

181:                                              ; preds = %178
  %182 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %180, ptr noundef nonnull @.str.40, i32 noundef %179) #13
  br label %.thread855

183:                                              ; preds = %178
  %184 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %180, ptr noundef nonnull @.str.41) #13
  br label %.thread855

185:                                              ; preds = %108
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr @test_count, align 4, !tbaa !5
  %188 = tail call i32 (...) @s2n_enable_tls13_in_test() #13
  %189 = icmp eq i32 %188, -1
  br i1 %189, label %190, label %214

190:                                              ; preds = %185
  %191 = tail call ptr @__errno_location() #14
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = tail call i32 @s2n_print_stacktrace(ptr noundef %193) #13
  %195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %196 = trunc nuw i8 %195 to i1
  br i1 %196, label %197, label %201

197:                                              ; preds = %190
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = tail call i32 @fileno(ptr noundef %198) #13
  %200 = tail call i32 @isatty(i32 noundef %199) #13
  %.not846 = icmp eq i32 %200, 0
  br i1 %.not846, label %201, label %202

201:                                              ; preds = %197, %190
  br label %202

202:                                              ; preds = %197, %201
  %.str.4.sink917 = phi ptr [ @.str.4, %201 ], [ @.str, %197 ]
  store i32 %192, ptr %191, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = tail call ptr @s2n_strerror(i32 noundef %206, ptr noundef nonnull @.str.3) #13
  %208 = load i32, ptr %205, align 4, !tbaa !5
  %209 = tail call ptr @s2n_strerror_debug(i32 noundef %208, ptr noundef nonnull @.str.3) #13
  %210 = load i32, ptr %191, align 4, !tbaa !5
  %211 = tail call ptr @strerror(i32 noundef %210) #13
  %212 = load i32, ptr %191, align 4, !tbaa !5
  %213 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %203, ptr noundef nonnull %.str.4.sink917, i32 noundef %204, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 156, ptr noundef %207, ptr noundef %209, ptr noundef %211, i32 noundef %212) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

214:                                              ; preds = %185
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr @test_count, align 4, !tbaa !5
  %217 = tail call ptr @s2n_config_new() #13
  %218 = icmp eq ptr %217, null
  br i1 %218, label %219, label %243

219:                                              ; preds = %214
  %220 = tail call ptr @__errno_location() #14
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = tail call i32 @s2n_print_stacktrace(ptr noundef %222) #13
  %224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %225 = trunc nuw i8 %224 to i1
  br i1 %225, label %226, label %230

226:                                              ; preds = %219
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = tail call i32 @fileno(ptr noundef %227) #13
  %229 = tail call i32 @isatty(i32 noundef %228) #13
  %.not845 = icmp eq i32 %229, 0
  br i1 %.not845, label %230, label %231

230:                                              ; preds = %226, %219
  br label %231

231:                                              ; preds = %226, %230
  %.str.4.sink928 = phi ptr [ @.str.4, %230 ], [ @.str, %226 ]
  store i32 %221, ptr %220, align 4, !tbaa !5
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = load i32, ptr @test_count, align 4, !tbaa !5
  %234 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = tail call ptr @s2n_strerror(i32 noundef %235, ptr noundef nonnull @.str.3) #13
  %237 = load i32, ptr %234, align 4, !tbaa !5
  %238 = tail call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef nonnull @.str.3) #13
  %239 = load i32, ptr %220, align 4, !tbaa !5
  %240 = tail call ptr @strerror(i32 noundef %239) #13
  %241 = load i32, ptr %220, align 4, !tbaa !5
  %242 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %232, ptr noundef nonnull %.str.4.sink928, i32 noundef %233, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 163, ptr noundef %236, ptr noundef %238, ptr noundef %240, i32 noundef %241) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

243:                                              ; preds = %214
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr @test_count, align 4, !tbaa !5
  %246 = tail call ptr @s2n_connection_new(i32 noundef 0) #13
  %247 = icmp eq ptr %246, null
  br i1 %247, label %248, label %272

248:                                              ; preds = %243
  %249 = tail call ptr @__errno_location() #14
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = tail call i32 @s2n_print_stacktrace(ptr noundef %251) #13
  %253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %254 = trunc nuw i8 %253 to i1
  br i1 %254, label %255, label %259

255:                                              ; preds = %248
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = tail call i32 @fileno(ptr noundef %256) #13
  %258 = tail call i32 @isatty(i32 noundef %257) #13
  %.not844 = icmp eq i32 %258, 0
  br i1 %.not844, label %259, label %260

259:                                              ; preds = %255, %248
  br label %260

260:                                              ; preds = %255, %259
  %.str.4.sink939 = phi ptr [ @.str.4, %259 ], [ @.str, %255 ]
  store i32 %250, ptr %249, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = tail call ptr @s2n_strerror(i32 noundef %264, ptr noundef nonnull @.str.3) #13
  %266 = load i32, ptr %263, align 4, !tbaa !5
  %267 = tail call ptr @s2n_strerror_debug(i32 noundef %266, ptr noundef nonnull @.str.3) #13
  %268 = load i32, ptr %249, align 4, !tbaa !5
  %269 = tail call ptr @strerror(i32 noundef %268) #13
  %270 = load i32, ptr %249, align 4, !tbaa !5
  %271 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %261, ptr noundef nonnull %.str.4.sink939, i32 noundef %262, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 164, ptr noundef %265, ptr noundef %267, ptr noundef %269, i32 noundef %270) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

272:                                              ; preds = %243
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = add nsw i32 %273, 1
  store i32 %274, ptr @test_count, align 4, !tbaa !5
  %275 = tail call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %246) #13
  %276 = icmp eq i32 %275, -1
  br i1 %276, label %277, label %301

277:                                              ; preds = %272
  %278 = tail call ptr @__errno_location() #14
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = tail call i32 @s2n_print_stacktrace(ptr noundef %280) #13
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %284, label %288

284:                                              ; preds = %277
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = tail call i32 @fileno(ptr noundef %285) #13
  %287 = tail call i32 @isatty(i32 noundef %286) #13
  %.not843 = icmp eq i32 %287, 0
  br i1 %.not843, label %288, label %289

288:                                              ; preds = %284, %277
  br label %289

289:                                              ; preds = %284, %288
  %.str.4.sink950 = phi ptr [ @.str.4, %288 ], [ @.str, %284 ]
  store i32 %279, ptr %278, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = tail call ptr @s2n_strerror(i32 noundef %293, ptr noundef nonnull @.str.3) #13
  %295 = load i32, ptr %292, align 4, !tbaa !5
  %296 = tail call ptr @s2n_strerror_debug(i32 noundef %295, ptr noundef nonnull @.str.3) #13
  %297 = load i32, ptr %278, align 4, !tbaa !5
  %298 = tail call ptr @strerror(i32 noundef %297) #13
  %299 = load i32, ptr %278, align 4, !tbaa !5
  %300 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef nonnull %.str.4.sink950, i32 noundef %291, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 165, ptr noundef %294, ptr noundef %296, ptr noundef %298, i32 noundef %299) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

301:                                              ; preds = %272
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr @test_count, align 4, !tbaa !5
  %304 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %246, ptr noundef nonnull %217) #13
  %305 = icmp eq i32 %304, -1
  br i1 %305, label %306, label %330

306:                                              ; preds = %301
  %307 = tail call ptr @__errno_location() #14
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = tail call i32 @s2n_print_stacktrace(ptr noundef %309) #13
  %311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %312 = trunc nuw i8 %311 to i1
  br i1 %312, label %313, label %317

313:                                              ; preds = %306
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = tail call i32 @fileno(ptr noundef %314) #13
  %316 = tail call i32 @isatty(i32 noundef %315) #13
  %.not842 = icmp eq i32 %316, 0
  br i1 %.not842, label %317, label %318

317:                                              ; preds = %313, %306
  br label %318

318:                                              ; preds = %313, %317
  %.str.4.sink961 = phi ptr [ @.str.4, %317 ], [ @.str, %313 ]
  store i32 %308, ptr %307, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = load i32, ptr @test_count, align 4, !tbaa !5
  %321 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = tail call ptr @s2n_strerror(i32 noundef %322, ptr noundef nonnull @.str.3) #13
  %324 = load i32, ptr %321, align 4, !tbaa !5
  %325 = tail call ptr @s2n_strerror_debug(i32 noundef %324, ptr noundef nonnull @.str.3) #13
  %326 = load i32, ptr %307, align 4, !tbaa !5
  %327 = tail call ptr @strerror(i32 noundef %326) #13
  %328 = load i32, ptr %307, align 4, !tbaa !5
  %329 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %319, ptr noundef nonnull %.str.4.sink961, i32 noundef %320, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 166, ptr noundef %323, ptr noundef %325, ptr noundef %327, i32 noundef %328) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

330:                                              ; preds = %301
  %331 = getelementptr inbounds i8, ptr %246, i64 216
  %332 = load i8, ptr %331, align 8, !tbaa !15
  %333 = zext i8 %332 to i32
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr @test_count, align 4, !tbaa !5
  %336 = tail call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %246, i8 noundef zeroext 34) #13
  %337 = icmp eq i32 %336, -1
  br i1 %337, label %338, label %362

338:                                              ; preds = %330
  %339 = tail call ptr @__errno_location() #14
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = tail call i32 @s2n_print_stacktrace(ptr noundef %341) #13
  %343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %344 = trunc nuw i8 %343 to i1
  br i1 %344, label %345, label %349

345:                                              ; preds = %338
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = tail call i32 @fileno(ptr noundef %346) #13
  %348 = tail call i32 @isatty(i32 noundef %347) #13
  %.not841 = icmp eq i32 %348, 0
  br i1 %.not841, label %349, label %350

349:                                              ; preds = %345, %338
  br label %350

350:                                              ; preds = %345, %349
  %.str.4.sink972 = phi ptr [ @.str.4, %349 ], [ @.str, %345 ]
  store i32 %340, ptr %339, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = tail call ptr @s2n_strerror(i32 noundef %354, ptr noundef nonnull @.str.3) #13
  %356 = load i32, ptr %353, align 4, !tbaa !5
  %357 = tail call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef nonnull @.str.3) #13
  %358 = load i32, ptr %339, align 4, !tbaa !5
  %359 = tail call ptr @strerror(i32 noundef %358) #13
  %360 = load i32, ptr %339, align 4, !tbaa !5
  %361 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull %.str.4.sink972, i32 noundef %352, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 177, ptr noundef %355, ptr noundef %357, ptr noundef %359, i32 noundef %360) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

362:                                              ; preds = %330
  %363 = getelementptr inbounds i8, ptr %246, i64 232
  %364 = load ptr, ptr %363, align 8, !tbaa !42
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %364, align 8, !tbaa !43
  %365 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %366 = getelementptr inbounds i8, ptr %246, i64 656
  store ptr %365, ptr %366, align 8, !tbaa !48
  %367 = getelementptr inbounds i8, ptr %246, i64 704
  store ptr %365, ptr %367, align 8, !tbaa !49
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = tail call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %367) #13
  %371 = icmp eq i32 %370, -1
  br i1 %371, label %372, label %396

372:                                              ; preds = %362
  %373 = tail call ptr @__errno_location() #14
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = tail call i32 @s2n_print_stacktrace(ptr noundef %375) #13
  %377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %378 = trunc nuw i8 %377 to i1
  br i1 %378, label %379, label %383

379:                                              ; preds = %372
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = tail call i32 @fileno(ptr noundef %380) #13
  %382 = tail call i32 @isatty(i32 noundef %381) #13
  %.not840 = icmp eq i32 %382, 0
  br i1 %.not840, label %383, label %384

383:                                              ; preds = %379, %372
  br label %384

384:                                              ; preds = %379, %383
  %.str.4.sink983 = phi ptr [ @.str.4, %383 ], [ @.str, %379 ]
  store i32 %374, ptr %373, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = tail call ptr @s2n_strerror(i32 noundef %388, ptr noundef nonnull @.str.3) #13
  %390 = load i32, ptr %387, align 4, !tbaa !5
  %391 = tail call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef nonnull @.str.3) #13
  %392 = load i32, ptr %373, align 4, !tbaa !5
  %393 = tail call ptr @strerror(i32 noundef %392) #13
  %394 = load i32, ptr %373, align 4, !tbaa !5
  %395 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef nonnull %.str.4.sink983, i32 noundef %386, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 181, ptr noundef %389, ptr noundef %391, ptr noundef %393, i32 noundef %394) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

396:                                              ; preds = %362
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = add nsw i32 %397, 1
  store i32 %398, ptr @test_count, align 4, !tbaa !5
  %399 = tail call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %246) #13
  %400 = icmp eq i32 %399, -1
  br i1 %400, label %401, label %425

401:                                              ; preds = %396
  %402 = tail call ptr @__errno_location() #14
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = tail call i32 @s2n_print_stacktrace(ptr noundef %404) #13
  %406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %407 = trunc nuw i8 %406 to i1
  br i1 %407, label %408, label %412

408:                                              ; preds = %401
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = tail call i32 @fileno(ptr noundef %409) #13
  %411 = tail call i32 @isatty(i32 noundef %410) #13
  %.not839 = icmp eq i32 %411, 0
  br i1 %.not839, label %412, label %413

412:                                              ; preds = %408, %401
  br label %413

413:                                              ; preds = %408, %412
  %.str.4.sink994 = phi ptr [ @.str.4, %412 ], [ @.str, %408 ]
  store i32 %403, ptr %402, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = tail call ptr @s2n_strerror(i32 noundef %417, ptr noundef nonnull @.str.3) #13
  %419 = load i32, ptr %416, align 4, !tbaa !5
  %420 = tail call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef nonnull @.str.3) #13
  %421 = load i32, ptr %402, align 4, !tbaa !5
  %422 = tail call ptr @strerror(i32 noundef %421) #13
  %423 = load i32, ptr %402, align 4, !tbaa !5
  %424 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef nonnull %.str.4.sink994, i32 noundef %415, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 183, ptr noundef %418, ptr noundef %420, ptr noundef %422, i32 noundef %423) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

425:                                              ; preds = %396
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr @test_count, align 4, !tbaa !5
  %428 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %246, i8 noundef zeroext 34) #13
  %429 = tail call zeroext i1 @s2n_result_is_ok(i32 %428)
  br i1 %429, label %454, label %430

430:                                              ; preds = %425
  %431 = tail call ptr @__errno_location() #14
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = tail call i32 @s2n_print_stacktrace(ptr noundef %433) #13
  %435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %436 = trunc nuw i8 %435 to i1
  br i1 %436, label %437, label %441

437:                                              ; preds = %430
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = tail call i32 @fileno(ptr noundef %438) #13
  %440 = tail call i32 @isatty(i32 noundef %439) #13
  %.not649 = icmp eq i32 %440, 0
  br i1 %.not649, label %441, label %442

441:                                              ; preds = %437, %430
  br label %442

442:                                              ; preds = %437, %441
  %.str.4.sink1005 = phi ptr [ @.str.4, %441 ], [ @.str, %437 ]
  store i32 %432, ptr %431, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = tail call ptr @s2n_strerror(i32 noundef %446, ptr noundef nonnull @.str.3) #13
  %448 = load i32, ptr %445, align 4, !tbaa !5
  %449 = tail call ptr @s2n_strerror_debug(i32 noundef %448, ptr noundef nonnull @.str.3) #13
  %450 = load i32, ptr %431, align 4, !tbaa !5
  %451 = tail call ptr @strerror(i32 noundef %450) #13
  %452 = load i32, ptr %431, align 4, !tbaa !5
  %453 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef nonnull %.str.4.sink1005, i32 noundef %444, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 184, ptr noundef %447, ptr noundef %449, ptr noundef %451, i32 noundef %452) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

454:                                              ; preds = %425
  %455 = tail call i32 @s2n_extensions_server_supported_versions_size(ptr noundef nonnull %246) #13
  %456 = tail call i32 @s2n_extensions_server_key_share_send_size(ptr noundef nonnull %246) #13
  %457 = add nuw nsw i32 %333, 40
  %458 = add i32 %457, %455
  %459 = add i32 %458, %456
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr @test_count, align 4, !tbaa !5
  %462 = tail call zeroext i1 @s2n_is_hello_retry_message(ptr noundef nonnull %246) #13
  br i1 %462, label %487, label %463

463:                                              ; preds = %454
  %464 = tail call ptr @__errno_location() #14
  %465 = load i32, ptr %464, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = tail call i32 @s2n_print_stacktrace(ptr noundef %466) #13
  %468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %469 = trunc nuw i8 %468 to i1
  br i1 %469, label %470, label %474

470:                                              ; preds = %463
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = tail call i32 @fileno(ptr noundef %471) #13
  %473 = tail call i32 @isatty(i32 noundef %472) #13
  %.not650 = icmp eq i32 %473, 0
  br i1 %.not650, label %474, label %475

474:                                              ; preds = %470, %463
  br label %475

475:                                              ; preds = %470, %474
  %.str.4.sink1016 = phi ptr [ @.str.4, %474 ], [ @.str, %470 ]
  store i32 %465, ptr %464, align 4, !tbaa !5
  %476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = tail call ptr @s2n_strerror(i32 noundef %479, ptr noundef nonnull @.str.3) #13
  %481 = load i32, ptr %478, align 4, !tbaa !5
  %482 = tail call ptr @s2n_strerror_debug(i32 noundef %481, ptr noundef nonnull @.str.3) #13
  %483 = load i32, ptr %464, align 4, !tbaa !5
  %484 = tail call ptr @strerror(i32 noundef %483) #13
  %485 = load i32, ptr %464, align 4, !tbaa !5
  %486 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %476, ptr noundef nonnull %.str.4.sink1016, i32 noundef %477, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 191, ptr noundef %480, ptr noundef %482, ptr noundef %484, i32 noundef %485) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

487:                                              ; preds = %454
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = add nsw i32 %488, 1
  store i32 %489, ptr @test_count, align 4, !tbaa !5
  %490 = tail call i32 @s2n_server_hello_retry_send(ptr noundef nonnull %246) #13
  %491 = icmp eq i32 %490, -1
  br i1 %491, label %492, label %516

492:                                              ; preds = %487
  %493 = tail call ptr @__errno_location() #14
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = tail call i32 @s2n_print_stacktrace(ptr noundef %495) #13
  %497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %498 = trunc nuw i8 %497 to i1
  br i1 %498, label %499, label %503

499:                                              ; preds = %492
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = tail call i32 @fileno(ptr noundef %500) #13
  %502 = tail call i32 @isatty(i32 noundef %501) #13
  %.not838 = icmp eq i32 %502, 0
  br i1 %.not838, label %503, label %504

503:                                              ; preds = %499, %492
  br label %504

504:                                              ; preds = %499, %503
  %.str.4.sink1027 = phi ptr [ @.str.4, %503 ], [ @.str, %499 ]
  store i32 %494, ptr %493, align 4, !tbaa !5
  %505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = tail call ptr @s2n_strerror(i32 noundef %508, ptr noundef nonnull @.str.3) #13
  %510 = load i32, ptr %507, align 4, !tbaa !5
  %511 = tail call ptr @s2n_strerror_debug(i32 noundef %510, ptr noundef nonnull @.str.3) #13
  %512 = load i32, ptr %493, align 4, !tbaa !5
  %513 = tail call ptr @strerror(i32 noundef %512) #13
  %514 = load i32, ptr %493, align 4, !tbaa !5
  %515 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %505, ptr noundef nonnull %.str.4.sink1027, i32 noundef %506, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 192, ptr noundef %509, ptr noundef %511, ptr noundef %513, i32 noundef %514) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

516:                                              ; preds = %487
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = getelementptr inbounds i8, ptr %246, i64 2044
  %520 = load i32, ptr %519, align 4, !tbaa !50
  %521 = getelementptr inbounds i8, ptr %246, i64 2040
  %522 = load i32, ptr %521, align 8, !tbaa !51
  %523 = sub i32 %520, %522
  %524 = icmp eq i32 %523, %459
  br i1 %524, label %549, label %525

525:                                              ; preds = %516
  %526 = tail call ptr @__errno_location() #14
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = tail call i32 @s2n_print_stacktrace(ptr noundef %528) #13
  %530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %531 = trunc nuw i8 %530 to i1
  br i1 %531, label %532, label %536

532:                                              ; preds = %525
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = tail call i32 @fileno(ptr noundef %533) #13
  %535 = tail call i32 @isatty(i32 noundef %534) #13
  %.not651 = icmp eq i32 %535, 0
  br i1 %.not651, label %536, label %537

536:                                              ; preds = %532, %525
  br label %537

537:                                              ; preds = %532, %536
  %.str.4.sink1038 = phi ptr [ @.str.4, %536 ], [ @.str, %532 ]
  store i32 %527, ptr %526, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = tail call ptr @s2n_strerror(i32 noundef %541, ptr noundef nonnull @.str.3) #13
  %543 = load i32, ptr %540, align 4, !tbaa !5
  %544 = tail call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef nonnull @.str.3) #13
  %545 = load i32, ptr %526, align 4, !tbaa !5
  %546 = tail call ptr @strerror(i32 noundef %545) #13
  %547 = load i32, ptr %526, align 4, !tbaa !5
  %548 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef nonnull %.str.4.sink1038, i32 noundef %539, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 194, ptr noundef %542, ptr noundef %544, ptr noundef %546, i32 noundef %547) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

549:                                              ; preds = %516
  %550 = add nsw i32 %517, 2
  store i32 %550, ptr @test_count, align 4, !tbaa !5
  %551 = load ptr, ptr %366, align 8, !tbaa !48
  %552 = icmp eq ptr %551, null
  br i1 %552, label %553, label %577

553:                                              ; preds = %549
  %554 = tail call ptr @__errno_location() #14
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = tail call i32 @s2n_print_stacktrace(ptr noundef %556) #13
  %558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %559 = trunc nuw i8 %558 to i1
  br i1 %559, label %560, label %564

560:                                              ; preds = %553
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = tail call i32 @fileno(ptr noundef %561) #13
  %563 = tail call i32 @isatty(i32 noundef %562) #13
  %.not837 = icmp eq i32 %563, 0
  br i1 %.not837, label %564, label %565

564:                                              ; preds = %560, %553
  br label %565

565:                                              ; preds = %560, %564
  %.str.4.sink1049 = phi ptr [ @.str.4, %564 ], [ @.str, %560 ]
  store i32 %555, ptr %554, align 4, !tbaa !5
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = tail call ptr @s2n_strerror(i32 noundef %569, ptr noundef nonnull @.str.3) #13
  %571 = load i32, ptr %568, align 4, !tbaa !5
  %572 = tail call ptr @s2n_strerror_debug(i32 noundef %571, ptr noundef nonnull @.str.3) #13
  %573 = load i32, ptr %554, align 4, !tbaa !5
  %574 = tail call ptr @strerror(i32 noundef %573) #13
  %575 = load i32, ptr %554, align 4, !tbaa !5
  %576 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef nonnull %.str.4.sink1049, i32 noundef %567, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 196, ptr noundef %570, ptr noundef %572, ptr noundef %574, i32 noundef %575) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

577:                                              ; preds = %549
  %578 = add nsw i32 %517, 3
  store i32 %578, ptr @test_count, align 4, !tbaa !5
  %579 = getelementptr inbounds i8, ptr %246, i64 664
  %580 = load ptr, ptr %579, align 8, !tbaa !52
  %581 = icmp eq ptr %580, null
  br i1 %581, label %606, label %582

582:                                              ; preds = %577
  %583 = tail call ptr @__errno_location() #14
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = tail call i32 @s2n_print_stacktrace(ptr noundef %585) #13
  %587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %588 = trunc nuw i8 %587 to i1
  br i1 %588, label %589, label %593

589:                                              ; preds = %582
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = tail call i32 @fileno(ptr noundef %590) #13
  %592 = tail call i32 @isatty(i32 noundef %591) #13
  %.not652 = icmp eq i32 %592, 0
  br i1 %.not652, label %593, label %594

593:                                              ; preds = %589, %582
  br label %594

594:                                              ; preds = %589, %593
  %.str.4.sink1060 = phi ptr [ @.str.4, %593 ], [ @.str, %589 ]
  store i32 %584, ptr %583, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = tail call ptr @s2n_strerror(i32 noundef %598, ptr noundef nonnull @.str.3) #13
  %600 = load i32, ptr %597, align 4, !tbaa !5
  %601 = tail call ptr @s2n_strerror_debug(i32 noundef %600, ptr noundef nonnull @.str.3) #13
  %602 = load i32, ptr %583, align 4, !tbaa !5
  %603 = tail call ptr @strerror(i32 noundef %602) #13
  %604 = load i32, ptr %583, align 4, !tbaa !5
  %605 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %595, ptr noundef nonnull %.str.4.sink1060, i32 noundef %596, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 197, ptr noundef %599, ptr noundef %601, ptr noundef %603, i32 noundef %604) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

606:                                              ; preds = %577
  %607 = add nsw i32 %517, 4
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = getelementptr inbounds i8, ptr %246, i64 1650
  %bcmp = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %608, ptr noundef nonnull dereferenceable(32) @hello_retry_req_random, i64 32)
  %609 = icmp eq i32 %bcmp, 0
  br i1 %609, label %634, label %610

610:                                              ; preds = %606
  %611 = tail call ptr @__errno_location() #14
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = tail call i32 @s2n_print_stacktrace(ptr noundef %613) #13
  %615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %616 = trunc nuw i8 %615 to i1
  br i1 %616, label %617, label %621

617:                                              ; preds = %610
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = tail call i32 @fileno(ptr noundef %618) #13
  %620 = tail call i32 @isatty(i32 noundef %619) #13
  %.not653 = icmp eq i32 %620, 0
  br i1 %.not653, label %621, label %622

621:                                              ; preds = %617, %610
  br label %622

622:                                              ; preds = %617, %621
  %.str.4.sink1071 = phi ptr [ @.str.4, %621 ], [ @.str, %617 ]
  store i32 %612, ptr %611, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = tail call ptr @s2n_strerror(i32 noundef %626, ptr noundef nonnull @.str.3) #13
  %628 = load i32, ptr %625, align 4, !tbaa !5
  %629 = tail call ptr @s2n_strerror_debug(i32 noundef %628, ptr noundef nonnull @.str.3) #13
  %630 = load i32, ptr %611, align 4, !tbaa !5
  %631 = tail call ptr @strerror(i32 noundef %630) #13
  %632 = load i32, ptr %611, align 4, !tbaa !5
  %633 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef nonnull %.str.4.sink1071, i32 noundef %624, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 198, ptr noundef %627, ptr noundef %629, ptr noundef %631, i32 noundef %632) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

634:                                              ; preds = %606
  %635 = add nsw i32 %517, 5
  store i32 %635, ptr @test_count, align 4, !tbaa !5
  %636 = tail call i32 @s2n_config_free(ptr noundef nonnull %217) #13
  %637 = icmp eq i32 %636, -1
  br i1 %637, label %638, label %662

638:                                              ; preds = %634
  %639 = tail call ptr @__errno_location() #14
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = tail call i32 @s2n_print_stacktrace(ptr noundef %641) #13
  %643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %644 = trunc nuw i8 %643 to i1
  br i1 %644, label %645, label %649

645:                                              ; preds = %638
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = tail call i32 @fileno(ptr noundef %646) #13
  %648 = tail call i32 @isatty(i32 noundef %647) #13
  %.not836 = icmp eq i32 %648, 0
  br i1 %.not836, label %649, label %650

649:                                              ; preds = %645, %638
  br label %650

650:                                              ; preds = %645, %649
  %.str.4.sink1082 = phi ptr [ @.str.4, %649 ], [ @.str, %645 ]
  store i32 %640, ptr %639, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = load i32, ptr @test_count, align 4, !tbaa !5
  %653 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = tail call ptr @s2n_strerror(i32 noundef %654, ptr noundef nonnull @.str.3) #13
  %656 = load i32, ptr %653, align 4, !tbaa !5
  %657 = tail call ptr @s2n_strerror_debug(i32 noundef %656, ptr noundef nonnull @.str.3) #13
  %658 = load i32, ptr %639, align 4, !tbaa !5
  %659 = tail call ptr @strerror(i32 noundef %658) #13
  %660 = load i32, ptr %639, align 4, !tbaa !5
  %661 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %651, ptr noundef nonnull %.str.4.sink1082, i32 noundef %652, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 200, ptr noundef %655, ptr noundef %657, ptr noundef %659, i32 noundef %660) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

662:                                              ; preds = %634
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = add nsw i32 %663, 1
  store i32 %664, ptr @test_count, align 4, !tbaa !5
  %665 = tail call i32 @s2n_connection_free(ptr noundef nonnull %246) #13
  %666 = icmp eq i32 %665, -1
  br i1 %666, label %667, label %691

667:                                              ; preds = %662
  %668 = tail call ptr @__errno_location() #14
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = tail call i32 @s2n_print_stacktrace(ptr noundef %670) #13
  %672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %673 = trunc nuw i8 %672 to i1
  br i1 %673, label %674, label %678

674:                                              ; preds = %667
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = tail call i32 @fileno(ptr noundef %675) #13
  %677 = tail call i32 @isatty(i32 noundef %676) #13
  %.not835 = icmp eq i32 %677, 0
  br i1 %.not835, label %678, label %679

678:                                              ; preds = %674, %667
  br label %679

679:                                              ; preds = %674, %678
  %.str.4.sink1093 = phi ptr [ @.str.4, %678 ], [ @.str, %674 ]
  store i32 %669, ptr %668, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = tail call ptr @s2n_strerror(i32 noundef %683, ptr noundef nonnull @.str.3) #13
  %685 = load i32, ptr %682, align 4, !tbaa !5
  %686 = tail call ptr @s2n_strerror_debug(i32 noundef %685, ptr noundef nonnull @.str.3) #13
  %687 = load i32, ptr %668, align 4, !tbaa !5
  %688 = tail call ptr @strerror(i32 noundef %687) #13
  %689 = load i32, ptr %668, align 4, !tbaa !5
  %690 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef nonnull %.str.4.sink1093, i32 noundef %681, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 201, ptr noundef %684, ptr noundef %686, ptr noundef %688, i32 noundef %689) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

691:                                              ; preds = %662
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr @test_count, align 4, !tbaa !5
  %694 = tail call ptr @s2n_config_new() #13
  %695 = icmp eq ptr %694, null
  br i1 %695, label %696, label %720

696:                                              ; preds = %691
  %697 = tail call ptr @__errno_location() #14
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = tail call i32 @s2n_print_stacktrace(ptr noundef %699) #13
  %701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %707

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

707:                                              ; preds = %703, %696
  br label %708

708:                                              ; preds = %703, %707
  %.str.4.sink1104 = phi ptr [ @.str.4, %707 ], [ @.str, %703 ]
  store i32 %698, ptr %697, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = tail call ptr @s2n_strerror(i32 noundef %712, ptr noundef nonnull @.str.3) #13
  %714 = load i32, ptr %711, align 4, !tbaa !5
  %715 = tail call ptr @s2n_strerror_debug(i32 noundef %714, ptr noundef nonnull @.str.3) #13
  %716 = load i32, ptr %697, align 4, !tbaa !5
  %717 = tail call ptr @strerror(i32 noundef %716) #13
  %718 = load i32, ptr %697, align 4, !tbaa !5
  %719 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %709, ptr noundef nonnull %.str.4.sink1104, i32 noundef %710, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 209, ptr noundef %713, ptr noundef %715, ptr noundef %717, i32 noundef %718) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

720:                                              ; preds = %691
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr @test_count, align 4, !tbaa !5
  %723 = tail call ptr @s2n_connection_new(i32 noundef 0) #13
  %724 = icmp eq ptr %723, null
  br i1 %724, label %725, label %749

725:                                              ; preds = %720
  %726 = tail call ptr @__errno_location() #14
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = tail call i32 @s2n_print_stacktrace(ptr noundef %728) #13
  %730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %731 = trunc nuw i8 %730 to i1
  br i1 %731, label %732, label %736

732:                                              ; preds = %725
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = tail call i32 @fileno(ptr noundef %733) #13
  %735 = tail call i32 @isatty(i32 noundef %734) #13
  %.not833 = icmp eq i32 %735, 0
  br i1 %.not833, label %736, label %737

736:                                              ; preds = %732, %725
  br label %737

737:                                              ; preds = %732, %736
  %.str.4.sink1115 = phi ptr [ @.str.4, %736 ], [ @.str, %732 ]
  store i32 %727, ptr %726, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = load i32, ptr @test_count, align 4, !tbaa !5
  %740 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = tail call ptr @s2n_strerror(i32 noundef %741, ptr noundef nonnull @.str.3) #13
  %743 = load i32, ptr %740, align 4, !tbaa !5
  %744 = tail call ptr @s2n_strerror_debug(i32 noundef %743, ptr noundef nonnull @.str.3) #13
  %745 = load i32, ptr %726, align 4, !tbaa !5
  %746 = tail call ptr @strerror(i32 noundef %745) #13
  %747 = load i32, ptr %726, align 4, !tbaa !5
  %748 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %738, ptr noundef nonnull %.str.4.sink1115, i32 noundef %739, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 210, ptr noundef %742, ptr noundef %744, ptr noundef %746, i32 noundef %747) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

749:                                              ; preds = %720
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %723, ptr noundef nonnull %694) #13
  %753 = icmp eq i32 %752, -1
  br i1 %753, label %754, label %778

754:                                              ; preds = %749
  %755 = tail call ptr @__errno_location() #14
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = tail call i32 @s2n_print_stacktrace(ptr noundef %757) #13
  %759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %760 = trunc nuw i8 %759 to i1
  br i1 %760, label %761, label %765

761:                                              ; preds = %754
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = tail call i32 @fileno(ptr noundef %762) #13
  %764 = tail call i32 @isatty(i32 noundef %763) #13
  %.not832 = icmp eq i32 %764, 0
  br i1 %.not832, label %765, label %766

765:                                              ; preds = %761, %754
  br label %766

766:                                              ; preds = %761, %765
  %.str.4.sink1126 = phi ptr [ @.str.4, %765 ], [ @.str, %761 ]
  store i32 %756, ptr %755, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = tail call ptr @s2n_strerror(i32 noundef %770, ptr noundef nonnull @.str.3) #13
  %772 = load i32, ptr %769, align 4, !tbaa !5
  %773 = tail call ptr @s2n_strerror_debug(i32 noundef %772, ptr noundef nonnull @.str.3) #13
  %774 = load i32, ptr %755, align 4, !tbaa !5
  %775 = tail call ptr @strerror(i32 noundef %774) #13
  %776 = load i32, ptr %755, align 4, !tbaa !5
  %777 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %767, ptr noundef nonnull %.str.4.sink1126, i32 noundef %768, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.2, i32 noundef 211, ptr noundef %771, ptr noundef %773, ptr noundef %775, i32 noundef %776) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

778:                                              ; preds = %749
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = add nsw i32 %779, 1
  store i32 %780, ptr @test_count, align 4, !tbaa !5
  %781 = tail call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %723, i8 noundef zeroext 34) #13
  %782 = icmp eq i32 %781, -1
  br i1 %782, label %783, label %807

783:                                              ; preds = %778
  %784 = tail call ptr @__errno_location() #14
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = tail call i32 @s2n_print_stacktrace(ptr noundef %786) #13
  %788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %789 = trunc nuw i8 %788 to i1
  br i1 %789, label %790, label %794

790:                                              ; preds = %783
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = tail call i32 @fileno(ptr noundef %791) #13
  %793 = tail call i32 @isatty(i32 noundef %792) #13
  %.not831 = icmp eq i32 %793, 0
  br i1 %.not831, label %794, label %795

794:                                              ; preds = %790, %783
  br label %795

795:                                              ; preds = %790, %794
  %.str.4.sink1137 = phi ptr [ @.str.4, %794 ], [ @.str, %790 ]
  store i32 %785, ptr %784, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = load i32, ptr @test_count, align 4, !tbaa !5
  %798 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = tail call ptr @s2n_strerror(i32 noundef %799, ptr noundef nonnull @.str.3) #13
  %801 = load i32, ptr %798, align 4, !tbaa !5
  %802 = tail call ptr @s2n_strerror_debug(i32 noundef %801, ptr noundef nonnull @.str.3) #13
  %803 = load i32, ptr %784, align 4, !tbaa !5
  %804 = tail call ptr @strerror(i32 noundef %803) #13
  %805 = load i32, ptr %784, align 4, !tbaa !5
  %806 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %796, ptr noundef nonnull %.str.4.sink1137, i32 noundef %797, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 213, ptr noundef %800, ptr noundef %802, ptr noundef %804, i32 noundef %805) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

807:                                              ; preds = %778
  %808 = getelementptr inbounds i8, ptr %723, i64 232
  %809 = load ptr, ptr %808, align 8, !tbaa !42
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %809, align 8, !tbaa !43
  %810 = getelementptr inbounds i8, ptr %723, i64 656
  store ptr %365, ptr %810, align 8, !tbaa !48
  %811 = getelementptr inbounds i8, ptr %723, i64 704
  store ptr %365, ptr %811, align 8, !tbaa !49
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr @test_count, align 4, !tbaa !5
  %814 = tail call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %811) #13
  %815 = icmp eq i32 %814, -1
  br i1 %815, label %816, label %840

816:                                              ; preds = %807
  %817 = tail call ptr @__errno_location() #14
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = tail call i32 @s2n_print_stacktrace(ptr noundef %819) #13
  %821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %822 = trunc nuw i8 %821 to i1
  br i1 %822, label %823, label %827

823:                                              ; preds = %816
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = tail call i32 @fileno(ptr noundef %824) #13
  %826 = tail call i32 @isatty(i32 noundef %825) #13
  %.not830 = icmp eq i32 %826, 0
  br i1 %.not830, label %827, label %828

827:                                              ; preds = %823, %816
  br label %828

828:                                              ; preds = %823, %827
  %.str.4.sink1148 = phi ptr [ @.str.4, %827 ], [ @.str, %823 ]
  store i32 %818, ptr %817, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = tail call ptr @s2n_strerror(i32 noundef %832, ptr noundef nonnull @.str.3) #13
  %834 = load i32, ptr %831, align 4, !tbaa !5
  %835 = tail call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef nonnull @.str.3) #13
  %836 = load i32, ptr %817, align 4, !tbaa !5
  %837 = tail call ptr @strerror(i32 noundef %836) #13
  %838 = load i32, ptr %817, align 4, !tbaa !5
  %839 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef nonnull %.str.4.sink1148, i32 noundef %830, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 217, ptr noundef %833, ptr noundef %835, ptr noundef %837, i32 noundef %838) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

840:                                              ; preds = %807
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr @test_count, align 4, !tbaa !5
  %843 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %723, i8 noundef zeroext 34) #13
  %844 = tail call zeroext i1 @s2n_result_is_ok(i32 %843)
  br i1 %844, label %869, label %845

845:                                              ; preds = %840
  %846 = tail call ptr @__errno_location() #14
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = tail call i32 @s2n_print_stacktrace(ptr noundef %848) #13
  %850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %851 = trunc nuw i8 %850 to i1
  br i1 %851, label %852, label %856

852:                                              ; preds = %845
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = tail call i32 @fileno(ptr noundef %853) #13
  %855 = tail call i32 @isatty(i32 noundef %854) #13
  %.not654 = icmp eq i32 %855, 0
  br i1 %.not654, label %856, label %857

856:                                              ; preds = %852, %845
  br label %857

857:                                              ; preds = %852, %856
  %.str.4.sink1159 = phi ptr [ @.str.4, %856 ], [ @.str, %852 ]
  store i32 %847, ptr %846, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = tail call ptr @s2n_strerror(i32 noundef %861, ptr noundef nonnull @.str.3) #13
  %863 = load i32, ptr %860, align 4, !tbaa !5
  %864 = tail call ptr @s2n_strerror_debug(i32 noundef %863, ptr noundef nonnull @.str.3) #13
  %865 = load i32, ptr %846, align 4, !tbaa !5
  %866 = tail call ptr @strerror(i32 noundef %865) #13
  %867 = load i32, ptr %846, align 4, !tbaa !5
  %868 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %858, ptr noundef nonnull %.str.4.sink1159, i32 noundef %859, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.2, i32 noundef 219, ptr noundef %862, ptr noundef %864, ptr noundef %866, i32 noundef %867) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

869:                                              ; preds = %840
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = add nsw i32 %870, 1
  store i32 %871, ptr @test_count, align 4, !tbaa !5
  %872 = tail call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %723) #13
  %873 = icmp eq i32 %872, -1
  br i1 %873, label %874, label %898

874:                                              ; preds = %869
  %875 = tail call ptr @__errno_location() #14
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = tail call i32 @s2n_print_stacktrace(ptr noundef %877) #13
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %885

881:                                              ; preds = %874
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = tail call i32 @fileno(ptr noundef %882) #13
  %884 = tail call i32 @isatty(i32 noundef %883) #13
  %.not829 = icmp eq i32 %884, 0
  br i1 %.not829, label %885, label %886

885:                                              ; preds = %881, %874
  br label %886

886:                                              ; preds = %881, %885
  %.str.4.sink1170 = phi ptr [ @.str.4, %885 ], [ @.str, %881 ]
  store i32 %876, ptr %875, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = tail call ptr @s2n_strerror(i32 noundef %890, ptr noundef nonnull @.str.3) #13
  %892 = load i32, ptr %889, align 4, !tbaa !5
  %893 = tail call ptr @s2n_strerror_debug(i32 noundef %892, ptr noundef nonnull @.str.3) #13
  %894 = load i32, ptr %875, align 4, !tbaa !5
  %895 = tail call ptr @strerror(i32 noundef %894) #13
  %896 = load i32, ptr %875, align 4, !tbaa !5
  %897 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef nonnull %.str.4.sink1170, i32 noundef %888, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 220, ptr noundef %891, ptr noundef %893, ptr noundef %895, i32 noundef %896) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

898:                                              ; preds = %869
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = add nsw i32 %899, 1
  store i32 %900, ptr @test_count, align 4, !tbaa !5
  %901 = tail call zeroext i1 @s2n_is_hello_retry_message(ptr noundef nonnull %723) #13
  br i1 %901, label %926, label %902

902:                                              ; preds = %898
  %903 = tail call ptr @__errno_location() #14
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = tail call i32 @s2n_print_stacktrace(ptr noundef %905) #13
  %907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %908 = trunc nuw i8 %907 to i1
  br i1 %908, label %909, label %913

909:                                              ; preds = %902
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = tail call i32 @fileno(ptr noundef %910) #13
  %912 = tail call i32 @isatty(i32 noundef %911) #13
  %.not655 = icmp eq i32 %912, 0
  br i1 %.not655, label %913, label %914

913:                                              ; preds = %909, %902
  br label %914

914:                                              ; preds = %909, %913
  %.str.4.sink1181 = phi ptr [ @.str.4, %913 ], [ @.str, %909 ]
  store i32 %904, ptr %903, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = tail call ptr @s2n_strerror(i32 noundef %918, ptr noundef nonnull @.str.3) #13
  %920 = load i32, ptr %917, align 4, !tbaa !5
  %921 = tail call ptr @s2n_strerror_debug(i32 noundef %920, ptr noundef nonnull @.str.3) #13
  %922 = load i32, ptr %903, align 4, !tbaa !5
  %923 = tail call ptr @strerror(i32 noundef %922) #13
  %924 = load i32, ptr %903, align 4, !tbaa !5
  %925 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %915, ptr noundef nonnull %.str.4.sink1181, i32 noundef %916, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.2, i32 noundef 222, ptr noundef %919, ptr noundef %921, ptr noundef %923, i32 noundef %924) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

926:                                              ; preds = %898
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr @test_count, align 4, !tbaa !5
  %929 = tail call i32 @s2n_server_hello_retry_send(ptr noundef nonnull %723) #13
  %930 = icmp eq i32 %929, -1
  br i1 %930, label %931, label %955

931:                                              ; preds = %926
  %932 = tail call ptr @__errno_location() #14
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = tail call i32 @s2n_print_stacktrace(ptr noundef %934) #13
  %936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %937 = trunc nuw i8 %936 to i1
  br i1 %937, label %938, label %942

938:                                              ; preds = %931
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = tail call i32 @fileno(ptr noundef %939) #13
  %941 = tail call i32 @isatty(i32 noundef %940) #13
  %.not828 = icmp eq i32 %941, 0
  br i1 %.not828, label %942, label %943

942:                                              ; preds = %938, %931
  br label %943

943:                                              ; preds = %938, %942
  %.str.4.sink1192 = phi ptr [ @.str.4, %942 ], [ @.str, %938 ]
  store i32 %933, ptr %932, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = tail call ptr @s2n_strerror(i32 noundef %947, ptr noundef nonnull @.str.3) #13
  %949 = load i32, ptr %946, align 4, !tbaa !5
  %950 = tail call ptr @s2n_strerror_debug(i32 noundef %949, ptr noundef nonnull @.str.3) #13
  %951 = load i32, ptr %932, align 4, !tbaa !5
  %952 = tail call ptr @strerror(i32 noundef %951) #13
  %953 = load i32, ptr %932, align 4, !tbaa !5
  %954 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef nonnull %.str.4.sink1192, i32 noundef %945, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.2, i32 noundef 223, ptr noundef %948, ptr noundef %950, ptr noundef %952, i32 noundef %953) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

955:                                              ; preds = %926
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = add nsw i32 %956, 1
  store i32 %957, ptr @test_count, align 4, !tbaa !5
  %958 = tail call i32 @s2n_config_free(ptr noundef nonnull %694) #13
  %959 = icmp eq i32 %958, -1
  br i1 %959, label %960, label %984

960:                                              ; preds = %955
  %961 = tail call ptr @__errno_location() #14
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = tail call i32 @s2n_print_stacktrace(ptr noundef %963) #13
  %965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %966 = trunc nuw i8 %965 to i1
  br i1 %966, label %967, label %971

967:                                              ; preds = %960
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = tail call i32 @fileno(ptr noundef %968) #13
  %970 = tail call i32 @isatty(i32 noundef %969) #13
  %.not827 = icmp eq i32 %970, 0
  br i1 %.not827, label %971, label %972

971:                                              ; preds = %967, %960
  br label %972

972:                                              ; preds = %967, %971
  %.str.4.sink1203 = phi ptr [ @.str.4, %971 ], [ @.str, %967 ]
  store i32 %962, ptr %961, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = tail call ptr @s2n_strerror(i32 noundef %976, ptr noundef nonnull @.str.3) #13
  %978 = load i32, ptr %975, align 4, !tbaa !5
  %979 = tail call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef nonnull @.str.3) #13
  %980 = load i32, ptr %961, align 4, !tbaa !5
  %981 = tail call ptr @strerror(i32 noundef %980) #13
  %982 = load i32, ptr %961, align 4, !tbaa !5
  %983 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef nonnull %.str.4.sink1203, i32 noundef %974, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 225, ptr noundef %977, ptr noundef %979, ptr noundef %981, i32 noundef %982) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

984:                                              ; preds = %955
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = add nsw i32 %985, 1
  store i32 %986, ptr @test_count, align 4, !tbaa !5
  %987 = tail call i32 @s2n_connection_free(ptr noundef nonnull %723) #13
  %988 = icmp eq i32 %987, -1
  br i1 %988, label %989, label %1013

989:                                              ; preds = %984
  %990 = tail call ptr @__errno_location() #14
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = tail call i32 @s2n_print_stacktrace(ptr noundef %992) #13
  %994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %995 = trunc nuw i8 %994 to i1
  br i1 %995, label %996, label %1000

996:                                              ; preds = %989
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = tail call i32 @fileno(ptr noundef %997) #13
  %999 = tail call i32 @isatty(i32 noundef %998) #13
  %.not826 = icmp eq i32 %999, 0
  br i1 %.not826, label %1000, label %1001

1000:                                             ; preds = %996, %989
  br label %1001

1001:                                             ; preds = %996, %1000
  %.str.4.sink1214 = phi ptr [ @.str.4, %1000 ], [ @.str, %996 ]
  store i32 %991, ptr %990, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = load i32, ptr @test_count, align 4, !tbaa !5
  %1004 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = tail call ptr @s2n_strerror(i32 noundef %1005, ptr noundef nonnull @.str.3) #13
  %1007 = load i32, ptr %1004, align 4, !tbaa !5
  %1008 = tail call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef nonnull @.str.3) #13
  %1009 = load i32, ptr %990, align 4, !tbaa !5
  %1010 = tail call ptr @strerror(i32 noundef %1009) #13
  %1011 = load i32, ptr %990, align 4, !tbaa !5
  %1012 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1002, ptr noundef nonnull %.str.4.sink1214, i32 noundef %1003, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 226, ptr noundef %1006, ptr noundef %1008, ptr noundef %1010, i32 noundef %1011) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1013:                                             ; preds = %984
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr @test_count, align 4, !tbaa !5
  %1016 = tail call ptr @s2n_config_new() #13
  %1017 = icmp eq ptr %1016, null
  br i1 %1017, label %1018, label %1042

1018:                                             ; preds = %1013
  %1019 = tail call ptr @__errno_location() #14
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = tail call i32 @s2n_print_stacktrace(ptr noundef %1021) #13
  %1023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1024 = trunc nuw i8 %1023 to i1
  br i1 %1024, label %1025, label %1029

1025:                                             ; preds = %1018
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = tail call i32 @fileno(ptr noundef %1026) #13
  %1028 = tail call i32 @isatty(i32 noundef %1027) #13
  %.not825 = icmp eq i32 %1028, 0
  br i1 %.not825, label %1029, label %1030

1029:                                             ; preds = %1025, %1018
  br label %1030

1030:                                             ; preds = %1025, %1029
  %.str.4.sink1225 = phi ptr [ @.str.4, %1029 ], [ @.str, %1025 ]
  store i32 %1020, ptr %1019, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = tail call ptr @s2n_strerror(i32 noundef %1034, ptr noundef nonnull @.str.3) #13
  %1036 = load i32, ptr %1033, align 4, !tbaa !5
  %1037 = tail call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef nonnull @.str.3) #13
  %1038 = load i32, ptr %1019, align 4, !tbaa !5
  %1039 = tail call ptr @strerror(i32 noundef %1038) #13
  %1040 = load i32, ptr %1019, align 4, !tbaa !5
  %1041 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull %.str.4.sink1225, i32 noundef %1032, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 234, ptr noundef %1035, ptr noundef %1037, ptr noundef %1039, i32 noundef %1040) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1042:                                             ; preds = %1013
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = tail call ptr @s2n_connection_new(i32 noundef 0) #13
  %1046 = icmp eq ptr %1045, null
  br i1 %1046, label %1047, label %1071

1047:                                             ; preds = %1042
  %1048 = tail call ptr @__errno_location() #14
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = tail call i32 @s2n_print_stacktrace(ptr noundef %1050) #13
  %1052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1053 = trunc nuw i8 %1052 to i1
  br i1 %1053, label %1054, label %1058

1054:                                             ; preds = %1047
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = tail call i32 @fileno(ptr noundef %1055) #13
  %1057 = tail call i32 @isatty(i32 noundef %1056) #13
  %.not824 = icmp eq i32 %1057, 0
  br i1 %.not824, label %1058, label %1059

1058:                                             ; preds = %1054, %1047
  br label %1059

1059:                                             ; preds = %1054, %1058
  %.str.4.sink1236 = phi ptr [ @.str.4, %1058 ], [ @.str, %1054 ]
  store i32 %1049, ptr %1048, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = tail call ptr @s2n_strerror(i32 noundef %1063, ptr noundef nonnull @.str.3) #13
  %1065 = load i32, ptr %1062, align 4, !tbaa !5
  %1066 = tail call ptr @s2n_strerror_debug(i32 noundef %1065, ptr noundef nonnull @.str.3) #13
  %1067 = load i32, ptr %1048, align 4, !tbaa !5
  %1068 = tail call ptr @strerror(i32 noundef %1067) #13
  %1069 = load i32, ptr %1048, align 4, !tbaa !5
  %1070 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef nonnull %.str.4.sink1236, i32 noundef %1061, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 235, ptr noundef %1064, ptr noundef %1066, ptr noundef %1068, i32 noundef %1069) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1071:                                             ; preds = %1042
  %1072 = load i32, ptr @test_count, align 4, !tbaa !5
  %1073 = add nsw i32 %1072, 1
  store i32 %1073, ptr @test_count, align 4, !tbaa !5
  %1074 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %1045, ptr noundef nonnull %1016) #13
  %1075 = icmp eq i32 %1074, -1
  br i1 %1075, label %1076, label %1100

1076:                                             ; preds = %1071
  %1077 = tail call ptr @__errno_location() #14
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = tail call i32 @s2n_print_stacktrace(ptr noundef %1079) #13
  %1081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1082 = trunc nuw i8 %1081 to i1
  br i1 %1082, label %1083, label %1087

1083:                                             ; preds = %1076
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = tail call i32 @fileno(ptr noundef %1084) #13
  %1086 = tail call i32 @isatty(i32 noundef %1085) #13
  %.not823 = icmp eq i32 %1086, 0
  br i1 %.not823, label %1087, label %1088

1087:                                             ; preds = %1083, %1076
  br label %1088

1088:                                             ; preds = %1083, %1087
  %.str.4.sink1247 = phi ptr [ @.str.4, %1087 ], [ @.str, %1083 ]
  store i32 %1078, ptr %1077, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = tail call ptr @s2n_strerror(i32 noundef %1092, ptr noundef nonnull @.str.3) #13
  %1094 = load i32, ptr %1091, align 4, !tbaa !5
  %1095 = tail call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef nonnull @.str.3) #13
  %1096 = load i32, ptr %1077, align 4, !tbaa !5
  %1097 = tail call ptr @strerror(i32 noundef %1096) #13
  %1098 = load i32, ptr %1077, align 4, !tbaa !5
  %1099 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1089, ptr noundef nonnull %.str.4.sink1247, i32 noundef %1090, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.2, i32 noundef 236, ptr noundef %1093, ptr noundef %1095, ptr noundef %1097, i32 noundef %1098) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1100:                                             ; preds = %1071
  %1101 = getelementptr inbounds i8, ptr %1045, i64 2016
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr @test_count, align 4, !tbaa !5
  %1104 = tail call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %1045, i8 noundef zeroext 34) #13
  %1105 = icmp eq i32 %1104, -1
  br i1 %1105, label %1106, label %1130

1106:                                             ; preds = %1100
  %1107 = tail call ptr @__errno_location() #14
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = tail call i32 @s2n_print_stacktrace(ptr noundef %1109) #13
  %1111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1112 = trunc nuw i8 %1111 to i1
  br i1 %1112, label %1113, label %1117

1113:                                             ; preds = %1106
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = tail call i32 @fileno(ptr noundef %1114) #13
  %1116 = tail call i32 @isatty(i32 noundef %1115) #13
  %.not822 = icmp eq i32 %1116, 0
  br i1 %.not822, label %1117, label %1118

1117:                                             ; preds = %1113, %1106
  br label %1118

1118:                                             ; preds = %1113, %1117
  %.str.4.sink1258 = phi ptr [ @.str.4, %1117 ], [ @.str, %1113 ]
  store i32 %1108, ptr %1107, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = tail call ptr @s2n_strerror(i32 noundef %1122, ptr noundef nonnull @.str.3) #13
  %1124 = load i32, ptr %1121, align 4, !tbaa !5
  %1125 = tail call ptr @s2n_strerror_debug(i32 noundef %1124, ptr noundef nonnull @.str.3) #13
  %1126 = load i32, ptr %1107, align 4, !tbaa !5
  %1127 = tail call ptr @strerror(i32 noundef %1126) #13
  %1128 = load i32, ptr %1107, align 4, !tbaa !5
  %1129 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef nonnull %.str.4.sink1258, i32 noundef %1120, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 239, ptr noundef %1123, ptr noundef %1125, ptr noundef %1127, i32 noundef %1128) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1130:                                             ; preds = %1100
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = add nsw i32 %1131, 1
  store i32 %1132, ptr @test_count, align 4, !tbaa !5
  %1133 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1101, i8 noundef zeroext 3) #13
  %1134 = icmp eq i32 %1133, -1
  br i1 %1134, label %1135, label %1159

1135:                                             ; preds = %1130
  %1136 = tail call ptr @__errno_location() #14
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = tail call i32 @s2n_print_stacktrace(ptr noundef %1138) #13
  %1140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1141 = trunc nuw i8 %1140 to i1
  br i1 %1141, label %1142, label %1146

1142:                                             ; preds = %1135
  %1143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1144 = tail call i32 @fileno(ptr noundef %1143) #13
  %1145 = tail call i32 @isatty(i32 noundef %1144) #13
  %.not821 = icmp eq i32 %1145, 0
  br i1 %.not821, label %1146, label %1147

1146:                                             ; preds = %1142, %1135
  br label %1147

1147:                                             ; preds = %1142, %1146
  %.str.4.sink1269 = phi ptr [ @.str.4, %1146 ], [ @.str, %1142 ]
  store i32 %1137, ptr %1136, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = tail call ptr @s2n_strerror(i32 noundef %1151, ptr noundef nonnull @.str.3) #13
  %1153 = load i32, ptr %1150, align 4, !tbaa !5
  %1154 = tail call ptr @s2n_strerror_debug(i32 noundef %1153, ptr noundef nonnull @.str.3) #13
  %1155 = load i32, ptr %1136, align 4, !tbaa !5
  %1156 = tail call ptr @strerror(i32 noundef %1155) #13
  %1157 = load i32, ptr %1136, align 4, !tbaa !5
  %1158 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1148, ptr noundef nonnull %.str.4.sink1269, i32 noundef %1149, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.2, i32 noundef 242, ptr noundef %1152, ptr noundef %1154, ptr noundef %1156, i32 noundef %1157) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1159:                                             ; preds = %1130
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr @test_count, align 4, !tbaa !5
  %1162 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1101, i8 noundef zeroext 3) #13
  %1163 = icmp eq i32 %1162, -1
  br i1 %1163, label %1164, label %1188

1164:                                             ; preds = %1159
  %1165 = tail call ptr @__errno_location() #14
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = tail call i32 @s2n_print_stacktrace(ptr noundef %1167) #13
  %1169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1170 = trunc nuw i8 %1169 to i1
  br i1 %1170, label %1171, label %1175

1171:                                             ; preds = %1164
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = tail call i32 @fileno(ptr noundef %1172) #13
  %1174 = tail call i32 @isatty(i32 noundef %1173) #13
  %.not820 = icmp eq i32 %1174, 0
  br i1 %.not820, label %1175, label %1176

1175:                                             ; preds = %1171, %1164
  br label %1176

1176:                                             ; preds = %1171, %1175
  %.str.4.sink1280 = phi ptr [ @.str.4, %1175 ], [ @.str, %1171 ]
  store i32 %1166, ptr %1165, align 4, !tbaa !5
  %1177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1178 = load i32, ptr @test_count, align 4, !tbaa !5
  %1179 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = tail call ptr @s2n_strerror(i32 noundef %1180, ptr noundef nonnull @.str.3) #13
  %1182 = load i32, ptr %1179, align 4, !tbaa !5
  %1183 = tail call ptr @s2n_strerror_debug(i32 noundef %1182, ptr noundef nonnull @.str.3) #13
  %1184 = load i32, ptr %1165, align 4, !tbaa !5
  %1185 = tail call ptr @strerror(i32 noundef %1184) #13
  %1186 = load i32, ptr %1165, align 4, !tbaa !5
  %1187 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1177, ptr noundef nonnull %.str.4.sink1280, i32 noundef %1178, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.2, i32 noundef 243, ptr noundef %1181, ptr noundef %1183, ptr noundef %1185, i32 noundef %1186) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1188:                                             ; preds = %1159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %3, i8 0, i64 32, i1 false)
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = add nsw i32 %1189, 1
  store i32 %1190, ptr @test_count, align 4, !tbaa !5
  %1191 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %1101, ptr noundef nonnull %3, i32 noundef 32) #13
  %1192 = icmp eq i32 %1191, -1
  br i1 %1192, label %1193, label %1217

1193:                                             ; preds = %1188
  %1194 = tail call ptr @__errno_location() #14
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196) #13
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc nuw i8 %1198 to i1
  br i1 %1199, label %1200, label %1204

1200:                                             ; preds = %1193
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #13
  %1203 = call i32 @isatty(i32 noundef %1202) #13
  %.not819 = icmp eq i32 %1203, 0
  br i1 %.not819, label %1204, label %1205

1204:                                             ; preds = %1200, %1193
  br label %1205

1205:                                             ; preds = %1200, %1204
  %.str.4.sink1291 = phi ptr [ @.str.4, %1204 ], [ @.str, %1200 ]
  store i32 %1195, ptr %1194, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call ptr @s2n_strerror(i32 noundef %1209, ptr noundef nonnull @.str.3) #13
  %1211 = load i32, ptr %1208, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror_debug(i32 noundef %1211, ptr noundef nonnull @.str.3) #13
  %1213 = load i32, ptr %1194, align 4, !tbaa !5
  %1214 = call ptr @strerror(i32 noundef %1213) #13
  %1215 = load i32, ptr %1194, align 4, !tbaa !5
  %1216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.4.sink1291, i32 noundef %1207, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.2, i32 noundef 247, ptr noundef %1210, ptr noundef %1212, ptr noundef %1214, i32 noundef %1215) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1217:                                             ; preds = %1188
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %4, i8 0, i64 32, i1 false)
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = add nsw i32 %1218, 1
  store i32 %1219, ptr @test_count, align 4, !tbaa !5
  %1220 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1101, i8 noundef zeroext 32) #13
  %1221 = icmp eq i32 %1220, -1
  br i1 %1221, label %1222, label %1246

1222:                                             ; preds = %1217
  %1223 = tail call ptr @__errno_location() #14
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @s2n_print_stacktrace(ptr noundef %1225) #13
  %1227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1228 = trunc nuw i8 %1227 to i1
  br i1 %1228, label %1229, label %1233

1229:                                             ; preds = %1222
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @fileno(ptr noundef %1230) #13
  %1232 = call i32 @isatty(i32 noundef %1231) #13
  %.not818 = icmp eq i32 %1232, 0
  br i1 %.not818, label %1233, label %1234

1233:                                             ; preds = %1229, %1222
  br label %1234

1234:                                             ; preds = %1229, %1233
  %.str.4.sink1302 = phi ptr [ @.str.4, %1233 ], [ @.str, %1229 ]
  store i32 %1224, ptr %1223, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror(i32 noundef %1238, ptr noundef nonnull @.str.3) #13
  %1240 = load i32, ptr %1237, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror_debug(i32 noundef %1240, ptr noundef nonnull @.str.3) #13
  %1242 = load i32, ptr %1223, align 4, !tbaa !5
  %1243 = call ptr @strerror(i32 noundef %1242) #13
  %1244 = load i32, ptr %1223, align 4, !tbaa !5
  %1245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1235, ptr noundef nonnull %.str.4.sink1302, i32 noundef %1236, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 251, ptr noundef %1239, ptr noundef %1241, ptr noundef %1243, i32 noundef %1244) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1246:                                             ; preds = %1217
  %1247 = load i32, ptr @test_count, align 4, !tbaa !5
  %1248 = add nsw i32 %1247, 1
  store i32 %1248, ptr @test_count, align 4, !tbaa !5
  %1249 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %1101, ptr noundef nonnull %4, i32 noundef 32) #13
  %1250 = icmp eq i32 %1249, -1
  br i1 %1250, label %1251, label %1275

1251:                                             ; preds = %1246
  %1252 = tail call ptr @__errno_location() #14
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 @s2n_print_stacktrace(ptr noundef %1254) #13
  %1256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1257 = trunc nuw i8 %1256 to i1
  br i1 %1257, label %1258, label %1262

1258:                                             ; preds = %1251
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = call i32 @fileno(ptr noundef %1259) #13
  %1261 = call i32 @isatty(i32 noundef %1260) #13
  %.not817 = icmp eq i32 %1261, 0
  br i1 %.not817, label %1262, label %1263

1262:                                             ; preds = %1258, %1251
  br label %1263

1263:                                             ; preds = %1258, %1262
  %.str.4.sink1313 = phi ptr [ @.str.4, %1262 ], [ @.str, %1258 ]
  store i32 %1253, ptr %1252, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef nonnull @.str.3) #13
  %1269 = load i32, ptr %1266, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror_debug(i32 noundef %1269, ptr noundef nonnull @.str.3) #13
  %1271 = load i32, ptr %1252, align 4, !tbaa !5
  %1272 = call ptr @strerror(i32 noundef %1271) #13
  %1273 = load i32, ptr %1252, align 4, !tbaa !5
  %1274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef nonnull %.str.4.sink1313, i32 noundef %1265, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.2, i32 noundef 252, ptr noundef %1268, ptr noundef %1270, ptr noundef %1272, i32 noundef %1273) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1275:                                             ; preds = %1246
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = add nsw i32 %1276, 1
  store i32 %1277, ptr @test_count, align 4, !tbaa !5
  %1278 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %1101, i16 noundef zeroext 4865) #13
  %1279 = icmp eq i32 %1278, -1
  br i1 %1279, label %1280, label %1304

1280:                                             ; preds = %1275
  %1281 = tail call ptr @__errno_location() #14
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @s2n_print_stacktrace(ptr noundef %1283) #13
  %1285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1286 = trunc nuw i8 %1285 to i1
  br i1 %1286, label %1287, label %1291

1287:                                             ; preds = %1280
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @fileno(ptr noundef %1288) #13
  %1290 = call i32 @isatty(i32 noundef %1289) #13
  %.not816 = icmp eq i32 %1290, 0
  br i1 %.not816, label %1291, label %1292

1291:                                             ; preds = %1287, %1280
  br label %1292

1292:                                             ; preds = %1287, %1291
  %.str.4.sink1324 = phi ptr [ @.str.4, %1291 ], [ @.str, %1287 ]
  store i32 %1282, ptr %1281, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror(i32 noundef %1296, ptr noundef nonnull @.str.3) #13
  %1298 = load i32, ptr %1295, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror_debug(i32 noundef %1298, ptr noundef nonnull @.str.3) #13
  %1300 = load i32, ptr %1281, align 4, !tbaa !5
  %1301 = call ptr @strerror(i32 noundef %1300) #13
  %1302 = load i32, ptr %1281, align 4, !tbaa !5
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef nonnull %.str.4.sink1324, i32 noundef %1294, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.2, i32 noundef 255, ptr noundef %1297, ptr noundef %1299, ptr noundef %1301, i32 noundef %1302) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1304:                                             ; preds = %1275
  %1305 = load i32, ptr @test_count, align 4, !tbaa !5
  %1306 = add nsw i32 %1305, 1
  store i32 %1306, ptr @test_count, align 4, !tbaa !5
  %1307 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1101, i8 noundef zeroext 0) #13
  %1308 = icmp eq i32 %1307, -1
  br i1 %1308, label %1309, label %1333

1309:                                             ; preds = %1304
  %1310 = tail call ptr @__errno_location() #14
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @s2n_print_stacktrace(ptr noundef %1312) #13
  %1314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1315 = trunc nuw i8 %1314 to i1
  br i1 %1315, label %1316, label %1320

1316:                                             ; preds = %1309
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = call i32 @fileno(ptr noundef %1317) #13
  %1319 = call i32 @isatty(i32 noundef %1318) #13
  %.not815 = icmp eq i32 %1319, 0
  br i1 %.not815, label %1320, label %1321

1320:                                             ; preds = %1316, %1309
  br label %1321

1321:                                             ; preds = %1316, %1320
  %.str.4.sink1335 = phi ptr [ @.str.4, %1320 ], [ @.str, %1316 ]
  store i32 %1311, ptr %1310, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror(i32 noundef %1325, ptr noundef nonnull @.str.3) #13
  %1327 = load i32, ptr %1324, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror_debug(i32 noundef %1327, ptr noundef nonnull @.str.3) #13
  %1329 = load i32, ptr %1310, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #13
  %1331 = load i32, ptr %1310, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1322, ptr noundef nonnull %.str.4.sink1335, i32 noundef %1323, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 258, ptr noundef %1326, ptr noundef %1328, ptr noundef %1330, i32 noundef %1331) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1333:                                             ; preds = %1304
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = call i32 @s2n_server_hello_recv(ptr noundef nonnull %1045) #13
  %1337 = icmp eq i32 %1336, -1
  br i1 %1337, label %1362, label %1338

1338:                                             ; preds = %1333
  %1339 = tail call ptr @__errno_location() #14
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 @s2n_print_stacktrace(ptr noundef %1341) #13
  %1343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1344 = trunc nuw i8 %1343 to i1
  br i1 %1344, label %1345, label %1349

1345:                                             ; preds = %1338
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @fileno(ptr noundef %1346) #13
  %1348 = call i32 @isatty(i32 noundef %1347) #13
  %.not656 = icmp eq i32 %1348, 0
  br i1 %.not656, label %1349, label %1350

1349:                                             ; preds = %1345, %1338
  br label %1350

1350:                                             ; preds = %1345, %1349
  %.str.4.sink1346 = phi ptr [ @.str.4, %1349 ], [ @.str, %1345 ]
  store i32 %1340, ptr %1339, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror(i32 noundef %1354, ptr noundef nonnull @.str.3) #13
  %1356 = load i32, ptr %1353, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror_debug(i32 noundef %1356, ptr noundef nonnull @.str.3) #13
  %1358 = load i32, ptr %1339, align 4, !tbaa !5
  %1359 = call ptr @strerror(i32 noundef %1358) #13
  %1360 = load i32, ptr %1339, align 4, !tbaa !5
  %1361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef nonnull %.str.4.sink1346, i32 noundef %1352, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 260, ptr noundef %1355, ptr noundef %1357, ptr noundef %1359, i32 noundef %1360) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1362:                                             ; preds = %1333
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = add nsw i32 %1363, 1
  store i32 %1364, ptr @test_count, align 4, !tbaa !5
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = icmp eq i32 %1366, 335544322
  br i1 %1367, label %1391, label %1368

1368:                                             ; preds = %1362
  %1369 = tail call ptr @__errno_location() #14
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @s2n_print_stacktrace(ptr noundef %1371) #13
  %1373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1374 = trunc nuw i8 %1373 to i1
  br i1 %1374, label %1375, label %1379

1375:                                             ; preds = %1368
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @fileno(ptr noundef %1376) #13
  %1378 = call i32 @isatty(i32 noundef %1377) #13
  %.not657 = icmp eq i32 %1378, 0
  br i1 %.not657, label %1379, label %1380

1379:                                             ; preds = %1375, %1368
  br label %1380

1380:                                             ; preds = %1375, %1379
  %.str.4.sink1357 = phi ptr [ @.str.4, %1379 ], [ @.str, %1375 ]
  store i32 %1370, ptr %1369, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = load i32, ptr %1365, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef nonnull @.str.3) #13
  %1385 = load i32, ptr %1365, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror_debug(i32 noundef %1385, ptr noundef nonnull @.str.3) #13
  %1387 = load i32, ptr %1369, align 4, !tbaa !5
  %1388 = call ptr @strerror(i32 noundef %1387) #13
  %1389 = load i32, ptr %1369, align 4, !tbaa !5
  %1390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef nonnull %.str.4.sink1357, i32 noundef %1382, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 260, ptr noundef %1384, ptr noundef %1386, ptr noundef %1388, i32 noundef %1389) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1391:                                             ; preds = %1362
  %1392 = add nsw i32 %1363, 2
  store i32 %1392, ptr @test_count, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.3) #13
  %1394 = icmp eq ptr %1393, null
  br i1 %1394, label %1395, label %1418

1395:                                             ; preds = %1391
  %1396 = tail call ptr @__errno_location() #14
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = call i32 @s2n_print_stacktrace(ptr noundef %1398) #13
  %1400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1401 = trunc nuw i8 %1400 to i1
  br i1 %1401, label %1402, label %1406

1402:                                             ; preds = %1395
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = call i32 @fileno(ptr noundef %1403) #13
  %1405 = call i32 @isatty(i32 noundef %1404) #13
  %.not814 = icmp eq i32 %1405, 0
  br i1 %.not814, label %1406, label %1407

1406:                                             ; preds = %1402, %1395
  br label %1407

1407:                                             ; preds = %1402, %1406
  %.str.4.sink1366 = phi ptr [ @.str.4, %1406 ], [ @.str, %1402 ]
  store i32 %1397, ptr %1396, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = load i32, ptr %1365, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror(i32 noundef %1410, ptr noundef nonnull @.str.3) #13
  %1412 = load i32, ptr %1365, align 4, !tbaa !5
  %1413 = call ptr @s2n_strerror_debug(i32 noundef %1412, ptr noundef nonnull @.str.3) #13
  %1414 = load i32, ptr %1396, align 4, !tbaa !5
  %1415 = call ptr @strerror(i32 noundef %1414) #13
  %1416 = load i32, ptr %1396, align 4, !tbaa !5
  %1417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef nonnull %.str.4.sink1366, i32 noundef %1409, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2, i32 noundef 260, ptr noundef %1411, ptr noundef %1413, ptr noundef %1415, i32 noundef %1416) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1418:                                             ; preds = %1391
  store i32 0, ptr %1365, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %1419 = tail call ptr @__errno_location() #14
  store i32 0, ptr %1419, align 4, !tbaa !5
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = add nsw i32 %1420, 1
  store i32 %1421, ptr @test_count, align 4, !tbaa !5
  %1422 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef nonnull %1045) #13
  br i1 %1422, label %1423, label %1445

1423:                                             ; preds = %1418
  %1424 = load i32, ptr %1419, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = call i32 @s2n_print_stacktrace(ptr noundef %1425) #13
  %1427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1428 = trunc nuw i8 %1427 to i1
  br i1 %1428, label %1429, label %1433

1429:                                             ; preds = %1423
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = call i32 @fileno(ptr noundef %1430) #13
  %1432 = call i32 @isatty(i32 noundef %1431) #13
  %.not813 = icmp eq i32 %1432, 0
  br i1 %.not813, label %1433, label %1434

1433:                                             ; preds = %1429, %1423
  br label %1434

1434:                                             ; preds = %1429, %1433
  %.str.4.sink1375 = phi ptr [ @.str.4, %1433 ], [ @.str, %1429 ]
  store i32 %1424, ptr %1419, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = load i32, ptr @test_count, align 4, !tbaa !5
  %1437 = load i32, ptr %1365, align 4, !tbaa !5
  %1438 = call ptr @s2n_strerror(i32 noundef %1437, ptr noundef nonnull @.str.3) #13
  %1439 = load i32, ptr %1365, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror_debug(i32 noundef %1439, ptr noundef nonnull @.str.3) #13
  %1441 = load i32, ptr %1419, align 4, !tbaa !5
  %1442 = call ptr @strerror(i32 noundef %1441) #13
  %1443 = load i32, ptr %1419, align 4, !tbaa !5
  %1444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1435, ptr noundef nonnull %.str.4.sink1375, i32 noundef %1436, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.2, i32 noundef 262, ptr noundef %1438, ptr noundef %1440, ptr noundef %1442, i32 noundef %1443) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1445:                                             ; preds = %1418
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = add nsw i32 %1446, 1
  store i32 %1447, ptr @test_count, align 4, !tbaa !5
  %1448 = call i32 @s2n_config_free(ptr noundef nonnull %1016) #13
  %1449 = icmp eq i32 %1448, -1
  br i1 %1449, label %1450, label %1472

1450:                                             ; preds = %1445
  %1451 = load i32, ptr %1419, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452) #13
  %1454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1455 = trunc nuw i8 %1454 to i1
  br i1 %1455, label %1456, label %1460

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

1460:                                             ; preds = %1456, %1450
  br label %1461

1461:                                             ; preds = %1456, %1460
  %.str.4.sink1384 = phi ptr [ @.str.4, %1460 ], [ @.str, %1456 ]
  store i32 %1451, ptr %1419, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = load i32, ptr %1365, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.3) #13
  %1466 = load i32, ptr %1365, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.3) #13
  %1468 = load i32, ptr %1419, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #13
  %1470 = load i32, ptr %1419, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef nonnull %.str.4.sink1384, i32 noundef %1463, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 264, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1472:                                             ; preds = %1445
  %1473 = load i32, ptr @test_count, align 4, !tbaa !5
  %1474 = add nsw i32 %1473, 1
  store i32 %1474, ptr @test_count, align 4, !tbaa !5
  %1475 = call i32 @s2n_connection_free(ptr noundef nonnull %1045) #13
  %1476 = icmp eq i32 %1475, -1
  br i1 %1476, label %1477, label %1499

1477:                                             ; preds = %1472
  %1478 = load i32, ptr %1419, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @s2n_print_stacktrace(ptr noundef %1479) #13
  %1481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1482 = trunc nuw i8 %1481 to i1
  br i1 %1482, label %1483, label %1487

1483:                                             ; preds = %1477
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @fileno(ptr noundef %1484) #13
  %1486 = call i32 @isatty(i32 noundef %1485) #13
  %.not811 = icmp eq i32 %1486, 0
  br i1 %.not811, label %1487, label %1488

1487:                                             ; preds = %1483, %1477
  br label %1488

1488:                                             ; preds = %1483, %1487
  %.str.4.sink1393 = phi ptr [ @.str.4, %1487 ], [ @.str, %1483 ]
  store i32 %1478, ptr %1419, align 4, !tbaa !5
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = load i32, ptr @test_count, align 4, !tbaa !5
  %1491 = load i32, ptr %1365, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror(i32 noundef %1491, ptr noundef nonnull @.str.3) #13
  %1493 = load i32, ptr %1365, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror_debug(i32 noundef %1493, ptr noundef nonnull @.str.3) #13
  %1495 = load i32, ptr %1419, align 4, !tbaa !5
  %1496 = call ptr @strerror(i32 noundef %1495) #13
  %1497 = load i32, ptr %1419, align 4, !tbaa !5
  %1498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1489, ptr noundef nonnull %.str.4.sink1393, i32 noundef %1490, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 265, ptr noundef %1492, ptr noundef %1494, ptr noundef %1496, i32 noundef %1497) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1499:                                             ; preds = %1472
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #13
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = add nsw i32 %1500, 1
  store i32 %1501, ptr @test_count, align 4, !tbaa !5
  %1502 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %1503 = icmp eq ptr %1502, null
  br i1 %1503, label %1504, label %1526

1504:                                             ; preds = %1499
  %1505 = load i32, ptr %1419, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506) #13
  %1508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1509 = trunc nuw i8 %1508 to i1
  br i1 %1509, label %1510, label %1514

1510:                                             ; preds = %1504
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #13
  %1513 = call i32 @isatty(i32 noundef %1512) #13
  %.not810 = icmp eq i32 %1513, 0
  br i1 %.not810, label %1514, label %1515

1514:                                             ; preds = %1510, %1504
  br label %1515

1515:                                             ; preds = %1510, %1514
  %.str.4.sink1402 = phi ptr [ @.str.4, %1514 ], [ @.str, %1510 ]
  store i32 %1505, ptr %1419, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = load i32, ptr %1365, align 4, !tbaa !5
  %1519 = call ptr @s2n_strerror(i32 noundef %1518, ptr noundef nonnull @.str.3) #13
  %1520 = load i32, ptr %1365, align 4, !tbaa !5
  %1521 = call ptr @s2n_strerror_debug(i32 noundef %1520, ptr noundef nonnull @.str.3) #13
  %1522 = load i32, ptr %1419, align 4, !tbaa !5
  %1523 = call ptr @strerror(i32 noundef %1522) #13
  %1524 = load i32, ptr %1419, align 4, !tbaa !5
  %1525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef nonnull %.str.4.sink1402, i32 noundef %1517, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 273, ptr noundef %1519, ptr noundef %1521, ptr noundef %1523, i32 noundef %1524) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1526:                                             ; preds = %1499
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = add nsw i32 %1527, 1
  store i32 %1528, ptr @test_count, align 4, !tbaa !5
  %1529 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1530 = icmp eq ptr %1529, null
  br i1 %1530, label %1531, label %1553

1531:                                             ; preds = %1526
  %1532 = load i32, ptr %1419, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = call i32 @s2n_print_stacktrace(ptr noundef %1533) #13
  %1535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1536 = trunc nuw i8 %1535 to i1
  br i1 %1536, label %1537, label %1541

1537:                                             ; preds = %1531
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = call i32 @fileno(ptr noundef %1538) #13
  %1540 = call i32 @isatty(i32 noundef %1539) #13
  %.not809 = icmp eq i32 %1540, 0
  br i1 %.not809, label %1541, label %1542

1541:                                             ; preds = %1537, %1531
  br label %1542

1542:                                             ; preds = %1537, %1541
  %.str.4.sink1411 = phi ptr [ @.str.4, %1541 ], [ @.str, %1537 ]
  store i32 %1532, ptr %1419, align 4, !tbaa !5
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = load i32, ptr %1365, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror(i32 noundef %1545, ptr noundef nonnull @.str.3) #13
  %1547 = load i32, ptr %1365, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror_debug(i32 noundef %1547, ptr noundef nonnull @.str.3) #13
  %1549 = load i32, ptr %1419, align 4, !tbaa !5
  %1550 = call ptr @strerror(i32 noundef %1549) #13
  %1551 = load i32, ptr %1419, align 4, !tbaa !5
  %1552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1543, ptr noundef nonnull %.str.4.sink1411, i32 noundef %1544, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 274, ptr noundef %1546, ptr noundef %1548, ptr noundef %1550, i32 noundef %1551) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1553:                                             ; preds = %1526
  %1554 = getelementptr inbounds i8, ptr %1502, i64 2016
  %1555 = load i32, ptr @test_count, align 4, !tbaa !5
  %1556 = add nsw i32 %1555, 1
  store i32 %1556, ptr @test_count, align 4, !tbaa !5
  %1557 = load i16, ptr @s2n_server_key_share_extension, align 8, !tbaa !53
  %1558 = call i32 @s2n_connection_allow_response_extension(ptr noundef nonnull %1529, i16 noundef zeroext %1557) #13
  %1559 = icmp eq i32 %1558, -1
  br i1 %1559, label %1560, label %1582

1560:                                             ; preds = %1553
  %1561 = load i32, ptr %1419, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @s2n_print_stacktrace(ptr noundef %1562) #13
  %1564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1565 = trunc nuw i8 %1564 to i1
  br i1 %1565, label %1566, label %1570

1566:                                             ; preds = %1560
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @fileno(ptr noundef %1567) #13
  %1569 = call i32 @isatty(i32 noundef %1568) #13
  %.not808 = icmp eq i32 %1569, 0
  br i1 %.not808, label %1570, label %1571

1570:                                             ; preds = %1566, %1560
  br label %1571

1571:                                             ; preds = %1566, %1570
  %.str.4.sink1420 = phi ptr [ @.str.4, %1570 ], [ @.str, %1566 ]
  store i32 %1561, ptr %1419, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = load i32, ptr @test_count, align 4, !tbaa !5
  %1574 = load i32, ptr %1365, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror(i32 noundef %1574, ptr noundef nonnull @.str.3) #13
  %1576 = load i32, ptr %1365, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef nonnull @.str.3) #13
  %1578 = load i32, ptr %1419, align 4, !tbaa !5
  %1579 = call ptr @strerror(i32 noundef %1578) #13
  %1580 = load i32, ptr %1419, align 4, !tbaa !5
  %1581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1572, ptr noundef nonnull %.str.4.sink1420, i32 noundef %1573, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 278, ptr noundef %1575, ptr noundef %1577, ptr noundef %1579, i32 noundef %1580) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1582:                                             ; preds = %1553
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = add nsw i32 %1583, 1
  store i32 %1584, ptr @test_count, align 4, !tbaa !5
  %1585 = call i32 @s2n_connection_allow_response_extension(ptr noundef nonnull %1502, i16 noundef zeroext %1557) #13
  %1586 = icmp eq i32 %1585, -1
  br i1 %1586, label %1587, label %1609

1587:                                             ; preds = %1582
  %1588 = load i32, ptr %1419, align 4, !tbaa !5
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @s2n_print_stacktrace(ptr noundef %1589) #13
  %1591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1592 = trunc nuw i8 %1591 to i1
  br i1 %1592, label %1593, label %1597

1593:                                             ; preds = %1587
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @fileno(ptr noundef %1594) #13
  %1596 = call i32 @isatty(i32 noundef %1595) #13
  %.not807 = icmp eq i32 %1596, 0
  br i1 %.not807, label %1597, label %1598

1597:                                             ; preds = %1593, %1587
  br label %1598

1598:                                             ; preds = %1593, %1597
  %.str.4.sink1429 = phi ptr [ @.str.4, %1597 ], [ @.str, %1593 ]
  store i32 %1588, ptr %1419, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = load i32, ptr %1365, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror(i32 noundef %1601, ptr noundef nonnull @.str.3) #13
  %1603 = load i32, ptr %1365, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror_debug(i32 noundef %1603, ptr noundef nonnull @.str.3) #13
  %1605 = load i32, ptr %1419, align 4, !tbaa !5
  %1606 = call ptr @strerror(i32 noundef %1605) #13
  %1607 = load i32, ptr %1419, align 4, !tbaa !5
  %1608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef nonnull %.str.4.sink1429, i32 noundef %1600, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.2, i32 noundef 279, ptr noundef %1602, ptr noundef %1604, ptr noundef %1606, i32 noundef %1607) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1609:                                             ; preds = %1582
  %1610 = getelementptr inbounds i8, ptr %1502, i64 1650
  %1611 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %1610, ptr noundef nonnull @hello_retry_req_random, i64 noundef 32) #13
  %.not658.not.not = icmp eq ptr %1611, null
  br i1 %.not658.not.not, label %.thread, label %1618

.thread:                                          ; preds = %1609
  %1612 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.83, ptr %1612, align 8, !tbaa !55
  %1613 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.83, i64 21), i32 noundef 47) #17
  %.not659 = icmp eq ptr %1613, null
  %1614 = getelementptr inbounds i8, ptr %1613, i64 1
  %1615 = select i1 %.not659, ptr getelementptr inbounds (i8, ptr @.str.83, i64 21), ptr %1614
  %1616 = getelementptr inbounds i8, ptr %1612, i64 8
  store ptr %1615, ptr %1616, align 8, !tbaa !57
  store i32 402653193, ptr %1365, align 4, !tbaa !5
  %1617 = call i32 @s2n_calculate_stacktrace() #13
  br label %.thread855

1618:                                             ; preds = %1609
  %1619 = load i32, ptr @test_count, align 4, !tbaa !5
  %1620 = add nsw i32 %1619, 1
  store i32 %1620, ptr @test_count, align 4, !tbaa !5
  %1621 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %1502, i8 noundef zeroext 34) #13
  %1622 = icmp eq i32 %1621, -1
  br i1 %1622, label %1623, label %1645

1623:                                             ; preds = %1618
  %1624 = load i32, ptr %1419, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @s2n_print_stacktrace(ptr noundef %1625) #13
  %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) #13
  %1632 = call i32 @isatty(i32 noundef %1631) #13
  %.not806 = icmp eq i32 %1632, 0
  br i1 %.not806, label %1633, label %1634

1633:                                             ; preds = %1629, %1623
  br label %1634

1634:                                             ; preds = %1629, %1633
  %.str.4.sink1438 = phi ptr [ @.str.4, %1633 ], [ @.str, %1629 ]
  store i32 %1624, ptr %1419, 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 %1365, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror(i32 noundef %1637, ptr noundef nonnull @.str.3) #13
  %1639 = load i32, ptr %1365, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef nonnull @.str.3) #13
  %1641 = load i32, ptr %1419, align 4, !tbaa !5
  %1642 = call ptr @strerror(i32 noundef %1641) #13
  %1643 = load i32, ptr %1419, align 4, !tbaa !5
  %1644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1635, ptr noundef nonnull %.str.4.sink1438, i32 noundef %1636, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 282, ptr noundef %1638, ptr noundef %1640, ptr noundef %1642, i32 noundef %1643) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1645:                                             ; preds = %1618
  %1646 = getelementptr inbounds i8, ptr %1502, i64 656
  store ptr %365, ptr %1646, align 8, !tbaa !48
  %1647 = getelementptr inbounds i8, ptr %1502, i64 704
  store ptr %365, ptr %1647, align 8, !tbaa !49
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = add nsw i32 %1648, 1
  store i32 %1649, ptr @test_count, align 4, !tbaa !5
  %1650 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %1502) #13
  %1651 = icmp eq i32 %1650, -1
  br i1 %1651, label %1652, label %1674

1652:                                             ; preds = %1645
  %1653 = load i32, ptr %1419, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @s2n_print_stacktrace(ptr noundef %1654) #13
  %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) #13
  %1661 = call i32 @isatty(i32 noundef %1660) #13
  %.not805 = icmp eq i32 %1661, 0
  br i1 %.not805, label %1662, label %1663

1662:                                             ; preds = %1658, %1652
  br label %1663

1663:                                             ; preds = %1658, %1662
  %.str.4.sink1447 = phi ptr [ @.str.4, %1662 ], [ @.str, %1658 ]
  store i32 %1653, ptr %1419, 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 %1365, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror(i32 noundef %1666, ptr noundef nonnull @.str.3) #13
  %1668 = load i32, ptr %1365, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef nonnull @.str.3) #13
  %1670 = load i32, ptr %1419, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #13
  %1672 = load i32, ptr %1419, align 4, !tbaa !5
  %1673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef nonnull %.str.4.sink1447, i32 noundef %1665, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 285, ptr noundef %1667, ptr noundef %1669, ptr noundef %1671, i32 noundef %1672) #15
  call void @exit(i32 noundef 1) #16
  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_conn_choose_state_machine(ptr noundef nonnull %1502, i8 noundef zeroext 34) #13
  %1678 = call zeroext i1 @s2n_result_is_ok(i32 %1677)
  br i1 %1678, label %1701, label %1679

1679:                                             ; preds = %1674
  %1680 = load i32, ptr %1419, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = call i32 @s2n_print_stacktrace(ptr noundef %1681) #13
  %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) #13
  %1688 = call i32 @isatty(i32 noundef %1687) #13
  %.not660 = icmp eq i32 %1688, 0
  br i1 %.not660, label %1689, label %1690

1689:                                             ; preds = %1685, %1679
  br label %1690

1690:                                             ; preds = %1685, %1689
  %.str.4.sink1456 = phi ptr [ @.str.4, %1689 ], [ @.str, %1685 ]
  store i32 %1680, ptr %1419, 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 %1365, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.3) #13
  %1695 = load i32, ptr %1365, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.3) #13
  %1697 = load i32, ptr %1419, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #13
  %1699 = load i32, ptr %1419, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1691, ptr noundef nonnull %.str.4.sink1456, i32 noundef %1692, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 286, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #15
  call void @exit(i32 noundef 1) #16
  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 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %1647) #13
  %1705 = icmp eq i32 %1704, -1
  br i1 %1705, label %1706, label %1728

1706:                                             ; preds = %1701
  %1707 = load i32, ptr %1419, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @s2n_print_stacktrace(ptr noundef %1708) #13
  %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) #13
  %1715 = call i32 @isatty(i32 noundef %1714) #13
  %.not804 = icmp eq i32 %1715, 0
  br i1 %.not804, label %1716, label %1717

1716:                                             ; preds = %1712, %1706
  br label %1717

1717:                                             ; preds = %1712, %1716
  %.str.4.sink1465 = phi ptr [ @.str.4, %1716 ], [ @.str, %1712 ]
  store i32 %1707, ptr %1419, 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 %1365, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef nonnull @.str.3) #13
  %1722 = load i32, ptr %1365, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef nonnull @.str.3) #13
  %1724 = load i32, ptr %1419, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #13
  %1726 = load i32, ptr %1419, align 4, !tbaa !5
  %1727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1718, ptr noundef nonnull %.str.4.sink1465, i32 noundef %1719, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 287, ptr noundef %1721, ptr noundef %1723, ptr noundef %1725, i32 noundef %1726) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1728:                                             ; preds = %1701
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = add nsw i32 %1729, 1
  store i32 %1730, ptr @test_count, align 4, !tbaa !5
  %1731 = call i32 @s2n_extensions_server_key_share_send(ptr noundef nonnull %1502, ptr noundef nonnull %1554) #13
  %1732 = icmp eq i32 %1731, -1
  br i1 %1732, label %1733, label %1755

1733:                                             ; preds = %1728
  %1734 = load i32, ptr %1419, align 4, !tbaa !5
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = call i32 @s2n_print_stacktrace(ptr noundef %1735) #13
  %1737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1738 = trunc nuw i8 %1737 to i1
  br i1 %1738, label %1739, label %1743

1739:                                             ; preds = %1733
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @fileno(ptr noundef %1740) #13
  %1742 = call i32 @isatty(i32 noundef %1741) #13
  %.not803 = icmp eq i32 %1742, 0
  br i1 %.not803, label %1743, label %1744

1743:                                             ; preds = %1739, %1733
  br label %1744

1744:                                             ; preds = %1739, %1743
  %.str.4.sink1474 = phi ptr [ @.str.4, %1743 ], [ @.str, %1739 ]
  store i32 %1734, ptr %1419, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = load i32, ptr @test_count, align 4, !tbaa !5
  %1747 = load i32, ptr %1365, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror(i32 noundef %1747, ptr noundef nonnull @.str.3) #13
  %1749 = load i32, ptr %1365, align 4, !tbaa !5
  %1750 = call ptr @s2n_strerror_debug(i32 noundef %1749, ptr noundef nonnull @.str.3) #13
  %1751 = load i32, ptr %1419, align 4, !tbaa !5
  %1752 = call ptr @strerror(i32 noundef %1751) #13
  %1753 = load i32, ptr %1419, align 4, !tbaa !5
  %1754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1745, ptr noundef nonnull %.str.4.sink1474, i32 noundef %1746, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 288, ptr noundef %1748, ptr noundef %1750, ptr noundef %1752, i32 noundef %1753) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1755:                                             ; preds = %1728
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #13
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = add nsw i32 %1756, 1
  store i32 %1757, ptr @test_count, align 4, !tbaa !5
  %1758 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %1554, ptr noundef nonnull %5) #13
  %1759 = icmp eq i32 %1758, -1
  br i1 %1759, label %1760, label %1782

1760:                                             ; preds = %1755
  %1761 = load i32, ptr %1419, align 4, !tbaa !5
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = call i32 @s2n_print_stacktrace(ptr noundef %1762) #13
  %1764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1765 = trunc nuw i8 %1764 to i1
  br i1 %1765, label %1766, label %1770

1766:                                             ; preds = %1760
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @fileno(ptr noundef %1767) #13
  %1769 = call i32 @isatty(i32 noundef %1768) #13
  %.not802 = icmp eq i32 %1769, 0
  br i1 %.not802, label %1770, label %1771

1770:                                             ; preds = %1766, %1760
  br label %1771

1771:                                             ; preds = %1766, %1770
  %.str.4.sink1483 = phi ptr [ @.str.4, %1770 ], [ @.str, %1766 ]
  store i32 %1761, ptr %1419, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = load i32, ptr %1365, align 4, !tbaa !5
  %1775 = call ptr @s2n_strerror(i32 noundef %1774, ptr noundef nonnull @.str.3) #13
  %1776 = load i32, ptr %1365, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror_debug(i32 noundef %1776, ptr noundef nonnull @.str.3) #13
  %1778 = load i32, ptr %1419, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #13
  %1780 = load i32, ptr %1419, align 4, !tbaa !5
  %1781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1772, ptr noundef nonnull %.str.4.sink1483, i32 noundef %1773, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 290, ptr noundef %1775, ptr noundef %1777, ptr noundef %1779, i32 noundef %1780) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1782:                                             ; preds = %1755
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = add nsw i32 %1783, 1
  store i32 %1784, ptr @test_count, align 4, !tbaa !5
  %1785 = load i16, ptr %5, align 2, !tbaa !58
  %1786 = icmp eq i16 %1785, 51
  br i1 %1786, label %1809, label %1787

1787:                                             ; preds = %1782
  %1788 = load i32, ptr %1419, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = call i32 @s2n_print_stacktrace(ptr noundef %1789) #13
  %1791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1792 = trunc nuw i8 %1791 to i1
  br i1 %1792, label %1793, label %1797

1793:                                             ; preds = %1787
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = call i32 @fileno(ptr noundef %1794) #13
  %1796 = call i32 @isatty(i32 noundef %1795) #13
  %.not661 = icmp eq i32 %1796, 0
  br i1 %.not661, label %1797, label %1798

1797:                                             ; preds = %1793, %1787
  br label %1798

1798:                                             ; preds = %1793, %1797
  %.str.4.sink1492 = phi ptr [ @.str.4, %1797 ], [ @.str, %1793 ]
  store i32 %1788, ptr %1419, align 4, !tbaa !5
  %1799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = load i32, ptr %1365, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror(i32 noundef %1801, ptr noundef nonnull @.str.3) #13
  %1803 = load i32, ptr %1365, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror_debug(i32 noundef %1803, ptr noundef nonnull @.str.3) #13
  %1805 = load i32, ptr %1419, align 4, !tbaa !5
  %1806 = call ptr @strerror(i32 noundef %1805) #13
  %1807 = load i32, ptr %1419, align 4, !tbaa !5
  %1808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1799, ptr noundef nonnull %.str.4.sink1492, i32 noundef %1800, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 290, ptr noundef %1802, ptr noundef %1804, ptr noundef %1806, i32 noundef %1807) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1809:                                             ; preds = %1782
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #13
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %6) #13
  %1810 = add nsw i32 %1783, 2
  store i32 %1810, ptr @test_count, align 4, !tbaa !5
  %1811 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %1554, ptr noundef nonnull %6) #13
  %1812 = icmp eq i32 %1811, -1
  br i1 %1812, label %1813, label %1835

1813:                                             ; preds = %1809
  %1814 = load i32, ptr %1419, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = call i32 @s2n_print_stacktrace(ptr noundef %1815) #13
  %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) #13
  %1822 = call i32 @isatty(i32 noundef %1821) #13
  %.not801 = icmp eq i32 %1822, 0
  br i1 %.not801, label %1823, label %1824

1823:                                             ; preds = %1819, %1813
  br label %1824

1824:                                             ; preds = %1819, %1823
  %.str.4.sink1501 = phi ptr [ @.str.4, %1823 ], [ @.str, %1819 ]
  store i32 %1814, ptr %1419, 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 %1365, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror(i32 noundef %1827, ptr noundef nonnull @.str.3) #13
  %1829 = load i32, ptr %1365, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror_debug(i32 noundef %1829, ptr noundef nonnull @.str.3) #13
  %1831 = load i32, ptr %1419, align 4, !tbaa !5
  %1832 = call ptr @strerror(i32 noundef %1831) #13
  %1833 = load i32, ptr %1419, align 4, !tbaa !5
  %1834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1825, ptr noundef nonnull %.str.4.sink1501, i32 noundef %1826, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 292, ptr noundef %1828, ptr noundef %1830, ptr noundef %1832, i32 noundef %1833) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1835:                                             ; preds = %1809
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = add nsw i32 %1836, 1
  store i32 %1837, ptr @test_count, align 4, !tbaa !5
  %1838 = load i16, ptr %6, align 2, !tbaa !58
  %1839 = zext i16 %1838 to i32
  %1840 = call i32 @s2n_extensions_server_key_share_send_size(ptr noundef nonnull %1502) #13
  %1841 = add nsw i32 %1840, -4
  %1842 = icmp eq i32 %1841, %1839
  br i1 %1842, label %1865, label %1843

1843:                                             ; preds = %1835
  %1844 = load i32, ptr %1419, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = call i32 @s2n_print_stacktrace(ptr noundef %1845) #13
  %1847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1848 = trunc nuw i8 %1847 to i1
  br i1 %1848, label %1849, label %1853

1849:                                             ; preds = %1843
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = call i32 @fileno(ptr noundef %1850) #13
  %1852 = call i32 @isatty(i32 noundef %1851) #13
  %.not662 = icmp eq i32 %1852, 0
  br i1 %.not662, label %1853, label %1854

1853:                                             ; preds = %1849, %1843
  br label %1854

1854:                                             ; preds = %1849, %1853
  %.str.4.sink1510 = phi ptr [ @.str.4, %1853 ], [ @.str, %1849 ]
  store i32 %1844, ptr %1419, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = load i32, ptr %1365, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror(i32 noundef %1857, ptr noundef nonnull @.str.3) #13
  %1859 = load i32, ptr %1365, align 4, !tbaa !5
  %1860 = call ptr @s2n_strerror_debug(i32 noundef %1859, ptr noundef nonnull @.str.3) #13
  %1861 = load i32, ptr %1419, align 4, !tbaa !5
  %1862 = call ptr @strerror(i32 noundef %1861) #13
  %1863 = load i32, ptr %1419, align 4, !tbaa !5
  %1864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1855, ptr noundef nonnull %.str.4.sink1510, i32 noundef %1856, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 292, ptr noundef %1858, ptr noundef %1860, ptr noundef %1862, i32 noundef %1863) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1865:                                             ; preds = %1835
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %6) #13
  %1866 = getelementptr inbounds i8, ptr %1529, i64 704
  store ptr %365, ptr %1866, align 8, !tbaa !49
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = add nsw i32 %1867, 1
  store i32 %1868, ptr @test_count, align 4, !tbaa !5
  %1869 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %1866) #13
  %1870 = icmp eq i32 %1869, -1
  br i1 %1870, label %1871, label %1893

1871:                                             ; preds = %1865
  %1872 = load i32, ptr %1419, align 4, !tbaa !5
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @s2n_print_stacktrace(ptr noundef %1873) #13
  %1875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1876 = trunc nuw i8 %1875 to i1
  br i1 %1876, label %1877, label %1881

1877:                                             ; preds = %1871
  %1878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1879 = call i32 @fileno(ptr noundef %1878) #13
  %1880 = call i32 @isatty(i32 noundef %1879) #13
  %.not800 = icmp eq i32 %1880, 0
  br i1 %.not800, label %1881, label %1882

1881:                                             ; preds = %1877, %1871
  br label %1882

1882:                                             ; preds = %1877, %1881
  %.str.4.sink1519 = phi ptr [ @.str.4, %1881 ], [ @.str, %1877 ]
  store i32 %1872, ptr %1419, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %1885 = load i32, ptr %1365, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror(i32 noundef %1885, ptr noundef nonnull @.str.3) #13
  %1887 = load i32, ptr %1365, align 4, !tbaa !5
  %1888 = call ptr @s2n_strerror_debug(i32 noundef %1887, ptr noundef nonnull @.str.3) #13
  %1889 = load i32, ptr %1419, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #13
  %1891 = load i32, ptr %1419, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1883, ptr noundef nonnull %.str.4.sink1519, i32 noundef %1884, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 295, ptr noundef %1886, ptr noundef %1888, ptr noundef %1890, i32 noundef %1891) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1893:                                             ; preds = %1865
  %1894 = getelementptr inbounds i8, ptr %1529, i64 1650
  %1895 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %1894, ptr noundef nonnull @hello_retry_req_random, i64 noundef 32) #13
  %.not663.not.not = icmp eq ptr %1895, null
  br i1 %.not663.not.not, label %.thread853, label %1902

.thread853:                                       ; preds = %1893
  %1896 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.89, ptr %1896, align 8, !tbaa !55
  %1897 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.89, i64 21), i32 noundef 47) #17
  %.not664 = icmp eq ptr %1897, null
  %1898 = getelementptr inbounds i8, ptr %1897, i64 1
  %1899 = select i1 %.not664, ptr getelementptr inbounds (i8, ptr @.str.89, i64 21), ptr %1898
  %1900 = getelementptr inbounds i8, ptr %1896, i64 8
  store ptr %1899, ptr %1900, align 8, !tbaa !57
  store i32 402653193, ptr %1365, align 4, !tbaa !5
  %1901 = call i32 @s2n_calculate_stacktrace() #13
  br label %.thread855

1902:                                             ; preds = %1893
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = add nsw i32 %1903, 1
  store i32 %1904, ptr @test_count, align 4, !tbaa !5
  %1905 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %1529, i8 noundef zeroext 34) #13
  %1906 = icmp eq i32 %1905, -1
  br i1 %1906, label %1907, label %1929

1907:                                             ; preds = %1902
  %1908 = load i32, ptr %1419, align 4, !tbaa !5
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = call i32 @s2n_print_stacktrace(ptr noundef %1909) #13
  %1911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1912 = trunc nuw i8 %1911 to i1
  br i1 %1912, label %1913, label %1917

1913:                                             ; preds = %1907
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = call i32 @fileno(ptr noundef %1914) #13
  %1916 = call i32 @isatty(i32 noundef %1915) #13
  %.not799 = icmp eq i32 %1916, 0
  br i1 %.not799, label %1917, label %1918

1917:                                             ; preds = %1913, %1907
  br label %1918

1918:                                             ; preds = %1913, %1917
  %.str.4.sink1528 = phi ptr [ @.str.4, %1917 ], [ @.str, %1913 ]
  store i32 %1908, ptr %1419, align 4, !tbaa !5
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = load i32, ptr %1365, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror(i32 noundef %1921, ptr noundef nonnull @.str.3) #13
  %1923 = load i32, ptr %1365, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror_debug(i32 noundef %1923, ptr noundef nonnull @.str.3) #13
  %1925 = load i32, ptr %1419, align 4, !tbaa !5
  %1926 = call ptr @strerror(i32 noundef %1925) #13
  %1927 = load i32, ptr %1419, align 4, !tbaa !5
  %1928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1919, ptr noundef nonnull %.str.4.sink1528, i32 noundef %1920, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 299, ptr noundef %1922, ptr noundef %1924, ptr noundef %1926, i32 noundef %1927) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1929:                                             ; preds = %1902
  %1930 = load i32, ptr @test_count, align 4, !tbaa !5
  %1931 = add nsw i32 %1930, 1
  store i32 %1931, ptr @test_count, align 4, !tbaa !5
  %1932 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %1529) #13
  %1933 = icmp eq i32 %1932, -1
  br i1 %1933, label %1934, label %1956

1934:                                             ; preds = %1929
  %1935 = load i32, ptr %1419, align 4, !tbaa !5
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = call i32 @s2n_print_stacktrace(ptr noundef %1936) #13
  %1938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1939 = trunc nuw i8 %1938 to i1
  br i1 %1939, label %1940, label %1944

1940:                                             ; preds = %1934
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = call i32 @fileno(ptr noundef %1941) #13
  %1943 = call i32 @isatty(i32 noundef %1942) #13
  %.not798 = icmp eq i32 %1943, 0
  br i1 %.not798, label %1944, label %1945

1944:                                             ; preds = %1940, %1934
  br label %1945

1945:                                             ; preds = %1940, %1944
  %.str.4.sink1537 = phi ptr [ @.str.4, %1944 ], [ @.str, %1940 ]
  store i32 %1935, ptr %1419, align 4, !tbaa !5
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = load i32, ptr %1365, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror(i32 noundef %1948, ptr noundef nonnull @.str.3) #13
  %1950 = load i32, ptr %1365, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror_debug(i32 noundef %1950, ptr noundef nonnull @.str.3) #13
  %1952 = load i32, ptr %1419, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #13
  %1954 = load i32, ptr %1419, align 4, !tbaa !5
  %1955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1946, ptr noundef nonnull %.str.4.sink1537, i32 noundef %1947, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 302, ptr noundef %1949, ptr noundef %1951, ptr noundef %1953, i32 noundef %1954) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1956:                                             ; preds = %1929
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = add nsw i32 %1957, 1
  store i32 %1958, ptr @test_count, align 4, !tbaa !5
  %1959 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %1529, i8 noundef zeroext 34) #13
  %1960 = call zeroext i1 @s2n_result_is_ok(i32 %1959)
  br i1 %1960, label %1983, label %1961

1961:                                             ; preds = %1956
  %1962 = load i32, ptr %1419, align 4, !tbaa !5
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = call i32 @s2n_print_stacktrace(ptr noundef %1963) #13
  %1965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1966 = trunc nuw i8 %1965 to i1
  br i1 %1966, label %1967, label %1971

1967:                                             ; preds = %1961
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = call i32 @fileno(ptr noundef %1968) #13
  %1970 = call i32 @isatty(i32 noundef %1969) #13
  %.not665 = icmp eq i32 %1970, 0
  br i1 %.not665, label %1971, label %1972

1971:                                             ; preds = %1967, %1961
  br label %1972

1972:                                             ; preds = %1967, %1971
  %.str.4.sink1546 = phi ptr [ @.str.4, %1971 ], [ @.str, %1967 ]
  store i32 %1962, ptr %1419, align 4, !tbaa !5
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = load i32, ptr @test_count, align 4, !tbaa !5
  %1975 = load i32, ptr %1365, align 4, !tbaa !5
  %1976 = call ptr @s2n_strerror(i32 noundef %1975, ptr noundef nonnull @.str.3) #13
  %1977 = load i32, ptr %1365, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror_debug(i32 noundef %1977, ptr noundef nonnull @.str.3) #13
  %1979 = load i32, ptr %1419, align 4, !tbaa !5
  %1980 = call ptr @strerror(i32 noundef %1979) #13
  %1981 = load i32, ptr %1419, align 4, !tbaa !5
  %1982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1973, ptr noundef nonnull %.str.4.sink1546, i32 noundef %1974, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.2, i32 noundef 303, ptr noundef %1976, ptr noundef %1978, ptr noundef %1980, i32 noundef %1981) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1983:                                             ; preds = %1956
  %1984 = load i32, ptr @test_count, align 4, !tbaa !5
  %1985 = add nsw i32 %1984, 1
  store i32 %1985, ptr @test_count, align 4, !tbaa !5
  %1986 = call i32 @s2n_set_hello_retry_required(ptr noundef nonnull %1529) #13
  %1987 = icmp eq i32 %1986, -1
  br i1 %1987, label %1988, label %2010

1988:                                             ; preds = %1983
  %1989 = load i32, ptr %1419, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @s2n_print_stacktrace(ptr noundef %1990) #13
  %1992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1993 = trunc nuw i8 %1992 to i1
  br i1 %1993, label %1994, label %1998

1994:                                             ; preds = %1988
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @fileno(ptr noundef %1995) #13
  %1997 = call i32 @isatty(i32 noundef %1996) #13
  %.not797 = icmp eq i32 %1997, 0
  br i1 %.not797, label %1998, label %1999

1998:                                             ; preds = %1994, %1988
  br label %1999

1999:                                             ; preds = %1994, %1998
  %.str.4.sink1555 = phi ptr [ @.str.4, %1998 ], [ @.str, %1994 ]
  store i32 %1989, ptr %1419, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = load i32, ptr %1365, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror(i32 noundef %2002, ptr noundef nonnull @.str.3) #13
  %2004 = load i32, ptr %1365, align 4, !tbaa !5
  %2005 = call ptr @s2n_strerror_debug(i32 noundef %2004, ptr noundef nonnull @.str.3) #13
  %2006 = load i32, ptr %1419, align 4, !tbaa !5
  %2007 = call ptr @strerror(i32 noundef %2006) #13
  %2008 = load i32, ptr %1419, align 4, !tbaa !5
  %2009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef nonnull %.str.4.sink1555, i32 noundef %2001, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.2, i32 noundef 304, ptr noundef %2003, ptr noundef %2005, ptr noundef %2007, i32 noundef %2008) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2010:                                             ; preds = %1983
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = add nsw i32 %2011, 1
  store i32 %2012, ptr @test_count, align 4, !tbaa !5
  %2013 = call i32 @s2n_extensions_server_key_share_recv(ptr noundef nonnull %1529, ptr noundef nonnull %1554) #13
  %2014 = icmp eq i32 %2013, -1
  br i1 %2014, label %2015, label %2037

2015:                                             ; preds = %2010
  %2016 = load i32, ptr %1419, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @s2n_print_stacktrace(ptr noundef %2017) #13
  %2019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2020 = trunc nuw i8 %2019 to i1
  br i1 %2020, label %2021, label %2025

2021:                                             ; preds = %2015
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = call i32 @fileno(ptr noundef %2022) #13
  %2024 = call i32 @isatty(i32 noundef %2023) #13
  %.not796 = icmp eq i32 %2024, 0
  br i1 %.not796, label %2025, label %2026

2025:                                             ; preds = %2021, %2015
  br label %2026

2026:                                             ; preds = %2021, %2025
  %.str.4.sink1564 = phi ptr [ @.str.4, %2025 ], [ @.str, %2021 ]
  store i32 %2016, ptr %1419, align 4, !tbaa !5
  %2027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = load i32, ptr %1365, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror(i32 noundef %2029, ptr noundef nonnull @.str.3) #13
  %2031 = load i32, ptr %1365, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror_debug(i32 noundef %2031, ptr noundef nonnull @.str.3) #13
  %2033 = load i32, ptr %1419, align 4, !tbaa !5
  %2034 = call ptr @strerror(i32 noundef %2033) #13
  %2035 = load i32, ptr %1419, align 4, !tbaa !5
  %2036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2027, ptr noundef nonnull %.str.4.sink1564, i32 noundef %2028, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.2, i32 noundef 307, ptr noundef %2030, ptr noundef %2032, ptr noundef %2034, i32 noundef %2035) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2037:                                             ; preds = %2010
  %2038 = load i32, ptr @test_count, align 4, !tbaa !5
  %2039 = add nsw i32 %2038, 1
  store i32 %2039, ptr @test_count, align 4, !tbaa !5
  %2040 = getelementptr inbounds i8, ptr %1502, i64 2044
  %2041 = load i32, ptr %2040, align 4, !tbaa !50
  %2042 = getelementptr inbounds i8, ptr %1502, i64 2040
  %2043 = load i32, ptr %2042, align 8, !tbaa !51
  %2044 = icmp eq i32 %2041, %2043
  br i1 %2044, label %2067, label %2045

2045:                                             ; preds = %2037
  %2046 = load i32, ptr %1419, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = call i32 @s2n_print_stacktrace(ptr noundef %2047) #13
  %2049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2050 = trunc nuw i8 %2049 to i1
  br i1 %2050, label %2051, label %2055

2051:                                             ; preds = %2045
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = call i32 @fileno(ptr noundef %2052) #13
  %2054 = call i32 @isatty(i32 noundef %2053) #13
  %.not666 = icmp eq i32 %2054, 0
  br i1 %.not666, label %2055, label %2056

2055:                                             ; preds = %2051, %2045
  br label %2056

2056:                                             ; preds = %2051, %2055
  %.str.4.sink1573 = phi ptr [ @.str.4, %2055 ], [ @.str, %2051 ]
  store i32 %2046, ptr %1419, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = load i32, ptr %1365, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror(i32 noundef %2059, ptr noundef nonnull @.str.3) #13
  %2061 = load i32, ptr %1365, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror_debug(i32 noundef %2061, ptr noundef nonnull @.str.3) #13
  %2063 = load i32, ptr %1419, align 4, !tbaa !5
  %2064 = call ptr @strerror(i32 noundef %2063) #13
  %2065 = load i32, ptr %1419, align 4, !tbaa !5
  %2066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2057, ptr noundef nonnull %.str.4.sink1573, i32 noundef %2058, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.2, i32 noundef 308, ptr noundef %2060, ptr noundef %2062, ptr noundef %2064, i32 noundef %2065) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2067:                                             ; preds = %2037
  %2068 = add nsw i32 %2038, 2
  store i32 %2068, ptr @test_count, align 4, !tbaa !5
  %2069 = getelementptr inbounds i8, ptr %1529, i64 656
  %2070 = load ptr, ptr %2069, align 8, !tbaa !48
  %2071 = icmp eq ptr %2070, null
  br i1 %2071, label %2072, label %2094

2072:                                             ; preds = %2067
  %2073 = load i32, ptr %1419, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = call i32 @s2n_print_stacktrace(ptr noundef %2074) #13
  %2076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2077 = trunc nuw i8 %2076 to i1
  br i1 %2077, label %2078, label %2082

2078:                                             ; preds = %2072
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = call i32 @fileno(ptr noundef %2079) #13
  %2081 = call i32 @isatty(i32 noundef %2080) #13
  %.not795 = icmp eq i32 %2081, 0
  br i1 %.not795, label %2082, label %2083

2082:                                             ; preds = %2078, %2072
  br label %2083

2083:                                             ; preds = %2078, %2082
  %.str.4.sink1582 = phi ptr [ @.str.4, %2082 ], [ @.str, %2078 ]
  store i32 %2073, ptr %1419, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = load i32, ptr %1365, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror(i32 noundef %2086, ptr noundef nonnull @.str.3) #13
  %2088 = load i32, ptr %1365, align 4, !tbaa !5
  %2089 = call ptr @s2n_strerror_debug(i32 noundef %2088, ptr noundef nonnull @.str.3) #13
  %2090 = load i32, ptr %1419, align 4, !tbaa !5
  %2091 = call ptr @strerror(i32 noundef %2090) #13
  %2092 = load i32, ptr %1419, align 4, !tbaa !5
  %2093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef nonnull %.str.4.sink1582, i32 noundef %2085, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.2, i32 noundef 311, ptr noundef %2087, ptr noundef %2089, ptr noundef %2091, i32 noundef %2092) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2094:                                             ; preds = %2067
  %2095 = add nsw i32 %2038, 3
  store i32 %2095, ptr @test_count, align 4, !tbaa !5
  %2096 = call i32 @s2n_connection_free(ptr noundef nonnull %1502) #13
  %2097 = icmp eq i32 %2096, -1
  br i1 %2097, label %2098, label %2120

2098:                                             ; preds = %2094
  %2099 = load i32, ptr %1419, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = call i32 @s2n_print_stacktrace(ptr noundef %2100) #13
  %2102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2103 = trunc nuw i8 %2102 to i1
  br i1 %2103, label %2104, label %2108

2104:                                             ; preds = %2098
  %2105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2106 = call i32 @fileno(ptr noundef %2105) #13
  %2107 = call i32 @isatty(i32 noundef %2106) #13
  %.not794 = icmp eq i32 %2107, 0
  br i1 %.not794, label %2108, label %2109

2108:                                             ; preds = %2104, %2098
  br label %2109

2109:                                             ; preds = %2104, %2108
  %.str.4.sink1591 = phi ptr [ @.str.4, %2108 ], [ @.str, %2104 ]
  store i32 %2099, ptr %1419, align 4, !tbaa !5
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = load i32, ptr %1365, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror(i32 noundef %2112, ptr noundef nonnull @.str.3) #13
  %2114 = load i32, ptr %1365, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror_debug(i32 noundef %2114, ptr noundef nonnull @.str.3) #13
  %2116 = load i32, ptr %1419, align 4, !tbaa !5
  %2117 = call ptr @strerror(i32 noundef %2116) #13
  %2118 = load i32, ptr %1419, align 4, !tbaa !5
  %2119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2110, ptr noundef nonnull %.str.4.sink1591, i32 noundef %2111, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 313, ptr noundef %2113, ptr noundef %2115, ptr noundef %2117, i32 noundef %2118) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2120:                                             ; preds = %2094
  %2121 = load i32, ptr @test_count, align 4, !tbaa !5
  %2122 = add nsw i32 %2121, 1
  store i32 %2122, ptr @test_count, align 4, !tbaa !5
  %2123 = call i32 @s2n_connection_free(ptr noundef nonnull %1529) #13
  %2124 = icmp eq i32 %2123, -1
  br i1 %2124, label %2125, label %2147

2125:                                             ; preds = %2120
  %2126 = load i32, ptr %1419, align 4, !tbaa !5
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = call i32 @s2n_print_stacktrace(ptr noundef %2127) #13
  %2129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2130 = trunc nuw i8 %2129 to i1
  br i1 %2130, label %2131, label %2135

2131:                                             ; preds = %2125
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = call i32 @fileno(ptr noundef %2132) #13
  %2134 = call i32 @isatty(i32 noundef %2133) #13
  %.not793 = icmp eq i32 %2134, 0
  br i1 %.not793, label %2135, label %2136

2135:                                             ; preds = %2131, %2125
  br label %2136

2136:                                             ; preds = %2131, %2135
  %.str.4.sink1600 = phi ptr [ @.str.4, %2135 ], [ @.str, %2131 ]
  store i32 %2126, ptr %1419, align 4, !tbaa !5
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = load i32, ptr %1365, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror(i32 noundef %2139, ptr noundef nonnull @.str.3) #13
  %2141 = load i32, ptr %1365, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror_debug(i32 noundef %2141, ptr noundef nonnull @.str.3) #13
  %2143 = load i32, ptr %1419, align 4, !tbaa !5
  %2144 = call ptr @strerror(i32 noundef %2143) #13
  %2145 = load i32, ptr %1419, align 4, !tbaa !5
  %2146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2137, ptr noundef nonnull %.str.4.sink1600, i32 noundef %2138, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.2, i32 noundef 314, ptr noundef %2140, ptr noundef %2142, ptr noundef %2144, i32 noundef %2145) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2147:                                             ; preds = %2120
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = add nsw i32 %2148, 1
  store i32 %2149, ptr @test_count, align 4, !tbaa !5
  %2150 = call ptr @s2n_config_new() #13
  %2151 = icmp eq ptr %2150, null
  br i1 %2151, label %2152, label %2174

2152:                                             ; preds = %2147
  %2153 = load i32, ptr %1419, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = call i32 @s2n_print_stacktrace(ptr noundef %2154) #13
  %2156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2157 = trunc nuw i8 %2156 to i1
  br i1 %2157, label %2158, label %2162

2158:                                             ; preds = %2152
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = call i32 @fileno(ptr noundef %2159) #13
  %2161 = call i32 @isatty(i32 noundef %2160) #13
  %.not792 = icmp eq i32 %2161, 0
  br i1 %.not792, label %2162, label %2163

2162:                                             ; preds = %2158, %2152
  br label %2163

2163:                                             ; preds = %2158, %2162
  %.str.4.sink1609 = phi ptr [ @.str.4, %2162 ], [ @.str, %2158 ]
  store i32 %2153, ptr %1419, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = load i32, ptr @test_count, align 4, !tbaa !5
  %2166 = load i32, ptr %1365, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef nonnull @.str.3) #13
  %2168 = load i32, ptr %1365, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror_debug(i32 noundef %2168, ptr noundef nonnull @.str.3) #13
  %2170 = load i32, ptr %1419, align 4, !tbaa !5
  %2171 = call ptr @strerror(i32 noundef %2170) #13
  %2172 = load i32, ptr %1419, align 4, !tbaa !5
  %2173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2164, ptr noundef nonnull %.str.4.sink1609, i32 noundef %2165, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 323, ptr noundef %2167, ptr noundef %2169, ptr noundef %2171, i32 noundef %2172) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2174:                                             ; preds = %2147
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = add nsw i32 %2175, 1
  store i32 %2176, ptr @test_count, align 4, !tbaa !5
  %2177 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2178 = icmp eq ptr %2177, null
  br i1 %2178, label %2179, label %2201

2179:                                             ; preds = %2174
  %2180 = load i32, ptr %1419, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181) #13
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2184 = trunc nuw i8 %2183 to i1
  br i1 %2184, label %2185, label %2189

2185:                                             ; preds = %2179
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #13
  %2188 = call i32 @isatty(i32 noundef %2187) #13
  %.not791 = icmp eq i32 %2188, 0
  br i1 %.not791, label %2189, label %2190

2189:                                             ; preds = %2185, %2179
  br label %2190

2190:                                             ; preds = %2185, %2189
  %.str.4.sink1618 = phi ptr [ @.str.4, %2189 ], [ @.str, %2185 ]
  store i32 %2180, ptr %1419, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = load i32, ptr %1365, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror(i32 noundef %2193, ptr noundef nonnull @.str.3) #13
  %2195 = load i32, ptr %1365, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef nonnull @.str.3) #13
  %2197 = load i32, ptr %1419, align 4, !tbaa !5
  %2198 = call ptr @strerror(i32 noundef %2197) #13
  %2199 = load i32, ptr %1419, align 4, !tbaa !5
  %2200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef nonnull %.str.4.sink1618, i32 noundef %2192, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 324, ptr noundef %2194, ptr noundef %2196, ptr noundef %2198, i32 noundef %2199) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2201:                                             ; preds = %2174
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = add nsw i32 %2202, 1
  store i32 %2203, ptr @test_count, align 4, !tbaa !5
  %2204 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2177, ptr noundef nonnull %2150) #13
  %2205 = icmp eq i32 %2204, -1
  br i1 %2205, label %2206, label %2228

2206:                                             ; preds = %2201
  %2207 = load i32, ptr %1419, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @s2n_print_stacktrace(ptr noundef %2208) #13
  %2210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2211 = trunc nuw i8 %2210 to i1
  br i1 %2211, label %2212, label %2216

2212:                                             ; preds = %2206
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = call i32 @fileno(ptr noundef %2213) #13
  %2215 = call i32 @isatty(i32 noundef %2214) #13
  %.not790 = icmp eq i32 %2215, 0
  br i1 %.not790, label %2216, label %2217

2216:                                             ; preds = %2212, %2206
  br label %2217

2217:                                             ; preds = %2212, %2216
  %.str.4.sink1627 = phi ptr [ @.str.4, %2216 ], [ @.str, %2212 ]
  store i32 %2207, ptr %1419, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = load i32, ptr %1365, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef nonnull @.str.3) #13
  %2222 = load i32, ptr %1365, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror_debug(i32 noundef %2222, ptr noundef nonnull @.str.3) #13
  %2224 = load i32, ptr %1419, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #13
  %2226 = load i32, ptr %1419, align 4, !tbaa !5
  %2227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2218, ptr noundef nonnull %.str.4.sink1627, i32 noundef %2219, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.2, i32 noundef 325, ptr noundef %2221, ptr noundef %2223, ptr noundef %2225, i32 noundef %2226) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2228:                                             ; preds = %2201
  %2229 = getelementptr inbounds i8, ptr %2177, i64 219
  store i8 34, ptr %2229, align 1, !tbaa !59
  %2230 = getelementptr inbounds i8, ptr %2177, i64 232
  %2231 = load ptr, ptr %2230, align 8, !tbaa !42
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256, ptr %2231, align 8, !tbaa !43
  %2232 = getelementptr inbounds i8, ptr %2177, i64 656
  store ptr %365, ptr %2232, align 8, !tbaa !48
  %2233 = getelementptr inbounds i8, ptr %2177, i64 704
  store ptr %365, ptr %2233, align 8, !tbaa !49
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = add nsw i32 %2234, 1
  store i32 %2235, ptr @test_count, align 4, !tbaa !5
  %2236 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %2233) #13
  %2237 = icmp eq i32 %2236, -1
  br i1 %2237, label %2238, label %2260

2238:                                             ; preds = %2228
  %2239 = load i32, ptr %1419, align 4, !tbaa !5
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = call i32 @s2n_print_stacktrace(ptr noundef %2240) #13
  %2242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2243 = trunc nuw i8 %2242 to i1
  br i1 %2243, label %2244, label %2248

2244:                                             ; preds = %2238
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = call i32 @fileno(ptr noundef %2245) #13
  %2247 = call i32 @isatty(i32 noundef %2246) #13
  %.not789 = icmp eq i32 %2247, 0
  br i1 %.not789, label %2248, label %2249

2248:                                             ; preds = %2244, %2238
  br label %2249

2249:                                             ; preds = %2244, %2248
  %.str.4.sink1636 = phi ptr [ @.str.4, %2248 ], [ @.str, %2244 ]
  store i32 %2239, ptr %1419, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = load i32, ptr %1365, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror(i32 noundef %2252, ptr noundef nonnull @.str.3) #13
  %2254 = load i32, ptr %1365, align 4, !tbaa !5
  %2255 = call ptr @s2n_strerror_debug(i32 noundef %2254, ptr noundef nonnull @.str.3) #13
  %2256 = load i32, ptr %1419, align 4, !tbaa !5
  %2257 = call ptr @strerror(i32 noundef %2256) #13
  %2258 = load i32, ptr %1419, align 4, !tbaa !5
  %2259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2250, ptr noundef nonnull %.str.4.sink1636, i32 noundef %2251, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 331, ptr noundef %2253, ptr noundef %2255, ptr noundef %2257, i32 noundef %2258) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2260:                                             ; preds = %2228
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %2261 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %7, ptr noundef nonnull @.str.98) #13
  %2262 = call zeroext i1 @s2n_result_is_ok(i32 %2261)
  br i1 %2262, label %2264, label %.thread859

.thread859:                                       ; preds = %2260
  %2263 = call i32 @s2n_free(ptr noundef nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #13
  br label %.thread855

2264:                                             ; preds = %2260
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 24, i1 false)
  %2265 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %8, ptr noundef nonnull @.str.99) #13
  %2266 = call zeroext i1 @s2n_result_is_ok(i32 %2265)
  br i1 %2266, label %2267, label %2680

2267:                                             ; preds = %2264
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false)
  %2268 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %9, ptr noundef nonnull @.str.100) #13
  %2269 = call zeroext i1 @s2n_result_is_ok(i32 %2268)
  br i1 %2269, label %2270, label %2678

2270:                                             ; preds = %2267
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = add nsw i32 %2271, 1
  store i32 %2272, ptr @test_count, align 4, !tbaa !5
  %2273 = call i32 @s2n_conn_update_handshake_hashes(ptr noundef nonnull %2177, ptr noundef nonnull %7) #13
  %2274 = icmp eq i32 %2273, -1
  br i1 %2274, label %2275, label %2297

2275:                                             ; preds = %2270
  %2276 = load i32, ptr %1419, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = call i32 @s2n_print_stacktrace(ptr noundef %2277) #13
  %2279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2280 = trunc nuw i8 %2279 to i1
  br i1 %2280, label %2281, label %2285

2281:                                             ; preds = %2275
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = call i32 @fileno(ptr noundef %2282) #13
  %2284 = call i32 @isatty(i32 noundef %2283) #13
  %.not788 = icmp eq i32 %2284, 0
  br i1 %.not788, label %2285, label %2286

2285:                                             ; preds = %2281, %2275
  br label %2286

2286:                                             ; preds = %2281, %2285
  %.str.4.sink1645 = phi ptr [ @.str.4, %2285 ], [ @.str, %2281 ]
  store i32 %2276, ptr %1419, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = load i32, ptr @test_count, align 4, !tbaa !5
  %2289 = load i32, ptr %1365, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror(i32 noundef %2289, ptr noundef nonnull @.str.3) #13
  %2291 = load i32, ptr %1365, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef nonnull @.str.3) #13
  %2293 = load i32, ptr %1419, align 4, !tbaa !5
  %2294 = call ptr @strerror(i32 noundef %2293) #13
  %2295 = load i32, ptr %1419, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2287, ptr noundef nonnull %.str.4.sink1645, i32 noundef %2288, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.2, i32 noundef 355, ptr noundef %2290, ptr noundef %2292, ptr noundef %2294, i32 noundef %2295) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2297:                                             ; preds = %2270
  call void @llvm.lifetime.start.p0(i64 592, ptr nonnull %10) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(592) %10, i8 0, i64 592, i1 false)
  %2298 = call i32 @s2n_tls13_keys_from_conn(ptr noundef nonnull %10, ptr noundef nonnull %2177) #13
  %2299 = icmp sgt i32 %2298, -1
  br i1 %2299, label %2300, label %2676

2300:                                             ; preds = %2297
  %2301 = getelementptr inbounds i8, ptr %10, i64 8
  %2302 = load i8, ptr %2301, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %12) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %12, i8 0, i64 56, i1 false)
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = add nsw i32 %2303, 1
  store i32 %2304, ptr @test_count, align 4, !tbaa !5
  %2305 = call i32 @s2n_hash_new(ptr noundef nonnull %12) #13
  %2306 = icmp eq i32 %2305, -1
  br i1 %2306, label %2307, label %2329

2307:                                             ; preds = %2300
  %2308 = load i32, ptr %1419, align 4, !tbaa !5
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = call i32 @s2n_print_stacktrace(ptr noundef %2309) #13
  %2311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2312 = trunc nuw i8 %2311 to i1
  br i1 %2312, label %2313, label %2317

2313:                                             ; preds = %2307
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = call i32 @fileno(ptr noundef %2314) #13
  %2316 = call i32 @isatty(i32 noundef %2315) #13
  %.not787 = icmp eq i32 %2316, 0
  br i1 %.not787, label %2317, label %2318

2317:                                             ; preds = %2313, %2307
  br label %2318

2318:                                             ; preds = %2313, %2317
  %.str.4.sink1654 = phi ptr [ @.str.4, %2317 ], [ @.str, %2313 ]
  store i32 %2308, ptr %1419, align 4, !tbaa !5
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = load i32, ptr @test_count, align 4, !tbaa !5
  %2321 = load i32, ptr %1365, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror(i32 noundef %2321, ptr noundef nonnull @.str.3) #13
  %2323 = load i32, ptr %1365, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror_debug(i32 noundef %2323, ptr noundef nonnull @.str.3) #13
  %2325 = load i32, ptr %1419, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #13
  %2327 = load i32, ptr %1419, align 4, !tbaa !5
  %2328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2319, ptr noundef nonnull %.str.4.sink1654, i32 noundef %2320, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.2, i32 noundef 362, ptr noundef %2322, ptr noundef %2324, ptr noundef %2326, i32 noundef %2327) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2329:                                             ; preds = %2300
  %2330 = getelementptr inbounds i8, ptr %10, i64 4
  %2331 = load i32, ptr %2330, align 4, !tbaa !62
  %2332 = call i32 @s2n_handshake_copy_hash_state(ptr noundef nonnull %2177, i32 noundef %2331, ptr noundef nonnull %12) #13
  %2333 = call zeroext i1 @s2n_result_is_ok(i32 %2332)
  br i1 %2333, label %2334, label %2674

2334:                                             ; preds = %2329
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %13, i8 0, i64 64, i1 false)
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %2336 = add nsw i32 %2335, 1
  store i32 %2336, ptr @test_count, align 4, !tbaa !5
  %2337 = zext i8 %2302 to i32
  %2338 = call i32 @s2n_hash_digest(ptr noundef nonnull %12, ptr noundef nonnull %13, i32 noundef %2337) #13
  %2339 = icmp eq i32 %2338, -1
  br i1 %2339, label %2340, label %2362

2340:                                             ; preds = %2334
  %2341 = load i32, ptr %1419, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = call i32 @s2n_print_stacktrace(ptr noundef %2342) #13
  %2344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2345 = trunc nuw i8 %2344 to i1
  br i1 %2345, label %2346, label %2350

2346:                                             ; preds = %2340
  %2347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2348 = call i32 @fileno(ptr noundef %2347) #13
  %2349 = call i32 @isatty(i32 noundef %2348) #13
  %.not786 = icmp eq i32 %2349, 0
  br i1 %.not786, label %2350, label %2351

2350:                                             ; preds = %2346, %2340
  br label %2351

2351:                                             ; preds = %2346, %2350
  %.str.4.sink1663 = phi ptr [ @.str.4, %2350 ], [ @.str, %2346 ]
  store i32 %2341, ptr %1419, align 4, !tbaa !5
  %2352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2353 = load i32, ptr @test_count, align 4, !tbaa !5
  %2354 = load i32, ptr %1365, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror(i32 noundef %2354, ptr noundef nonnull @.str.3) #13
  %2356 = load i32, ptr %1365, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror_debug(i32 noundef %2356, ptr noundef nonnull @.str.3) #13
  %2358 = load i32, ptr %1419, align 4, !tbaa !5
  %2359 = call ptr @strerror(i32 noundef %2358) #13
  %2360 = load i32, ptr %1419, align 4, !tbaa !5
  %2361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2352, ptr noundef nonnull %.str.4.sink1663, i32 noundef %2353, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.2, i32 noundef 366, ptr noundef %2355, ptr noundef %2357, ptr noundef %2359, i32 noundef %2360) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2362:                                             ; preds = %2334
  %2363 = load i32, ptr @test_count, align 4, !tbaa !5
  %2364 = add nsw i32 %2363, 1
  store i32 %2364, ptr @test_count, align 4, !tbaa !5
  %2365 = call i32 @s2n_blob_init(ptr noundef nonnull %11, ptr noundef nonnull %13, i32 noundef %2337) #13
  %2366 = icmp eq i32 %2365, -1
  br i1 %2366, label %2367, label %2389

2367:                                             ; preds = %2362
  %2368 = load i32, ptr %1419, align 4, !tbaa !5
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = call i32 @s2n_print_stacktrace(ptr noundef %2369) #13
  %2371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2372 = trunc nuw i8 %2371 to i1
  br i1 %2372, label %2373, label %2377

2373:                                             ; preds = %2367
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = call i32 @fileno(ptr noundef %2374) #13
  %2376 = call i32 @isatty(i32 noundef %2375) #13
  %.not785 = icmp eq i32 %2376, 0
  br i1 %.not785, label %2377, label %2378

2377:                                             ; preds = %2373, %2367
  br label %2378

2378:                                             ; preds = %2373, %2377
  %.str.4.sink1672 = phi ptr [ @.str.4, %2377 ], [ @.str, %2373 ]
  store i32 %2368, ptr %1419, align 4, !tbaa !5
  %2379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2380 = load i32, ptr @test_count, align 4, !tbaa !5
  %2381 = load i32, ptr %1365, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror(i32 noundef %2381, ptr noundef nonnull @.str.3) #13
  %2383 = load i32, ptr %1365, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror_debug(i32 noundef %2383, ptr noundef nonnull @.str.3) #13
  %2385 = load i32, ptr %1419, align 4, !tbaa !5
  %2386 = call ptr @strerror(i32 noundef %2385) #13
  %2387 = load i32, ptr %1419, align 4, !tbaa !5
  %2388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2379, ptr noundef nonnull %.str.4.sink1672, i32 noundef %2380, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.2, i32 noundef 368, ptr noundef %2382, ptr noundef %2384, ptr noundef %2386, i32 noundef %2387) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2389:                                             ; preds = %2362
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = add nsw i32 %2390, 1
  store i32 %2391, ptr @test_count, align 4, !tbaa !5
  %2392 = getelementptr inbounds i8, ptr %8, i64 8
  %2393 = load i32, ptr %2392, align 8, !tbaa !63
  %2394 = getelementptr inbounds i8, ptr %11, i64 8
  %2395 = load i32, ptr %2394, align 8, !tbaa !63
  %2396 = icmp eq i32 %2393, %2395
  br i1 %2396, label %2419, label %2397

2397:                                             ; preds = %2389
  %2398 = load i32, ptr %1419, align 4, !tbaa !5
  %2399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2400 = call i32 @s2n_print_stacktrace(ptr noundef %2399) #13
  %2401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2402 = trunc nuw i8 %2401 to i1
  br i1 %2402, label %2403, label %2407

2403:                                             ; preds = %2397
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = call i32 @fileno(ptr noundef %2404) #13
  %2406 = call i32 @isatty(i32 noundef %2405) #13
  %.not667 = icmp eq i32 %2406, 0
  br i1 %.not667, label %2407, label %2408

2407:                                             ; preds = %2403, %2397
  br label %2408

2408:                                             ; preds = %2403, %2407
  %.str.4.sink1681 = phi ptr [ @.str.4, %2407 ], [ @.str, %2403 ]
  store i32 %2398, ptr %1419, align 4, !tbaa !5
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = load i32, ptr @test_count, align 4, !tbaa !5
  %2411 = load i32, ptr %1365, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror(i32 noundef %2411, ptr noundef nonnull @.str.3) #13
  %2413 = load i32, ptr %1365, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror_debug(i32 noundef %2413, ptr noundef nonnull @.str.3) #13
  %2415 = load i32, ptr %1419, align 4, !tbaa !5
  %2416 = call ptr @strerror(i32 noundef %2415) #13
  %2417 = load i32, ptr %1419, align 4, !tbaa !5
  %2418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2409, ptr noundef nonnull %.str.4.sink1681, i32 noundef %2410, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.2, i32 noundef 369, ptr noundef %2412, ptr noundef %2414, ptr noundef %2416, i32 noundef %2417) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2419:                                             ; preds = %2389
  %.not668 = icmp eq i32 %2393, 0
  br i1 %.not668, label %2448, label %2420

2420:                                             ; preds = %2419
  %2421 = add nsw i32 %2390, 2
  store i32 %2421, ptr @test_count, align 4, !tbaa !5
  %2422 = load ptr, ptr %8, align 8, !tbaa !64
  %2423 = load ptr, ptr %11, align 8, !tbaa !64
  %2424 = zext i32 %2393 to i64
  %bcmp669 = call i32 @bcmp(ptr %2422, ptr %2423, i64 %2424)
  %2425 = icmp eq i32 %bcmp669, 0
  br i1 %2425, label %2448, label %2426

2426:                                             ; preds = %2420
  %2427 = load i32, ptr %1419, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @s2n_print_stacktrace(ptr noundef %2428) #13
  %2430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2431 = trunc nuw i8 %2430 to i1
  br i1 %2431, label %2432, label %2436

2432:                                             ; preds = %2426
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = call i32 @fileno(ptr noundef %2433) #13
  %2435 = call i32 @isatty(i32 noundef %2434) #13
  %.not670 = icmp eq i32 %2435, 0
  br i1 %.not670, label %2436, label %2437

2436:                                             ; preds = %2432, %2426
  br label %2437

2437:                                             ; preds = %2432, %2436
  %.str.4.sink1690 = phi ptr [ @.str.4, %2436 ], [ @.str, %2432 ]
  store i32 %2427, ptr %1419, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = load i32, ptr %1365, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror(i32 noundef %2440, ptr noundef nonnull @.str.3) #13
  %2442 = load i32, ptr %1365, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror_debug(i32 noundef %2442, ptr noundef nonnull @.str.3) #13
  %2444 = load i32, ptr %1419, align 4, !tbaa !5
  %2445 = call ptr @strerror(i32 noundef %2444) #13
  %2446 = load i32, ptr %1419, align 4, !tbaa !5
  %2447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2438, ptr noundef nonnull %.str.4.sink1690, i32 noundef %2439, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.2, i32 noundef 369, ptr noundef %2441, ptr noundef %2443, ptr noundef %2445, i32 noundef %2446) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2448:                                             ; preds = %2419, %2420
  %2449 = phi i32 [ %2391, %2419 ], [ %2421, %2420 ]
  %2450 = add nsw i32 %2449, 1
  store i32 %2450, ptr @test_count, align 4, !tbaa !5
  %2451 = call i32 @s2n_server_hello_retry_recreate_transcript(ptr noundef nonnull %2177) #13
  %2452 = icmp eq i32 %2451, -1
  br i1 %2452, label %2453, label %2475

2453:                                             ; preds = %2448
  %2454 = load i32, ptr %1419, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @s2n_print_stacktrace(ptr noundef %2455) #13
  %2457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2458 = trunc nuw i8 %2457 to i1
  br i1 %2458, label %2459, label %2463

2459:                                             ; preds = %2453
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = call i32 @fileno(ptr noundef %2460) #13
  %2462 = call i32 @isatty(i32 noundef %2461) #13
  %.not784 = icmp eq i32 %2462, 0
  br i1 %.not784, label %2463, label %2464

2463:                                             ; preds = %2459, %2453
  br label %2464

2464:                                             ; preds = %2459, %2463
  %.str.4.sink1699 = phi ptr [ @.str.4, %2463 ], [ @.str, %2459 ]
  store i32 %2454, ptr %1419, align 4, !tbaa !5
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = load i32, ptr %1365, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror(i32 noundef %2467, ptr noundef nonnull @.str.3) #13
  %2469 = load i32, ptr %1365, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror_debug(i32 noundef %2469, ptr noundef nonnull @.str.3) #13
  %2471 = load i32, ptr %1419, align 4, !tbaa !5
  %2472 = call ptr @strerror(i32 noundef %2471) #13
  %2473 = load i32, ptr %1419, align 4, !tbaa !5
  %2474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2465, ptr noundef nonnull %.str.4.sink1699, i32 noundef %2466, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.2, i32 noundef 371, ptr noundef %2468, ptr noundef %2470, ptr noundef %2472, i32 noundef %2473) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2475:                                             ; preds = %2448
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %14) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %14, i8 0, i64 56, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %15, i8 0, i64 64, i1 false)
  %2476 = load i32, ptr @test_count, align 4, !tbaa !5
  %2477 = add nsw i32 %2476, 1
  store i32 %2477, ptr @test_count, align 4, !tbaa !5
  %2478 = call i32 @s2n_hash_new(ptr noundef nonnull %14) #13
  %2479 = icmp eq i32 %2478, -1
  br i1 %2479, label %2480, label %2502

2480:                                             ; preds = %2475
  %2481 = load i32, ptr %1419, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = call i32 @s2n_print_stacktrace(ptr noundef %2482) #13
  %2484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2485 = trunc nuw i8 %2484 to i1
  br i1 %2485, label %2486, label %2490

2486:                                             ; preds = %2480
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = call i32 @fileno(ptr noundef %2487) #13
  %2489 = call i32 @isatty(i32 noundef %2488) #13
  %.not783 = icmp eq i32 %2489, 0
  br i1 %.not783, label %2490, label %2491

2490:                                             ; preds = %2486, %2480
  br label %2491

2491:                                             ; preds = %2486, %2490
  %.str.4.sink1708 = phi ptr [ @.str.4, %2490 ], [ @.str, %2486 ]
  store i32 %2481, ptr %1419, align 4, !tbaa !5
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = load i32, ptr %1365, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef nonnull @.str.3) #13
  %2496 = load i32, ptr %1365, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef nonnull @.str.3) #13
  %2498 = load i32, ptr %1419, align 4, !tbaa !5
  %2499 = call ptr @strerror(i32 noundef %2498) #13
  %2500 = load i32, ptr %1419, align 4, !tbaa !5
  %2501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2492, ptr noundef nonnull %.str.4.sink1708, i32 noundef %2493, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.2, i32 noundef 375, ptr noundef %2495, ptr noundef %2497, ptr noundef %2499, i32 noundef %2500) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2502:                                             ; preds = %2475
  %2503 = load i32, ptr %2330, align 4, !tbaa !62
  %2504 = call i32 @s2n_handshake_copy_hash_state(ptr noundef nonnull %2177, i32 noundef %2503, ptr noundef nonnull %14) #13
  %2505 = call zeroext i1 @s2n_result_is_ok(i32 %2504)
  br i1 %2505, label %2506, label %2672

2506:                                             ; preds = %2502
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = add nsw i32 %2507, 1
  store i32 %2508, ptr @test_count, align 4, !tbaa !5
  %2509 = call i32 @s2n_hash_digest(ptr noundef nonnull %14, ptr noundef nonnull %15, i32 noundef %2337) #13
  %2510 = icmp eq i32 %2509, -1
  br i1 %2510, label %2511, label %2533

2511:                                             ; preds = %2506
  %2512 = load i32, ptr %1419, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = call i32 @s2n_print_stacktrace(ptr noundef %2513) #13
  %2515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2516 = trunc nuw i8 %2515 to i1
  br i1 %2516, label %2517, label %2521

2517:                                             ; preds = %2511
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @fileno(ptr noundef %2518) #13
  %2520 = call i32 @isatty(i32 noundef %2519) #13
  %.not782 = icmp eq i32 %2520, 0
  br i1 %.not782, label %2521, label %2522

2521:                                             ; preds = %2517, %2511
  br label %2522

2522:                                             ; preds = %2517, %2521
  %.str.4.sink1717 = phi ptr [ @.str.4, %2521 ], [ @.str, %2517 ]
  store i32 %2512, ptr %1419, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = load i32, ptr @test_count, align 4, !tbaa !5
  %2525 = load i32, ptr %1365, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror(i32 noundef %2525, ptr noundef nonnull @.str.3) #13
  %2527 = load i32, ptr %1365, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror_debug(i32 noundef %2527, ptr noundef nonnull @.str.3) #13
  %2529 = load i32, ptr %1419, align 4, !tbaa !5
  %2530 = call ptr @strerror(i32 noundef %2529) #13
  %2531 = load i32, ptr %1419, align 4, !tbaa !5
  %2532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2523, ptr noundef nonnull %.str.4.sink1717, i32 noundef %2524, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.2, i32 noundef 377, ptr noundef %2526, ptr noundef %2528, ptr noundef %2530, i32 noundef %2531) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2533:                                             ; preds = %2506
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = add nsw i32 %2534, 1
  store i32 %2535, ptr @test_count, align 4, !tbaa !5
  %2536 = call i32 @s2n_blob_init(ptr noundef nonnull %11, ptr noundef nonnull %15, i32 noundef %2337) #13
  %2537 = icmp eq i32 %2536, -1
  br i1 %2537, label %2538, label %2560

2538:                                             ; preds = %2533
  %2539 = load i32, ptr %1419, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = call i32 @s2n_print_stacktrace(ptr noundef %2540) #13
  %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 %2548

2544:                                             ; preds = %2538
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = call i32 @fileno(ptr noundef %2545) #13
  %2547 = call i32 @isatty(i32 noundef %2546) #13
  %.not781 = icmp eq i32 %2547, 0
  br i1 %.not781, label %2548, label %2549

2548:                                             ; preds = %2544, %2538
  br label %2549

2549:                                             ; preds = %2544, %2548
  %.str.4.sink1726 = phi ptr [ @.str.4, %2548 ], [ @.str, %2544 ]
  store i32 %2539, ptr %1419, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = load i32, ptr @test_count, align 4, !tbaa !5
  %2552 = load i32, ptr %1365, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror(i32 noundef %2552, ptr noundef nonnull @.str.3) #13
  %2554 = load i32, ptr %1365, align 4, !tbaa !5
  %2555 = call ptr @s2n_strerror_debug(i32 noundef %2554, ptr noundef nonnull @.str.3) #13
  %2556 = load i32, ptr %1419, align 4, !tbaa !5
  %2557 = call ptr @strerror(i32 noundef %2556) #13
  %2558 = load i32, ptr %1419, align 4, !tbaa !5
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2550, ptr noundef nonnull %.str.4.sink1726, i32 noundef %2551, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.2, i32 noundef 379, ptr noundef %2553, ptr noundef %2555, ptr noundef %2557, i32 noundef %2558) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2560:                                             ; preds = %2533
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = add nsw i32 %2561, 1
  store i32 %2562, ptr @test_count, align 4, !tbaa !5
  %2563 = getelementptr inbounds i8, ptr %9, i64 8
  %2564 = load i32, ptr %2563, align 8, !tbaa !63
  %2565 = load i32, ptr %2394, align 8, !tbaa !63
  %2566 = icmp eq i32 %2564, %2565
  br i1 %2566, label %2589, label %2567

2567:                                             ; preds = %2560
  %2568 = load i32, ptr %1419, align 4, !tbaa !5
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @s2n_print_stacktrace(ptr noundef %2569) #13
  %2571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2572 = trunc nuw i8 %2571 to i1
  br i1 %2572, label %2573, label %2577

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

2577:                                             ; preds = %2573, %2567
  br label %2578

2578:                                             ; preds = %2573, %2577
  %.str.4.sink1735 = phi ptr [ @.str.4, %2577 ], [ @.str, %2573 ]
  store i32 %2568, ptr %1419, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = load i32, ptr %1365, align 4, !tbaa !5
  %2582 = call ptr @s2n_strerror(i32 noundef %2581, ptr noundef nonnull @.str.3) #13
  %2583 = load i32, ptr %1365, align 4, !tbaa !5
  %2584 = call ptr @s2n_strerror_debug(i32 noundef %2583, ptr noundef nonnull @.str.3) #13
  %2585 = load i32, ptr %1419, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #13
  %2587 = load i32, ptr %1419, align 4, !tbaa !5
  %2588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2579, ptr noundef nonnull %.str.4.sink1735, i32 noundef %2580, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.2, i32 noundef 380, ptr noundef %2582, ptr noundef %2584, ptr noundef %2586, i32 noundef %2587) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2589:                                             ; preds = %2560
  %.not672 = icmp eq i32 %2564, 0
  br i1 %.not672, label %2618, label %2590

2590:                                             ; preds = %2589
  %2591 = add nsw i32 %2561, 2
  store i32 %2591, ptr @test_count, align 4, !tbaa !5
  %2592 = load ptr, ptr %9, align 8, !tbaa !64
  %2593 = load ptr, ptr %11, align 8, !tbaa !64
  %2594 = zext i32 %2564 to i64
  %bcmp673 = call i32 @bcmp(ptr %2592, ptr %2593, i64 %2594)
  %2595 = icmp eq i32 %bcmp673, 0
  br i1 %2595, label %2618, label %2596

2596:                                             ; preds = %2590
  %2597 = load i32, ptr %1419, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = call i32 @s2n_print_stacktrace(ptr noundef %2598) #13
  %2600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2601 = trunc nuw i8 %2600 to i1
  br i1 %2601, label %2602, label %2606

2602:                                             ; preds = %2596
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @fileno(ptr noundef %2603) #13
  %2605 = call i32 @isatty(i32 noundef %2604) #13
  %.not674 = icmp eq i32 %2605, 0
  br i1 %.not674, label %2606, label %2607

2606:                                             ; preds = %2602, %2596
  br label %2607

2607:                                             ; preds = %2602, %2606
  %.str.4.sink1744 = phi ptr [ @.str.4, %2606 ], [ @.str, %2602 ]
  store i32 %2597, ptr %1419, align 4, !tbaa !5
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = load i32, ptr @test_count, align 4, !tbaa !5
  %2610 = load i32, ptr %1365, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror(i32 noundef %2610, ptr noundef nonnull @.str.3) #13
  %2612 = load i32, ptr %1365, align 4, !tbaa !5
  %2613 = call ptr @s2n_strerror_debug(i32 noundef %2612, ptr noundef nonnull @.str.3) #13
  %2614 = load i32, ptr %1419, align 4, !tbaa !5
  %2615 = call ptr @strerror(i32 noundef %2614) #13
  %2616 = load i32, ptr %1419, align 4, !tbaa !5
  %2617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2608, ptr noundef nonnull %.str.4.sink1744, i32 noundef %2609, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.2, i32 noundef 380, ptr noundef %2611, ptr noundef %2613, ptr noundef %2615, i32 noundef %2616) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2618:                                             ; preds = %2589, %2590
  %2619 = phi i32 [ %2562, %2589 ], [ %2591, %2590 ]
  %2620 = add nsw i32 %2619, 1
  store i32 %2620, ptr @test_count, align 4, !tbaa !5
  %2621 = call i32 @s2n_config_free(ptr noundef nonnull %2150) #13
  %2622 = icmp eq i32 %2621, -1
  br i1 %2622, label %2623, label %2645

2623:                                             ; preds = %2618
  %2624 = load i32, ptr %1419, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = call i32 @s2n_print_stacktrace(ptr noundef %2625) #13
  %2627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2628 = trunc nuw i8 %2627 to i1
  br i1 %2628, label %2629, label %2633

2629:                                             ; preds = %2623
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = call i32 @fileno(ptr noundef %2630) #13
  %2632 = call i32 @isatty(i32 noundef %2631) #13
  %.not780 = icmp eq i32 %2632, 0
  br i1 %.not780, label %2633, label %2634

2633:                                             ; preds = %2629, %2623
  br label %2634

2634:                                             ; preds = %2629, %2633
  %.str.4.sink1753 = phi ptr [ @.str.4, %2633 ], [ @.str, %2629 ]
  store i32 %2624, ptr %1419, align 4, !tbaa !5
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = load i32, ptr @test_count, align 4, !tbaa !5
  %2637 = load i32, ptr %1365, align 4, !tbaa !5
  %2638 = call ptr @s2n_strerror(i32 noundef %2637, ptr noundef nonnull @.str.3) #13
  %2639 = load i32, ptr %1365, align 4, !tbaa !5
  %2640 = call ptr @s2n_strerror_debug(i32 noundef %2639, ptr noundef nonnull @.str.3) #13
  %2641 = load i32, ptr %1419, align 4, !tbaa !5
  %2642 = call ptr @strerror(i32 noundef %2641) #13
  %2643 = load i32, ptr %1419, align 4, !tbaa !5
  %2644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2635, ptr noundef nonnull %.str.4.sink1753, i32 noundef %2636, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 382, ptr noundef %2638, ptr noundef %2640, ptr noundef %2642, i32 noundef %2643) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2645:                                             ; preds = %2618
  %2646 = load i32, ptr @test_count, align 4, !tbaa !5
  %2647 = add nsw i32 %2646, 1
  store i32 %2647, ptr @test_count, align 4, !tbaa !5
  %2648 = call i32 @s2n_connection_free(ptr noundef nonnull %2177) #13
  %2649 = icmp eq i32 %2648, -1
  br i1 %2649, label %2650, label %2672

2650:                                             ; preds = %2645
  %2651 = load i32, ptr %1419, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = call i32 @s2n_print_stacktrace(ptr noundef %2652) #13
  %2654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2655 = trunc nuw i8 %2654 to i1
  br i1 %2655, label %2656, label %2660

2656:                                             ; preds = %2650
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = call i32 @fileno(ptr noundef %2657) #13
  %2659 = call i32 @isatty(i32 noundef %2658) #13
  %.not779 = icmp eq i32 %2659, 0
  br i1 %.not779, label %2660, label %2661

2660:                                             ; preds = %2656, %2650
  br label %2661

2661:                                             ; preds = %2656, %2660
  %.str.4.sink1762 = phi ptr [ @.str.4, %2660 ], [ @.str, %2656 ]
  store i32 %2651, ptr %1419, align 4, !tbaa !5
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = load i32, ptr %1365, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror(i32 noundef %2664, ptr noundef nonnull @.str.3) #13
  %2666 = load i32, ptr %1365, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror_debug(i32 noundef %2666, ptr noundef nonnull @.str.3) #13
  %2668 = load i32, ptr %1419, align 4, !tbaa !5
  %2669 = call ptr @strerror(i32 noundef %2668) #13
  %2670 = load i32, ptr %1419, align 4, !tbaa !5
  %2671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2662, ptr noundef nonnull %.str.4.sink1762, i32 noundef %2663, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 383, ptr noundef %2665, ptr noundef %2667, ptr noundef %2669, i32 noundef %2670) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2672:                                             ; preds = %2645, %2502
  %.5608 = phi i32 [ 1, %2502 ], [ 0, %2645 ]
  %.7 = phi i32 [ -1, %2502 ], [ 0, %2645 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #13
  %2673 = call i32 @s2n_hash_free(ptr noundef nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #13
  br label %2674

2674:                                             ; preds = %2329, %2672
  %.6609 = phi i32 [ %.5608, %2672 ], [ 1, %2329 ]
  %.8 = phi i32 [ %.7, %2672 ], [ -1, %2329 ]
  %2675 = call i32 @s2n_hash_free(ptr noundef nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #13
  br label %2676

2676:                                             ; preds = %2297, %2674
  %.7610 = phi i32 [ %.6609, %2674 ], [ 1, %2297 ]
  %.9 = phi i32 [ %.8, %2674 ], [ -1, %2297 ]
  %2677 = call i32 @s2n_tls13_keys_free(ptr noundef nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 592, ptr nonnull %10) #13
  br label %2678

2678:                                             ; preds = %2267, %2676
  %.8611 = phi i32 [ %.7610, %2676 ], [ 1, %2267 ]
  %.10 = phi i32 [ %.9, %2676 ], [ -1, %2267 ]
  %2679 = call i32 @s2n_free(ptr noundef nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #13
  br label %2680

2680:                                             ; preds = %2678, %2264
  %.9612 = phi i32 [ %.8611, %2678 ], [ 1, %2264 ]
  %.11 = phi i32 [ %.10, %2678 ], [ -1, %2264 ]
  %2681 = call i32 @s2n_free(ptr noundef nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #13
  %2682 = call i32 @s2n_free(ptr noundef nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #13
  %switch850 = icmp eq i32 %.9612, 0
  br i1 %switch850, label %2683, label %.thread855

2683:                                             ; preds = %2680
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #13
  store ptr null, ptr %16, align 8, !tbaa !9
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = add nsw i32 %2684, 1
  store i32 %2685, ptr @test_count, align 4, !tbaa !5
  %2686 = call ptr @s2n_config_new() #13
  %2687 = icmp eq ptr %2686, null
  br i1 %2687, label %2688, label %2710

2688:                                             ; preds = %2683
  %2689 = load i32, ptr %1419, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690) #13
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2693 = trunc nuw i8 %2692 to i1
  br i1 %2693, label %2694, label %2698

2694:                                             ; preds = %2688
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @fileno(ptr noundef %2695) #13
  %2697 = call i32 @isatty(i32 noundef %2696) #13
  %.not778 = icmp eq i32 %2697, 0
  br i1 %.not778, label %2698, label %2699

2698:                                             ; preds = %2694, %2688
  br label %2699

2699:                                             ; preds = %2694, %2698
  %.str.4.sink1771 = phi ptr [ @.str.4, %2698 ], [ @.str, %2694 ]
  store i32 %2689, ptr %1419, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = load i32, ptr %1365, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef nonnull @.str.3) #13
  %2704 = load i32, ptr %1365, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef nonnull @.str.3) #13
  %2706 = load i32, ptr %1419, align 4, !tbaa !5
  %2707 = call ptr @strerror(i32 noundef %2706) #13
  %2708 = load i32, ptr %1419, align 4, !tbaa !5
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef nonnull %.str.4.sink1771, i32 noundef %2701, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 396, ptr noundef %2703, ptr noundef %2705, ptr noundef %2707, i32 noundef %2708) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2710:                                             ; preds = %2683
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = add nsw i32 %2711, 1
  store i32 %2712, ptr @test_count, align 4, !tbaa !5
  %2713 = call ptr @s2n_config_new() #13
  %2714 = icmp eq ptr %2713, null
  br i1 %2714, label %2715, label %2737

2715:                                             ; preds = %2710
  %2716 = load i32, ptr %1419, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @s2n_print_stacktrace(ptr noundef %2717) #13
  %2719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2720 = trunc nuw i8 %2719 to i1
  br i1 %2720, label %2721, label %2725

2721:                                             ; preds = %2715
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @fileno(ptr noundef %2722) #13
  %2724 = call i32 @isatty(i32 noundef %2723) #13
  %.not777 = icmp eq i32 %2724, 0
  br i1 %.not777, label %2725, label %2726

2725:                                             ; preds = %2721, %2715
  br label %2726

2726:                                             ; preds = %2721, %2725
  %.str.4.sink1780 = phi ptr [ @.str.4, %2725 ], [ @.str, %2721 ]
  store i32 %2716, ptr %1419, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = load i32, ptr %1365, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror(i32 noundef %2729, ptr noundef nonnull @.str.3) #13
  %2731 = load i32, ptr %1365, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror_debug(i32 noundef %2731, ptr noundef nonnull @.str.3) #13
  %2733 = load i32, ptr %1419, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #13
  %2735 = load i32, ptr %1419, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef nonnull %.str.4.sink1780, i32 noundef %2728, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.2, i32 noundef 397, ptr noundef %2730, ptr noundef %2732, ptr noundef %2734, i32 noundef %2735) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2737:                                             ; preds = %2710
  %2738 = load i32, ptr @test_count, align 4, !tbaa !5
  %2739 = add nsw i32 %2738, 1
  store i32 %2739, ptr @test_count, align 4, !tbaa !5
  %2740 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2741 = icmp eq ptr %2740, null
  br i1 %2741, label %2742, label %2764

2742:                                             ; preds = %2737
  %2743 = load i32, ptr %1419, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = call i32 @s2n_print_stacktrace(ptr noundef %2744) #13
  %2746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2747 = trunc nuw i8 %2746 to i1
  br i1 %2747, label %2748, label %2752

2748:                                             ; preds = %2742
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @fileno(ptr noundef %2749) #13
  %2751 = call i32 @isatty(i32 noundef %2750) #13
  %.not776 = icmp eq i32 %2751, 0
  br i1 %.not776, label %2752, label %2753

2752:                                             ; preds = %2748, %2742
  br label %2753

2753:                                             ; preds = %2748, %2752
  %.str.4.sink1789 = phi ptr [ @.str.4, %2752 ], [ @.str, %2748 ]
  store i32 %2743, ptr %1419, align 4, !tbaa !5
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = load i32, ptr %1365, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror(i32 noundef %2756, ptr noundef nonnull @.str.3) #13
  %2758 = load i32, ptr %1365, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror_debug(i32 noundef %2758, ptr noundef nonnull @.str.3) #13
  %2760 = load i32, ptr %1419, align 4, !tbaa !5
  %2761 = call ptr @strerror(i32 noundef %2760) #13
  %2762 = load i32, ptr %1419, align 4, !tbaa !5
  %2763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2754, ptr noundef nonnull %.str.4.sink1789, i32 noundef %2755, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 399, ptr noundef %2757, ptr noundef %2759, ptr noundef %2761, i32 noundef %2762) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2764:                                             ; preds = %2737
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr @test_count, align 4, !tbaa !5
  %2767 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %2768 = icmp eq ptr %2767, null
  br i1 %2768, label %2769, label %2791

2769:                                             ; preds = %2764
  %2770 = load i32, ptr %1419, align 4, !tbaa !5
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = call i32 @s2n_print_stacktrace(ptr noundef %2771) #13
  %2773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2774 = trunc nuw i8 %2773 to i1
  br i1 %2774, label %2775, label %2779

2775:                                             ; preds = %2769
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @fileno(ptr noundef %2776) #13
  %2778 = call i32 @isatty(i32 noundef %2777) #13
  %.not775 = icmp eq i32 %2778, 0
  br i1 %.not775, label %2779, label %2780

2779:                                             ; preds = %2775, %2769
  br label %2780

2780:                                             ; preds = %2775, %2779
  %.str.4.sink1798 = phi ptr [ @.str.4, %2779 ], [ @.str, %2775 ]
  store i32 %2770, ptr %1419, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = load i32, ptr %1365, align 4, !tbaa !5
  %2784 = call ptr @s2n_strerror(i32 noundef %2783, ptr noundef nonnull @.str.3) #13
  %2785 = load i32, ptr %1365, align 4, !tbaa !5
  %2786 = call ptr @s2n_strerror_debug(i32 noundef %2785, ptr noundef nonnull @.str.3) #13
  %2787 = load i32, ptr %1419, align 4, !tbaa !5
  %2788 = call ptr @strerror(i32 noundef %2787) #13
  %2789 = load i32, ptr %1419, align 4, !tbaa !5
  %2790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef nonnull %.str.4.sink1798, i32 noundef %2782, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 400, ptr noundef %2784, ptr noundef %2786, ptr noundef %2788, i32 noundef %2789) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2791:                                             ; preds = %2764
  %2792 = load i32, ptr @test_count, align 4, !tbaa !5
  %2793 = add nsw i32 %2792, 1
  store i32 %2793, ptr @test_count, align 4, !tbaa !5
  %2794 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2713, ptr noundef nonnull @.str.17) #13
  %2795 = icmp eq i32 %2794, -1
  br i1 %2795, label %2796, label %2818

2796:                                             ; preds = %2791
  %2797 = load i32, ptr %1419, align 4, !tbaa !5
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = call i32 @s2n_print_stacktrace(ptr noundef %2798) #13
  %2800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2801 = trunc nuw i8 %2800 to i1
  br i1 %2801, label %2802, label %2806

2802:                                             ; preds = %2796
  %2803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2804 = call i32 @fileno(ptr noundef %2803) #13
  %2805 = call i32 @isatty(i32 noundef %2804) #13
  %.not774 = icmp eq i32 %2805, 0
  br i1 %.not774, label %2806, label %2807

2806:                                             ; preds = %2802, %2796
  br label %2807

2807:                                             ; preds = %2802, %2806
  %.str.4.sink1807 = phi ptr [ @.str.4, %2806 ], [ @.str, %2802 ]
  store i32 %2797, ptr %1419, align 4, !tbaa !5
  %2808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2809 = load i32, ptr @test_count, align 4, !tbaa !5
  %2810 = load i32, ptr %1365, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror(i32 noundef %2810, ptr noundef nonnull @.str.3) #13
  %2812 = load i32, ptr %1365, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror_debug(i32 noundef %2812, ptr noundef nonnull @.str.3) #13
  %2814 = load i32, ptr %1419, align 4, !tbaa !5
  %2815 = call ptr @strerror(i32 noundef %2814) #13
  %2816 = load i32, ptr %1419, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2808, ptr noundef nonnull %.str.4.sink1807, i32 noundef %2809, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.2, i32 noundef 402, ptr noundef %2811, ptr noundef %2813, ptr noundef %2815, i32 noundef %2816) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2818:                                             ; preds = %2791
  %2819 = load i32, ptr @test_count, align 4, !tbaa !5
  %2820 = add nsw i32 %2819, 1
  store i32 %2820, ptr @test_count, align 4, !tbaa !5
  %2821 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2686, ptr noundef nonnull @.str.17) #13
  %2822 = icmp eq i32 %2821, -1
  br i1 %2822, label %2823, label %2845

2823:                                             ; preds = %2818
  %2824 = load i32, ptr %1419, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = call i32 @s2n_print_stacktrace(ptr noundef %2825) #13
  %2827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2828 = trunc nuw i8 %2827 to i1
  br i1 %2828, label %2829, label %2833

2829:                                             ; preds = %2823
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = call i32 @fileno(ptr noundef %2830) #13
  %2832 = call i32 @isatty(i32 noundef %2831) #13
  %.not773 = icmp eq i32 %2832, 0
  br i1 %.not773, label %2833, label %2834

2833:                                             ; preds = %2829, %2823
  br label %2834

2834:                                             ; preds = %2829, %2833
  %.str.4.sink1816 = phi ptr [ @.str.4, %2833 ], [ @.str, %2829 ]
  store i32 %2824, ptr %1419, align 4, !tbaa !5
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = load i32, ptr %1365, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror(i32 noundef %2837, ptr noundef nonnull @.str.3) #13
  %2839 = load i32, ptr %1365, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror_debug(i32 noundef %2839, ptr noundef nonnull @.str.3) #13
  %2841 = load i32, ptr %1419, align 4, !tbaa !5
  %2842 = call ptr @strerror(i32 noundef %2841) #13
  %2843 = load i32, ptr %1419, align 4, !tbaa !5
  %2844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2835, ptr noundef nonnull %.str.4.sink1816, i32 noundef %2836, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.2, i32 noundef 403, ptr noundef %2838, ptr noundef %2840, ptr noundef %2842, i32 noundef %2843) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2845:                                             ; preds = %2818
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = add nsw i32 %2846, 1
  store i32 %2847, ptr @test_count, align 4, !tbaa !5
  %2848 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %16, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.11) #13
  %2849 = icmp eq i32 %2848, -1
  br i1 %2849, label %2850, label %2872

2850:                                             ; preds = %2845
  %2851 = load i32, ptr %1419, align 4, !tbaa !5
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = call i32 @s2n_print_stacktrace(ptr noundef %2852) #13
  %2854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2855 = trunc nuw i8 %2854 to i1
  br i1 %2855, label %2856, label %2860

2856:                                             ; preds = %2850
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @fileno(ptr noundef %2857) #13
  %2859 = call i32 @isatty(i32 noundef %2858) #13
  %.not772 = icmp eq i32 %2859, 0
  br i1 %.not772, label %2860, label %2861

2860:                                             ; preds = %2856, %2850
  br label %2861

2861:                                             ; preds = %2856, %2860
  %.str.4.sink1825 = phi ptr [ @.str.4, %2860 ], [ @.str, %2856 ]
  store i32 %2851, ptr %1419, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = load i32, ptr %1365, align 4, !tbaa !5
  %2865 = call ptr @s2n_strerror(i32 noundef %2864, ptr noundef nonnull @.str.3) #13
  %2866 = load i32, ptr %1365, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror_debug(i32 noundef %2866, ptr noundef nonnull @.str.3) #13
  %2868 = load i32, ptr %1419, align 4, !tbaa !5
  %2869 = call ptr @strerror(i32 noundef %2868) #13
  %2870 = load i32, ptr %1419, align 4, !tbaa !5
  %2871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2862, ptr noundef nonnull %.str.4.sink1825, i32 noundef %2863, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 406, ptr noundef %2865, ptr noundef %2867, ptr noundef %2869, i32 noundef %2870) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2872:                                             ; preds = %2845
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = add nsw i32 %2873, 1
  store i32 %2874, ptr @test_count, align 4, !tbaa !5
  %2875 = load ptr, ptr %16, align 8, !tbaa !9
  %2876 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2713, ptr noundef %2875) #13
  %2877 = icmp eq i32 %2876, -1
  br i1 %2877, label %2878, label %2900

2878:                                             ; preds = %2872
  %2879 = load i32, ptr %1419, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @s2n_print_stacktrace(ptr noundef %2880) #13
  %2882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2883 = trunc nuw i8 %2882 to i1
  br i1 %2883, label %2884, label %2888

2884:                                             ; preds = %2878
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = call i32 @fileno(ptr noundef %2885) #13
  %2887 = call i32 @isatty(i32 noundef %2886) #13
  %.not771 = icmp eq i32 %2887, 0
  br i1 %.not771, label %2888, label %2889

2888:                                             ; preds = %2884, %2878
  br label %2889

2889:                                             ; preds = %2884, %2888
  %.str.4.sink1834 = phi ptr [ @.str.4, %2888 ], [ @.str, %2884 ]
  store i32 %2879, ptr %1419, align 4, !tbaa !5
  %2890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2891 = load i32, ptr @test_count, align 4, !tbaa !5
  %2892 = load i32, ptr %1365, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror(i32 noundef %2892, ptr noundef nonnull @.str.3) #13
  %2894 = load i32, ptr %1365, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror_debug(i32 noundef %2894, ptr noundef nonnull @.str.3) #13
  %2896 = load i32, ptr %1419, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #13
  %2898 = load i32, ptr %1419, align 4, !tbaa !5
  %2899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2890, ptr noundef nonnull %.str.4.sink1834, i32 noundef %2891, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.2, i32 noundef 407, ptr noundef %2893, ptr noundef %2895, ptr noundef %2897, i32 noundef %2898) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2900:                                             ; preds = %2872
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = add nsw i32 %2901, 1
  store i32 %2902, ptr @test_count, align 4, !tbaa !5
  %2903 = load ptr, ptr %16, align 8, !tbaa !9
  %2904 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2686, ptr noundef %2903) #13
  %2905 = icmp eq i32 %2904, -1
  br i1 %2905, label %2906, label %2928

2906:                                             ; preds = %2900
  %2907 = load i32, ptr %1419, align 4, !tbaa !5
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = call i32 @s2n_print_stacktrace(ptr noundef %2908) #13
  %2910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2911 = trunc nuw i8 %2910 to i1
  br i1 %2911, label %2912, label %2916

2912:                                             ; preds = %2906
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = call i32 @fileno(ptr noundef %2913) #13
  %2915 = call i32 @isatty(i32 noundef %2914) #13
  %.not770 = icmp eq i32 %2915, 0
  br i1 %.not770, label %2916, label %2917

2916:                                             ; preds = %2912, %2906
  br label %2917

2917:                                             ; preds = %2912, %2916
  %.str.4.sink1843 = phi ptr [ @.str.4, %2916 ], [ @.str, %2912 ]
  store i32 %2907, ptr %1419, align 4, !tbaa !5
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = load i32, ptr @test_count, align 4, !tbaa !5
  %2920 = load i32, ptr %1365, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror(i32 noundef %2920, ptr noundef nonnull @.str.3) #13
  %2922 = load i32, ptr %1365, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror_debug(i32 noundef %2922, ptr noundef nonnull @.str.3) #13
  %2924 = load i32, ptr %1419, align 4, !tbaa !5
  %2925 = call ptr @strerror(i32 noundef %2924) #13
  %2926 = load i32, ptr %1419, align 4, !tbaa !5
  %2927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2918, ptr noundef nonnull %.str.4.sink1843, i32 noundef %2919, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.2, i32 noundef 408, ptr noundef %2921, ptr noundef %2923, ptr noundef %2925, i32 noundef %2926) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2928:                                             ; preds = %2900
  %2929 = load i32, ptr @test_count, align 4, !tbaa !5
  %2930 = add nsw i32 %2929, 1
  store i32 %2930, ptr @test_count, align 4, !tbaa !5
  %2931 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2740, ptr noundef nonnull %2686) #13
  %2932 = icmp eq i32 %2931, -1
  br i1 %2932, label %2933, label %2955

2933:                                             ; preds = %2928
  %2934 = load i32, ptr %1419, align 4, !tbaa !5
  %2935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2936 = call i32 @s2n_print_stacktrace(ptr noundef %2935) #13
  %2937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2938 = trunc nuw i8 %2937 to i1
  br i1 %2938, label %2939, label %2943

2939:                                             ; preds = %2933
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = call i32 @fileno(ptr noundef %2940) #13
  %2942 = call i32 @isatty(i32 noundef %2941) #13
  %.not769 = icmp eq i32 %2942, 0
  br i1 %.not769, label %2943, label %2944

2943:                                             ; preds = %2939, %2933
  br label %2944

2944:                                             ; preds = %2939, %2943
  %.str.4.sink1852 = phi ptr [ @.str.4, %2943 ], [ @.str, %2939 ]
  store i32 %2934, ptr %1419, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = load i32, ptr @test_count, align 4, !tbaa !5
  %2947 = load i32, ptr %1365, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror(i32 noundef %2947, ptr noundef nonnull @.str.3) #13
  %2949 = load i32, ptr %1365, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef nonnull @.str.3) #13
  %2951 = load i32, ptr %1419, align 4, !tbaa !5
  %2952 = call ptr @strerror(i32 noundef %2951) #13
  %2953 = load i32, ptr %1419, align 4, !tbaa !5
  %2954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2945, ptr noundef nonnull %.str.4.sink1852, i32 noundef %2946, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 410, ptr noundef %2948, ptr noundef %2950, ptr noundef %2952, i32 noundef %2953) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2955:                                             ; preds = %2928
  %2956 = load i32, ptr @test_count, align 4, !tbaa !5
  %2957 = add nsw i32 %2956, 1
  store i32 %2957, ptr @test_count, align 4, !tbaa !5
  %2958 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2767, ptr noundef nonnull %2713) #13
  %2959 = icmp eq i32 %2958, -1
  br i1 %2959, label %2960, label %2982

2960:                                             ; preds = %2955
  %2961 = load i32, ptr %1419, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @s2n_print_stacktrace(ptr noundef %2962) #13
  %2964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2965 = trunc nuw i8 %2964 to i1
  br i1 %2965, label %2966, label %2970

2966:                                             ; preds = %2960
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = call i32 @fileno(ptr noundef %2967) #13
  %2969 = call i32 @isatty(i32 noundef %2968) #13
  %.not768 = icmp eq i32 %2969, 0
  br i1 %.not768, label %2970, label %2971

2970:                                             ; preds = %2966, %2960
  br label %2971

2971:                                             ; preds = %2966, %2970
  %.str.4.sink1861 = phi ptr [ @.str.4, %2970 ], [ @.str, %2966 ]
  store i32 %2961, ptr %1419, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = load i32, ptr %1365, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror(i32 noundef %2974, ptr noundef nonnull @.str.3) #13
  %2976 = load i32, ptr %1365, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror_debug(i32 noundef %2976, ptr noundef nonnull @.str.3) #13
  %2978 = load i32, ptr %1419, align 4, !tbaa !5
  %2979 = call ptr @strerror(i32 noundef %2978) #13
  %2980 = load i32, ptr %1419, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef nonnull %.str.4.sink1861, i32 noundef %2973, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.2, i32 noundef 411, ptr noundef %2975, ptr noundef %2977, ptr noundef %2979, i32 noundef %2980) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2982:                                             ; preds = %2955
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %17) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %17, i8 0, i64 12, i1 false)
  %2983 = load i32, ptr @test_count, align 4, !tbaa !5
  %2984 = add nsw i32 %2983, 1
  store i32 %2984, ptr @test_count, align 4, !tbaa !5
  %2985 = call i32 @s2n_config_set_client_hello_cb(ptr noundef nonnull %2686, ptr noundef nonnull @client_hello_detect_duplicate_calls, ptr noundef nonnull %17) #13
  %2986 = icmp eq i32 %2985, -1
  br i1 %2986, label %2987, label %3009

2987:                                             ; preds = %2982
  %2988 = load i32, ptr %1419, align 4, !tbaa !5
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = call i32 @s2n_print_stacktrace(ptr noundef %2989) #13
  %2991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2992 = trunc nuw i8 %2991 to i1
  br i1 %2992, label %2993, label %2997

2993:                                             ; preds = %2987
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = call i32 @fileno(ptr noundef %2994) #13
  %2996 = call i32 @isatty(i32 noundef %2995) #13
  %.not767 = icmp eq i32 %2996, 0
  br i1 %.not767, label %2997, label %2998

2997:                                             ; preds = %2993, %2987
  br label %2998

2998:                                             ; preds = %2993, %2997
  %.str.4.sink1870 = phi ptr [ @.str.4, %2997 ], [ @.str, %2993 ]
  store i32 %2988, ptr %1419, align 4, !tbaa !5
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = load i32, ptr @test_count, align 4, !tbaa !5
  %3001 = load i32, ptr %1365, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror(i32 noundef %3001, ptr noundef nonnull @.str.3) #13
  %3003 = load i32, ptr %1365, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror_debug(i32 noundef %3003, ptr noundef nonnull @.str.3) #13
  %3005 = load i32, ptr %1419, align 4, !tbaa !5
  %3006 = call ptr @strerror(i32 noundef %3005) #13
  %3007 = load i32, ptr %1419, align 4, !tbaa !5
  %3008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2999, ptr noundef nonnull %.str.4.sink1870, i32 noundef %3000, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.2, i32 noundef 413, ptr noundef %3002, ptr noundef %3004, ptr noundef %3006, i32 noundef %3007) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3009:                                             ; preds = %2982
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = add nsw i32 %3010, 1
  store i32 %3011, ptr @test_count, align 4, !tbaa !5
  %3012 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %2740, i8 noundef zeroext 34) #13
  %3013 = icmp eq i32 %3012, -1
  br i1 %3013, label %3014, label %3036

3014:                                             ; preds = %3009
  %3015 = load i32, ptr %1419, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @s2n_print_stacktrace(ptr noundef %3016) #13
  %3018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3019 = trunc nuw i8 %3018 to i1
  br i1 %3019, label %3020, label %3024

3020:                                             ; preds = %3014
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @fileno(ptr noundef %3021) #13
  %3023 = call i32 @isatty(i32 noundef %3022) #13
  %.not766 = icmp eq i32 %3023, 0
  br i1 %.not766, label %3024, label %3025

3024:                                             ; preds = %3020, %3014
  br label %3025

3025:                                             ; preds = %3020, %3024
  %.str.4.sink1879 = phi ptr [ @.str.4, %3024 ], [ @.str, %3020 ]
  store i32 %3015, ptr %1419, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = load i32, ptr @test_count, align 4, !tbaa !5
  %3028 = load i32, ptr %1365, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror(i32 noundef %3028, ptr noundef nonnull @.str.3) #13
  %3030 = load i32, ptr %1365, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror_debug(i32 noundef %3030, ptr noundef nonnull @.str.3) #13
  %3032 = load i32, ptr %1419, align 4, !tbaa !5
  %3033 = call ptr @strerror(i32 noundef %3032) #13
  %3034 = load i32, ptr %1419, align 4, !tbaa !5
  %3035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3026, ptr noundef nonnull %.str.4.sink1879, i32 noundef %3027, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 415, ptr noundef %3029, ptr noundef %3031, ptr noundef %3033, i32 noundef %3034) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3036:                                             ; preds = %3009
  %3037 = load i32, ptr @test_count, align 4, !tbaa !5
  %3038 = add nsw i32 %3037, 1
  store i32 %3038, ptr @test_count, align 4, !tbaa !5
  %3039 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %2767, i8 noundef zeroext 34) #13
  %3040 = icmp eq i32 %3039, -1
  br i1 %3040, label %3041, label %3063

3041:                                             ; preds = %3036
  %3042 = load i32, ptr %1419, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = call i32 @s2n_print_stacktrace(ptr noundef %3043) #13
  %3045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3046 = trunc nuw i8 %3045 to i1
  br i1 %3046, label %3047, label %3051

3047:                                             ; preds = %3041
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @fileno(ptr noundef %3048) #13
  %3050 = call i32 @isatty(i32 noundef %3049) #13
  %.not765 = icmp eq i32 %3050, 0
  br i1 %.not765, label %3051, label %3052

3051:                                             ; preds = %3047, %3041
  br label %3052

3052:                                             ; preds = %3047, %3051
  %.str.4.sink1888 = phi ptr [ @.str.4, %3051 ], [ @.str, %3047 ]
  store i32 %3042, ptr %1419, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = load i32, ptr @test_count, align 4, !tbaa !5
  %3055 = load i32, ptr %1365, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror(i32 noundef %3055, ptr noundef nonnull @.str.3) #13
  %3057 = load i32, ptr %1365, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror_debug(i32 noundef %3057, ptr noundef nonnull @.str.3) #13
  %3059 = load i32, ptr %1419, align 4, !tbaa !5
  %3060 = call ptr @strerror(i32 noundef %3059) #13
  %3061 = load i32, ptr %1419, align 4, !tbaa !5
  %3062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3053, ptr noundef nonnull %.str.4.sink1888, i32 noundef %3054, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 416, ptr noundef %3056, ptr noundef %3058, ptr noundef %3060, i32 noundef %3061) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3063:                                             ; preds = %3036
  %3064 = getelementptr inbounds i8, ptr %2767, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %3064, align 8, !tbaa !65
  %3065 = load i32, ptr @test_count, align 4, !tbaa !5
  %3066 = add nsw i32 %3065, 1
  store i32 %3066, ptr @test_count, align 4, !tbaa !5
  %3067 = call i32 @s2n_client_hello_send(ptr noundef nonnull %2767) #13
  %3068 = icmp eq i32 %3067, -1
  br i1 %3068, label %3069, label %3091

3069:                                             ; preds = %3063
  %3070 = load i32, ptr %1419, align 4, !tbaa !5
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = call i32 @s2n_print_stacktrace(ptr noundef %3071) #13
  %3073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3074 = trunc nuw i8 %3073 to i1
  br i1 %3074, label %3075, label %3079

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

3079:                                             ; preds = %3075, %3069
  br label %3080

3080:                                             ; preds = %3075, %3079
  %.str.4.sink1897 = phi ptr [ @.str.4, %3079 ], [ @.str, %3075 ]
  store i32 %3070, ptr %1419, align 4, !tbaa !5
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = load i32, ptr @test_count, align 4, !tbaa !5
  %3083 = load i32, ptr %1365, align 4, !tbaa !5
  %3084 = call ptr @s2n_strerror(i32 noundef %3083, ptr noundef nonnull @.str.3) #13
  %3085 = load i32, ptr %1365, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror_debug(i32 noundef %3085, ptr noundef nonnull @.str.3) #13
  %3087 = load i32, ptr %1419, align 4, !tbaa !5
  %3088 = call ptr @strerror(i32 noundef %3087) #13
  %3089 = load i32, ptr %1419, align 4, !tbaa !5
  %3090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3081, ptr noundef nonnull %.str.4.sink1897, i32 noundef %3082, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.2, i32 noundef 422, ptr noundef %3084, ptr noundef %3086, ptr noundef %3088, i32 noundef %3089) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3091:                                             ; preds = %3063
  %3092 = load i32, ptr @test_count, align 4, !tbaa !5
  %3093 = add nsw i32 %3092, 1
  store i32 %3093, ptr @test_count, align 4, !tbaa !5
  %3094 = getelementptr inbounds i8, ptr %2767, i64 2016
  %3095 = getelementptr inbounds i8, ptr %2740, i64 2016
  %3096 = getelementptr inbounds i8, ptr %2767, i64 2044
  %3097 = load i32, ptr %3096, align 4, !tbaa !66
  %3098 = getelementptr inbounds i8, ptr %2767, i64 2040
  %3099 = load i32, ptr %3098, align 8, !tbaa !67
  %3100 = sub i32 %3097, %3099
  %3101 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3094, ptr noundef nonnull %3095, i32 noundef %3100) #13
  %3102 = icmp eq i32 %3101, -1
  br i1 %3102, label %3103, label %3125

3103:                                             ; preds = %3091
  %3104 = load i32, ptr %1419, align 4, !tbaa !5
  %3105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3106 = call i32 @s2n_print_stacktrace(ptr noundef %3105) #13
  %3107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3108 = trunc nuw i8 %3107 to i1
  br i1 %3108, label %3109, label %3113

3109:                                             ; preds = %3103
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = call i32 @fileno(ptr noundef %3110) #13
  %3112 = call i32 @isatty(i32 noundef %3111) #13
  %.not763 = icmp eq i32 %3112, 0
  br i1 %.not763, label %3113, label %3114

3113:                                             ; preds = %3109, %3103
  br label %3114

3114:                                             ; preds = %3109, %3113
  %.str.4.sink1906 = phi ptr [ @.str.4, %3113 ], [ @.str, %3109 ]
  store i32 %3104, ptr %1419, align 4, !tbaa !5
  %3115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3116 = load i32, ptr @test_count, align 4, !tbaa !5
  %3117 = load i32, ptr %1365, align 4, !tbaa !5
  %3118 = call ptr @s2n_strerror(i32 noundef %3117, ptr noundef nonnull @.str.3) #13
  %3119 = load i32, ptr %1365, align 4, !tbaa !5
  %3120 = call ptr @s2n_strerror_debug(i32 noundef %3119, ptr noundef nonnull @.str.3) #13
  %3121 = load i32, ptr %1419, align 4, !tbaa !5
  %3122 = call ptr @strerror(i32 noundef %3121) #13
  %3123 = load i32, ptr %1419, align 4, !tbaa !5
  %3124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3115, ptr noundef nonnull %.str.4.sink1906, i32 noundef %3116, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.2, i32 noundef 424, ptr noundef %3118, ptr noundef %3120, ptr noundef %3122, i32 noundef %3123) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3125:                                             ; preds = %3091
  %3126 = load i32, ptr @test_count, align 4, !tbaa !5
  %3127 = add nsw i32 %3126, 1
  store i32 %3127, ptr @test_count, align 4, !tbaa !5
  %3128 = load i32, ptr %17, align 4, !tbaa !68
  %3129 = icmp eq i32 %3128, 0
  br i1 %3129, label %3152, label %3130

3130:                                             ; preds = %3125
  %3131 = load i32, ptr %1419, align 4, !tbaa !5
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = call i32 @s2n_print_stacktrace(ptr noundef %3132) #13
  %3134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3135 = trunc nuw i8 %3134 to i1
  br i1 %3135, label %3136, label %3140

3136:                                             ; preds = %3130
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = call i32 @fileno(ptr noundef %3137) #13
  %3139 = call i32 @isatty(i32 noundef %3138) #13
  %.not675 = icmp eq i32 %3139, 0
  br i1 %.not675, label %3140, label %3141

3140:                                             ; preds = %3136, %3130
  br label %3141

3141:                                             ; preds = %3136, %3140
  %.str.4.sink1915 = phi ptr [ @.str.4, %3140 ], [ @.str, %3136 ]
  store i32 %3131, ptr %1419, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = load i32, ptr %1365, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror(i32 noundef %3144, ptr noundef nonnull @.str.3) #13
  %3146 = load i32, ptr %1365, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror_debug(i32 noundef %3146, ptr noundef nonnull @.str.3) #13
  %3148 = load i32, ptr %1419, align 4, !tbaa !5
  %3149 = call ptr @strerror(i32 noundef %3148) #13
  %3150 = load i32, ptr %1419, align 4, !tbaa !5
  %3151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3142, ptr noundef nonnull %.str.4.sink1915, i32 noundef %3143, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.2, i32 noundef 427, ptr noundef %3145, ptr noundef %3147, ptr noundef %3149, i32 noundef %3150) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3152:                                             ; preds = %3125
  %3153 = add nsw i32 %3126, 2
  store i32 %3153, ptr @test_count, align 4, !tbaa !5
  %3154 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %2740) #13
  %3155 = icmp eq i32 %3154, -1
  br i1 %3155, label %3156, label %3178

3156:                                             ; preds = %3152
  %3157 = load i32, ptr %1419, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @s2n_print_stacktrace(ptr noundef %3158) #13
  %3160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3161 = trunc nuw i8 %3160 to i1
  br i1 %3161, label %3162, label %3166

3162:                                             ; preds = %3156
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @fileno(ptr noundef %3163) #13
  %3165 = call i32 @isatty(i32 noundef %3164) #13
  %.not762 = icmp eq i32 %3165, 0
  br i1 %.not762, label %3166, label %3167

3166:                                             ; preds = %3162, %3156
  br label %3167

3167:                                             ; preds = %3162, %3166
  %.str.4.sink1924 = phi ptr [ @.str.4, %3166 ], [ @.str, %3162 ]
  store i32 %3157, ptr %1419, align 4, !tbaa !5
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = load i32, ptr %1365, align 4, !tbaa !5
  %3171 = call ptr @s2n_strerror(i32 noundef %3170, ptr noundef nonnull @.str.3) #13
  %3172 = load i32, ptr %1365, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror_debug(i32 noundef %3172, ptr noundef nonnull @.str.3) #13
  %3174 = load i32, ptr %1419, align 4, !tbaa !5
  %3175 = call ptr @strerror(i32 noundef %3174) #13
  %3176 = load i32, ptr %1419, align 4, !tbaa !5
  %3177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3168, ptr noundef nonnull %.str.4.sink1924, i32 noundef %3169, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.2, i32 noundef 428, ptr noundef %3171, ptr noundef %3173, ptr noundef %3175, i32 noundef %3176) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3178:                                             ; preds = %3152
  %3179 = load i32, ptr @test_count, align 4, !tbaa !5
  %3180 = add nsw i32 %3179, 1
  store i32 %3180, ptr @test_count, align 4, !tbaa !5
  %3181 = load i32, ptr %17, align 4, !tbaa !68
  %3182 = icmp eq i32 %3181, 1
  br i1 %3182, label %3205, label %3183

3183:                                             ; preds = %3178
  %3184 = load i32, ptr %1419, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = call i32 @s2n_print_stacktrace(ptr noundef %3185) #13
  %3187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3188 = trunc nuw i8 %3187 to i1
  br i1 %3188, label %3189, label %3193

3189:                                             ; preds = %3183
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = call i32 @fileno(ptr noundef %3190) #13
  %3192 = call i32 @isatty(i32 noundef %3191) #13
  %.not676 = icmp eq i32 %3192, 0
  br i1 %.not676, label %3193, label %3194

3193:                                             ; preds = %3189, %3183
  br label %3194

3194:                                             ; preds = %3189, %3193
  %.str.4.sink1933 = phi ptr [ @.str.4, %3193 ], [ @.str, %3189 ]
  store i32 %3184, ptr %1419, align 4, !tbaa !5
  %3195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = load i32, ptr %1365, align 4, !tbaa !5
  %3198 = call ptr @s2n_strerror(i32 noundef %3197, ptr noundef nonnull @.str.3) #13
  %3199 = load i32, ptr %1365, align 4, !tbaa !5
  %3200 = call ptr @s2n_strerror_debug(i32 noundef %3199, ptr noundef nonnull @.str.3) #13
  %3201 = load i32, ptr %1419, align 4, !tbaa !5
  %3202 = call ptr @strerror(i32 noundef %3201) #13
  %3203 = load i32, ptr %1419, align 4, !tbaa !5
  %3204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3195, ptr noundef nonnull %.str.4.sink1933, i32 noundef %3196, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.2, i32 noundef 429, ptr noundef %3198, ptr noundef %3200, ptr noundef %3202, i32 noundef %3203) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3205:                                             ; preds = %3178
  %3206 = add nsw i32 %3179, 2
  store i32 %3206, ptr @test_count, align 4, !tbaa !5
  %3207 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef nonnull %2740) #13
  br i1 %3207, label %3230, label %3208

3208:                                             ; preds = %3205
  %3209 = load i32, ptr %1419, align 4, !tbaa !5
  %3210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3211 = call i32 @s2n_print_stacktrace(ptr noundef %3210) #13
  %3212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3213 = trunc nuw i8 %3212 to i1
  br i1 %3213, label %3214, label %3218

3214:                                             ; preds = %3208
  %3215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3216 = call i32 @fileno(ptr noundef %3215) #13
  %3217 = call i32 @isatty(i32 noundef %3216) #13
  %.not677 = icmp eq i32 %3217, 0
  br i1 %.not677, label %3218, label %3219

3218:                                             ; preds = %3214, %3208
  br label %3219

3219:                                             ; preds = %3214, %3218
  %.str.4.sink1942 = phi ptr [ @.str.4, %3218 ], [ @.str, %3214 ]
  store i32 %3209, ptr %1419, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = load i32, ptr @test_count, align 4, !tbaa !5
  %3222 = load i32, ptr %1365, align 4, !tbaa !5
  %3223 = call ptr @s2n_strerror(i32 noundef %3222, ptr noundef nonnull @.str.3) #13
  %3224 = load i32, ptr %1365, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror_debug(i32 noundef %3224, ptr noundef nonnull @.str.3) #13
  %3226 = load i32, ptr %1419, align 4, !tbaa !5
  %3227 = call ptr @strerror(i32 noundef %3226) #13
  %3228 = load i32, ptr %1419, align 4, !tbaa !5
  %3229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3220, ptr noundef nonnull %.str.4.sink1942, i32 noundef %3221, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.2, i32 noundef 431, ptr noundef %3223, ptr noundef %3225, ptr noundef %3227, i32 noundef %3228) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3230:                                             ; preds = %3205
  %3231 = load i32, ptr @test_count, align 4, !tbaa !5
  %3232 = add nsw i32 %3231, 1
  store i32 %3232, ptr @test_count, align 4, !tbaa !5
  %3233 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %2740) #13
  %3234 = icmp eq i32 %3233, -1
  br i1 %3234, label %3235, label %3257

3235:                                             ; preds = %3230
  %3236 = load i32, ptr %1419, align 4, !tbaa !5
  %3237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3238 = call i32 @s2n_print_stacktrace(ptr noundef %3237) #13
  %3239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3240 = trunc nuw i8 %3239 to i1
  br i1 %3240, label %3241, label %3245

3241:                                             ; preds = %3235
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @fileno(ptr noundef %3242) #13
  %3244 = call i32 @isatty(i32 noundef %3243) #13
  %.not761 = icmp eq i32 %3244, 0
  br i1 %.not761, label %3245, label %3246

3245:                                             ; preds = %3241, %3235
  br label %3246

3246:                                             ; preds = %3241, %3245
  %.str.4.sink1951 = phi ptr [ @.str.4, %3245 ], [ @.str, %3241 ]
  store i32 %3236, ptr %1419, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = load i32, ptr %1365, align 4, !tbaa !5
  %3250 = call ptr @s2n_strerror(i32 noundef %3249, ptr noundef nonnull @.str.3) #13
  %3251 = load i32, ptr %1365, align 4, !tbaa !5
  %3252 = call ptr @s2n_strerror_debug(i32 noundef %3251, ptr noundef nonnull @.str.3) #13
  %3253 = load i32, ptr %1419, align 4, !tbaa !5
  %3254 = call ptr @strerror(i32 noundef %3253) #13
  %3255 = load i32, ptr %1419, align 4, !tbaa !5
  %3256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3247, ptr noundef nonnull %.str.4.sink1951, i32 noundef %3248, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 432, ptr noundef %3250, ptr noundef %3252, ptr noundef %3254, i32 noundef %3255) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3257:                                             ; preds = %3230
  %3258 = load i32, ptr @test_count, align 4, !tbaa !5
  %3259 = add nsw i32 %3258, 1
  store i32 %3259, ptr @test_count, align 4, !tbaa !5
  %3260 = call zeroext i1 @s2n_is_hello_retry_message(ptr noundef nonnull %2740) #13
  br i1 %3260, label %3283, label %3261

3261:                                             ; preds = %3257
  %3262 = load i32, ptr %1419, align 4, !tbaa !5
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @s2n_print_stacktrace(ptr noundef %3263) #13
  %3265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3266 = trunc nuw i8 %3265 to i1
  br i1 %3266, label %3267, label %3271

3267:                                             ; preds = %3261
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = call i32 @fileno(ptr noundef %3268) #13
  %3270 = call i32 @isatty(i32 noundef %3269) #13
  %.not678 = icmp eq i32 %3270, 0
  br i1 %.not678, label %3271, label %3272

3271:                                             ; preds = %3267, %3261
  br label %3272

3272:                                             ; preds = %3267, %3271
  %.str.4.sink1960 = phi ptr [ @.str.4, %3271 ], [ @.str, %3267 ]
  store i32 %3262, ptr %1419, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = load i32, ptr %1365, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror(i32 noundef %3275, ptr noundef nonnull @.str.3) #13
  %3277 = load i32, ptr %1365, align 4, !tbaa !5
  %3278 = call ptr @s2n_strerror_debug(i32 noundef %3277, ptr noundef nonnull @.str.3) #13
  %3279 = load i32, ptr %1419, align 4, !tbaa !5
  %3280 = call ptr @strerror(i32 noundef %3279) #13
  %3281 = load i32, ptr %1419, align 4, !tbaa !5
  %3282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3273, ptr noundef nonnull %.str.4.sink1960, i32 noundef %3274, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 433, ptr noundef %3276, ptr noundef %3278, ptr noundef %3280, i32 noundef %3281) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3283:                                             ; preds = %3257
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = add nsw i32 %3284, 1
  store i32 %3285, ptr @test_count, align 4, !tbaa !5
  %3286 = call i32 @s2n_server_hello_retry_send(ptr noundef nonnull %2740) #13
  %3287 = icmp eq i32 %3286, -1
  br i1 %3287, label %3288, label %3310

3288:                                             ; preds = %3283
  %3289 = load i32, ptr %1419, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = call i32 @s2n_print_stacktrace(ptr noundef %3290) #13
  %3292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3293 = trunc nuw i8 %3292 to i1
  br i1 %3293, label %3294, label %3298

3294:                                             ; preds = %3288
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = call i32 @fileno(ptr noundef %3295) #13
  %3297 = call i32 @isatty(i32 noundef %3296) #13
  %.not760 = icmp eq i32 %3297, 0
  br i1 %.not760, label %3298, label %3299

3298:                                             ; preds = %3294, %3288
  br label %3299

3299:                                             ; preds = %3294, %3298
  %.str.4.sink1969 = phi ptr [ @.str.4, %3298 ], [ @.str, %3294 ]
  store i32 %3289, ptr %1419, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = load i32, ptr %1365, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror(i32 noundef %3302, ptr noundef nonnull @.str.3) #13
  %3304 = load i32, ptr %1365, align 4, !tbaa !5
  %3305 = call ptr @s2n_strerror_debug(i32 noundef %3304, ptr noundef nonnull @.str.3) #13
  %3306 = load i32, ptr %1419, align 4, !tbaa !5
  %3307 = call ptr @strerror(i32 noundef %3306) #13
  %3308 = load i32, ptr %1419, align 4, !tbaa !5
  %3309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3300, ptr noundef nonnull %.str.4.sink1969, i32 noundef %3301, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 435, ptr noundef %3303, ptr noundef %3305, ptr noundef %3307, i32 noundef %3308) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3310:                                             ; preds = %3283
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = add nsw i32 %3311, 1
  store i32 %3312, ptr @test_count, align 4, !tbaa !5
  %3313 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %3094) #13
  %3314 = icmp eq i32 %3313, -1
  br i1 %3314, label %3315, label %3337

3315:                                             ; preds = %3310
  %3316 = load i32, ptr %1419, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = call i32 @s2n_print_stacktrace(ptr noundef %3317) #13
  %3319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3320 = trunc nuw i8 %3319 to i1
  br i1 %3320, label %3321, label %3325

3321:                                             ; preds = %3315
  %3322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3323 = call i32 @fileno(ptr noundef %3322) #13
  %3324 = call i32 @isatty(i32 noundef %3323) #13
  %.not759 = icmp eq i32 %3324, 0
  br i1 %.not759, label %3325, label %3326

3325:                                             ; preds = %3321, %3315
  br label %3326

3326:                                             ; preds = %3321, %3325
  %.str.4.sink1978 = phi ptr [ @.str.4, %3325 ], [ @.str, %3321 ]
  store i32 %3316, ptr %1419, align 4, !tbaa !5
  %3327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = load i32, ptr %1365, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror(i32 noundef %3329, ptr noundef nonnull @.str.3) #13
  %3331 = load i32, ptr %1365, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror_debug(i32 noundef %3331, ptr noundef nonnull @.str.3) #13
  %3333 = load i32, ptr %1419, align 4, !tbaa !5
  %3334 = call ptr @strerror(i32 noundef %3333) #13
  %3335 = load i32, ptr %1419, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3327, ptr noundef nonnull %.str.4.sink1978, i32 noundef %3328, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.2, i32 noundef 437, ptr noundef %3330, ptr noundef %3332, ptr noundef %3334, i32 noundef %3335) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3337:                                             ; preds = %3310
  %3338 = load i32, ptr @test_count, align 4, !tbaa !5
  %3339 = add nsw i32 %3338, 1
  store i32 %3339, ptr @test_count, align 4, !tbaa !5
  %3340 = getelementptr inbounds i8, ptr %2740, i64 2044
  %3341 = load i32, ptr %3340, align 4, !tbaa !66
  %3342 = getelementptr inbounds i8, ptr %2740, i64 2040
  %3343 = load i32, ptr %3342, align 8, !tbaa !67
  %3344 = sub i32 %3341, %3343
  %3345 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3095, ptr noundef nonnull %3094, i32 noundef %3344) #13
  %3346 = icmp eq i32 %3345, -1
  br i1 %3346, label %3347, label %3369

3347:                                             ; preds = %3337
  %3348 = load i32, ptr %1419, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = call i32 @s2n_print_stacktrace(ptr noundef %3349) #13
  %3351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3352 = trunc nuw i8 %3351 to i1
  br i1 %3352, label %3353, label %3357

3353:                                             ; preds = %3347
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = call i32 @fileno(ptr noundef %3354) #13
  %3356 = call i32 @isatty(i32 noundef %3355) #13
  %.not758 = icmp eq i32 %3356, 0
  br i1 %.not758, label %3357, label %3358

3357:                                             ; preds = %3353, %3347
  br label %3358

3358:                                             ; preds = %3353, %3357
  %.str.4.sink1987 = phi ptr [ @.str.4, %3357 ], [ @.str, %3353 ]
  store i32 %3348, ptr %1419, align 4, !tbaa !5
  %3359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = load i32, ptr %1365, align 4, !tbaa !5
  %3362 = call ptr @s2n_strerror(i32 noundef %3361, ptr noundef nonnull @.str.3) #13
  %3363 = load i32, ptr %1365, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror_debug(i32 noundef %3363, ptr noundef nonnull @.str.3) #13
  %3365 = load i32, ptr %1419, align 4, !tbaa !5
  %3366 = call ptr @strerror(i32 noundef %3365) #13
  %3367 = load i32, ptr %1419, align 4, !tbaa !5
  %3368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3359, ptr noundef nonnull %.str.4.sink1987, i32 noundef %3360, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.2, i32 noundef 439, ptr noundef %3362, ptr noundef %3364, ptr noundef %3366, i32 noundef %3367) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3369:                                             ; preds = %3337
  %3370 = getelementptr inbounds i8, ptr %2767, i64 2176
  store i32 1, ptr %3370, align 8, !tbaa !70
  %3371 = load i32, ptr @test_count, align 4, !tbaa !5
  %3372 = add nsw i32 %3371, 1
  store i32 %3372, ptr @test_count, align 4, !tbaa !5
  %3373 = call i32 @s2n_server_hello_recv(ptr noundef nonnull %2767) #13
  %3374 = icmp eq i32 %3373, -1
  br i1 %3374, label %3375, label %3397

3375:                                             ; preds = %3369
  %3376 = load i32, ptr %1419, align 4, !tbaa !5
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = call i32 @s2n_print_stacktrace(ptr noundef %3377) #13
  %3379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3380 = trunc nuw i8 %3379 to i1
  br i1 %3380, label %3381, label %3385

3381:                                             ; preds = %3375
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = call i32 @fileno(ptr noundef %3382) #13
  %3384 = call i32 @isatty(i32 noundef %3383) #13
  %.not757 = icmp eq i32 %3384, 0
  br i1 %.not757, label %3385, label %3386

3385:                                             ; preds = %3381, %3375
  br label %3386

3386:                                             ; preds = %3381, %3385
  %.str.4.sink1996 = phi ptr [ @.str.4, %3385 ], [ @.str, %3381 ]
  store i32 %3376, ptr %1419, align 4, !tbaa !5
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = load i32, ptr @test_count, align 4, !tbaa !5
  %3389 = load i32, ptr %1365, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror(i32 noundef %3389, ptr noundef nonnull @.str.3) #13
  %3391 = load i32, ptr %1365, align 4, !tbaa !5
  %3392 = call ptr @s2n_strerror_debug(i32 noundef %3391, ptr noundef nonnull @.str.3) #13
  %3393 = load i32, ptr %1419, align 4, !tbaa !5
  %3394 = call ptr @strerror(i32 noundef %3393) #13
  %3395 = load i32, ptr %1419, align 4, !tbaa !5
  %3396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3387, ptr noundef nonnull %.str.4.sink1996, i32 noundef %3388, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.2, i32 noundef 441, ptr noundef %3390, ptr noundef %3392, ptr noundef %3394, i32 noundef %3395) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3397:                                             ; preds = %3369
  %3398 = load i32, ptr @test_count, align 4, !tbaa !5
  %3399 = add nsw i32 %3398, 1
  store i32 %3399, ptr @test_count, align 4, !tbaa !5
  %3400 = call i32 @s2n_client_hello_send(ptr noundef nonnull %2767) #13
  %3401 = icmp eq i32 %3400, -1
  br i1 %3401, label %3402, label %3424

3402:                                             ; preds = %3397
  %3403 = load i32, ptr %1419, align 4, !tbaa !5
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = call i32 @s2n_print_stacktrace(ptr noundef %3404) #13
  %3406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3407 = trunc nuw i8 %3406 to i1
  br i1 %3407, label %3408, label %3412

3408:                                             ; preds = %3402
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 @fileno(ptr noundef %3409) #13
  %3411 = call i32 @isatty(i32 noundef %3410) #13
  %.not756 = icmp eq i32 %3411, 0
  br i1 %.not756, label %3412, label %3413

3412:                                             ; preds = %3408, %3402
  br label %3413

3413:                                             ; preds = %3408, %3412
  %.str.4.sink2005 = phi ptr [ @.str.4, %3412 ], [ @.str, %3408 ]
  store i32 %3403, ptr %1419, align 4, !tbaa !5
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = load i32, ptr @test_count, align 4, !tbaa !5
  %3416 = load i32, ptr %1365, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror(i32 noundef %3416, ptr noundef nonnull @.str.3) #13
  %3418 = load i32, ptr %1365, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror_debug(i32 noundef %3418, ptr noundef nonnull @.str.3) #13
  %3420 = load i32, ptr %1419, align 4, !tbaa !5
  %3421 = call ptr @strerror(i32 noundef %3420) #13
  %3422 = load i32, ptr %1419, align 4, !tbaa !5
  %3423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3414, ptr noundef nonnull %.str.4.sink2005, i32 noundef %3415, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.2, i32 noundef 444, ptr noundef %3417, ptr noundef %3419, ptr noundef %3421, i32 noundef %3422) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3424:                                             ; preds = %3397
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = add nsw i32 %3425, 1
  store i32 %3426, ptr @test_count, align 4, !tbaa !5
  %3427 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %3095) #13
  %3428 = icmp eq i32 %3427, -1
  br i1 %3428, label %3429, label %3451

3429:                                             ; preds = %3424
  %3430 = load i32, ptr %1419, align 4, !tbaa !5
  %3431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3432 = call i32 @s2n_print_stacktrace(ptr noundef %3431) #13
  %3433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3434 = trunc nuw i8 %3433 to i1
  br i1 %3434, label %3435, label %3439

3435:                                             ; preds = %3429
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = call i32 @fileno(ptr noundef %3436) #13
  %3438 = call i32 @isatty(i32 noundef %3437) #13
  %.not755 = icmp eq i32 %3438, 0
  br i1 %.not755, label %3439, label %3440

3439:                                             ; preds = %3435, %3429
  br label %3440

3440:                                             ; preds = %3435, %3439
  %.str.4.sink2014 = phi ptr [ @.str.4, %3439 ], [ @.str, %3435 ]
  store i32 %3430, ptr %1419, align 4, !tbaa !5
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = load i32, ptr @test_count, align 4, !tbaa !5
  %3443 = load i32, ptr %1365, align 4, !tbaa !5
  %3444 = call ptr @s2n_strerror(i32 noundef %3443, ptr noundef nonnull @.str.3) #13
  %3445 = load i32, ptr %1365, align 4, !tbaa !5
  %3446 = call ptr @s2n_strerror_debug(i32 noundef %3445, ptr noundef nonnull @.str.3) #13
  %3447 = load i32, ptr %1419, align 4, !tbaa !5
  %3448 = call ptr @strerror(i32 noundef %3447) #13
  %3449 = load i32, ptr %1419, align 4, !tbaa !5
  %3450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3441, ptr noundef nonnull %.str.4.sink2014, i32 noundef %3442, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.2, i32 noundef 445, ptr noundef %3444, ptr noundef %3446, ptr noundef %3448, i32 noundef %3449) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3451:                                             ; preds = %3424
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = add nsw i32 %3452, 1
  store i32 %3453, ptr @test_count, align 4, !tbaa !5
  %3454 = load i32, ptr %3096, align 4, !tbaa !66
  %3455 = load i32, ptr %3098, align 8, !tbaa !67
  %3456 = sub i32 %3454, %3455
  %3457 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3094, ptr noundef nonnull %3095, i32 noundef %3456) #13
  %3458 = icmp eq i32 %3457, -1
  br i1 %3458, label %3459, label %3481

3459:                                             ; preds = %3451
  %3460 = load i32, ptr %1419, align 4, !tbaa !5
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = call i32 @s2n_print_stacktrace(ptr noundef %3461) #13
  %3463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3464 = trunc nuw i8 %3463 to i1
  br i1 %3464, label %3465, label %3469

3465:                                             ; preds = %3459
  %3466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3467 = call i32 @fileno(ptr noundef %3466) #13
  %3468 = call i32 @isatty(i32 noundef %3467) #13
  %.not754 = icmp eq i32 %3468, 0
  br i1 %.not754, label %3469, label %3470

3469:                                             ; preds = %3465, %3459
  br label %3470

3470:                                             ; preds = %3465, %3469
  %.str.4.sink2023 = phi ptr [ @.str.4, %3469 ], [ @.str, %3465 ]
  store i32 %3460, ptr %1419, align 4, !tbaa !5
  %3471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3472 = load i32, ptr @test_count, align 4, !tbaa !5
  %3473 = load i32, ptr %1365, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror(i32 noundef %3473, ptr noundef nonnull @.str.3) #13
  %3475 = load i32, ptr %1365, align 4, !tbaa !5
  %3476 = call ptr @s2n_strerror_debug(i32 noundef %3475, ptr noundef nonnull @.str.3) #13
  %3477 = load i32, ptr %1419, align 4, !tbaa !5
  %3478 = call ptr @strerror(i32 noundef %3477) #13
  %3479 = load i32, ptr %1419, align 4, !tbaa !5
  %3480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3471, ptr noundef nonnull %.str.4.sink2023, i32 noundef %3472, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.2, i32 noundef 447, ptr noundef %3474, ptr noundef %3476, ptr noundef %3478, i32 noundef %3479) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3481:                                             ; preds = %3451
  %3482 = load i32, ptr @test_count, align 4, !tbaa !5
  %3483 = add nsw i32 %3482, 1
  store i32 %3483, ptr @test_count, align 4, !tbaa !5
  %3484 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %2740) #13
  %3485 = icmp eq i32 %3484, -1
  br i1 %3485, label %3486, label %3508

3486:                                             ; preds = %3481
  %3487 = load i32, ptr %1419, align 4, !tbaa !5
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = call i32 @s2n_print_stacktrace(ptr noundef %3488) #13
  %3490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3491 = trunc nuw i8 %3490 to i1
  br i1 %3491, label %3492, label %3496

3492:                                             ; preds = %3486
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = call i32 @fileno(ptr noundef %3493) #13
  %3495 = call i32 @isatty(i32 noundef %3494) #13
  %.not753 = icmp eq i32 %3495, 0
  br i1 %.not753, label %3496, label %3497

3496:                                             ; preds = %3492, %3486
  br label %3497

3497:                                             ; preds = %3492, %3496
  %.str.4.sink2032 = phi ptr [ @.str.4, %3496 ], [ @.str, %3492 ]
  store i32 %3487, ptr %1419, align 4, !tbaa !5
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = load i32, ptr @test_count, align 4, !tbaa !5
  %3500 = load i32, ptr %1365, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror(i32 noundef %3500, ptr noundef nonnull @.str.3) #13
  %3502 = load i32, ptr %1365, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror_debug(i32 noundef %3502, ptr noundef nonnull @.str.3) #13
  %3504 = load i32, ptr %1419, align 4, !tbaa !5
  %3505 = call ptr @strerror(i32 noundef %3504) #13
  %3506 = load i32, ptr %1419, align 4, !tbaa !5
  %3507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3498, ptr noundef nonnull %.str.4.sink2032, i32 noundef %3499, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.2, i32 noundef 450, ptr noundef %3501, ptr noundef %3503, ptr noundef %3505, i32 noundef %3506) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3508:                                             ; preds = %3481
  %3509 = load i32, ptr @test_count, align 4, !tbaa !5
  %3510 = add nsw i32 %3509, 1
  store i32 %3510, ptr @test_count, align 4, !tbaa !5
  %3511 = load i32, ptr %17, align 4, !tbaa !68
  %3512 = icmp eq i32 %3511, 1
  br i1 %3512, label %3535, label %3513

3513:                                             ; preds = %3508
  %3514 = load i32, ptr %1419, align 4, !tbaa !5
  %3515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3516 = call i32 @s2n_print_stacktrace(ptr noundef %3515) #13
  %3517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3518 = trunc nuw i8 %3517 to i1
  br i1 %3518, label %3519, label %3523

3519:                                             ; preds = %3513
  %3520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3521 = call i32 @fileno(ptr noundef %3520) #13
  %3522 = call i32 @isatty(i32 noundef %3521) #13
  %.not679 = icmp eq i32 %3522, 0
  br i1 %.not679, label %3523, label %3524

3523:                                             ; preds = %3519, %3513
  br label %3524

3524:                                             ; preds = %3519, %3523
  %.str.4.sink2041 = phi ptr [ @.str.4, %3523 ], [ @.str, %3519 ]
  store i32 %3514, ptr %1419, align 4, !tbaa !5
  %3525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3526 = load i32, ptr @test_count, align 4, !tbaa !5
  %3527 = load i32, ptr %1365, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror(i32 noundef %3527, ptr noundef nonnull @.str.3) #13
  %3529 = load i32, ptr %1365, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror_debug(i32 noundef %3529, ptr noundef nonnull @.str.3) #13
  %3531 = load i32, ptr %1419, align 4, !tbaa !5
  %3532 = call ptr @strerror(i32 noundef %3531) #13
  %3533 = load i32, ptr %1419, align 4, !tbaa !5
  %3534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3525, ptr noundef nonnull %.str.4.sink2041, i32 noundef %3526, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.2, i32 noundef 451, ptr noundef %3528, ptr noundef %3530, ptr noundef %3532, i32 noundef %3533) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3535:                                             ; preds = %3508
  %3536 = add nsw i32 %3509, 2
  store i32 %3536, ptr @test_count, align 4, !tbaa !5
  %3537 = call i32 @s2n_connection_free(ptr noundef nonnull %2740) #13
  %3538 = icmp eq i32 %3537, -1
  br i1 %3538, label %3539, label %3561

3539:                                             ; preds = %3535
  %3540 = load i32, ptr %1419, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = call i32 @s2n_print_stacktrace(ptr noundef %3541) #13
  %3543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3544 = trunc nuw i8 %3543 to i1
  br i1 %3544, label %3545, label %3549

3545:                                             ; preds = %3539
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = call i32 @fileno(ptr noundef %3546) #13
  %3548 = call i32 @isatty(i32 noundef %3547) #13
  %.not752 = icmp eq i32 %3548, 0
  br i1 %.not752, label %3549, label %3550

3549:                                             ; preds = %3545, %3539
  br label %3550

3550:                                             ; preds = %3545, %3549
  %.str.4.sink2050 = phi ptr [ @.str.4, %3549 ], [ @.str, %3545 ]
  store i32 %3540, ptr %1419, align 4, !tbaa !5
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = load i32, ptr @test_count, align 4, !tbaa !5
  %3553 = load i32, ptr %1365, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror(i32 noundef %3553, ptr noundef nonnull @.str.3) #13
  %3555 = load i32, ptr %1365, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror_debug(i32 noundef %3555, ptr noundef nonnull @.str.3) #13
  %3557 = load i32, ptr %1419, align 4, !tbaa !5
  %3558 = call ptr @strerror(i32 noundef %3557) #13
  %3559 = load i32, ptr %1419, align 4, !tbaa !5
  %3560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3551, ptr noundef nonnull %.str.4.sink2050, i32 noundef %3552, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 453, ptr noundef %3554, ptr noundef %3556, ptr noundef %3558, i32 noundef %3559) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3561:                                             ; preds = %3535
  %3562 = load i32, ptr @test_count, align 4, !tbaa !5
  %3563 = add nsw i32 %3562, 1
  store i32 %3563, ptr @test_count, align 4, !tbaa !5
  %3564 = call i32 @s2n_connection_free(ptr noundef nonnull %2767) #13
  %3565 = icmp eq i32 %3564, -1
  br i1 %3565, label %3566, label %3588

3566:                                             ; preds = %3561
  %3567 = load i32, ptr %1419, align 4, !tbaa !5
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = call i32 @s2n_print_stacktrace(ptr noundef %3568) #13
  %3570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3571 = trunc nuw i8 %3570 to i1
  br i1 %3571, label %3572, label %3576

3572:                                             ; preds = %3566
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @fileno(ptr noundef %3573) #13
  %3575 = call i32 @isatty(i32 noundef %3574) #13
  %.not751 = icmp eq i32 %3575, 0
  br i1 %.not751, label %3576, label %3577

3576:                                             ; preds = %3572, %3566
  br label %3577

3577:                                             ; preds = %3572, %3576
  %.str.4.sink2059 = phi ptr [ @.str.4, %3576 ], [ @.str, %3572 ]
  store i32 %3567, ptr %1419, align 4, !tbaa !5
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = load i32, ptr @test_count, align 4, !tbaa !5
  %3580 = load i32, ptr %1365, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror(i32 noundef %3580, ptr noundef nonnull @.str.3) #13
  %3582 = load i32, ptr %1365, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror_debug(i32 noundef %3582, ptr noundef nonnull @.str.3) #13
  %3584 = load i32, ptr %1419, align 4, !tbaa !5
  %3585 = call ptr @strerror(i32 noundef %3584) #13
  %3586 = load i32, ptr %1419, align 4, !tbaa !5
  %3587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3578, ptr noundef nonnull %.str.4.sink2059, i32 noundef %3579, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.2, i32 noundef 454, ptr noundef %3581, ptr noundef %3583, ptr noundef %3585, i32 noundef %3586) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3588:                                             ; preds = %3561
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = add nsw i32 %3589, 1
  store i32 %3590, ptr @test_count, align 4, !tbaa !5
  %3591 = call i32 @s2n_config_free(ptr noundef nonnull %2713) #13
  %3592 = icmp eq i32 %3591, -1
  br i1 %3592, label %3593, label %3615

3593:                                             ; preds = %3588
  %3594 = load i32, ptr %1419, align 4, !tbaa !5
  %3595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3596 = call i32 @s2n_print_stacktrace(ptr noundef %3595) #13
  %3597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3598 = trunc nuw i8 %3597 to i1
  br i1 %3598, label %3599, label %3603

3599:                                             ; preds = %3593
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = call i32 @fileno(ptr noundef %3600) #13
  %3602 = call i32 @isatty(i32 noundef %3601) #13
  %.not750 = icmp eq i32 %3602, 0
  br i1 %.not750, label %3603, label %3604

3603:                                             ; preds = %3599, %3593
  br label %3604

3604:                                             ; preds = %3599, %3603
  %.str.4.sink2068 = phi ptr [ @.str.4, %3603 ], [ @.str, %3599 ]
  store i32 %3594, ptr %1419, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = load i32, ptr %1365, align 4, !tbaa !5
  %3608 = call ptr @s2n_strerror(i32 noundef %3607, ptr noundef nonnull @.str.3) #13
  %3609 = load i32, ptr %1365, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror_debug(i32 noundef %3609, ptr noundef nonnull @.str.3) #13
  %3611 = load i32, ptr %1419, align 4, !tbaa !5
  %3612 = call ptr @strerror(i32 noundef %3611) #13
  %3613 = load i32, ptr %1419, align 4, !tbaa !5
  %3614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3605, ptr noundef nonnull %.str.4.sink2068, i32 noundef %3606, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.2, i32 noundef 455, ptr noundef %3608, ptr noundef %3610, ptr noundef %3612, i32 noundef %3613) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3615:                                             ; preds = %3588
  %3616 = load i32, ptr @test_count, align 4, !tbaa !5
  %3617 = add nsw i32 %3616, 1
  store i32 %3617, ptr @test_count, align 4, !tbaa !5
  %3618 = call i32 @s2n_config_free(ptr noundef nonnull %2686) #13
  %3619 = icmp eq i32 %3618, -1
  br i1 %3619, label %3620, label %3642

3620:                                             ; preds = %3615
  %3621 = load i32, ptr %1419, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = call i32 @s2n_print_stacktrace(ptr noundef %3622) #13
  %3624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3625 = trunc nuw i8 %3624 to i1
  br i1 %3625, label %3626, label %3630

3626:                                             ; preds = %3620
  %3627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3628 = call i32 @fileno(ptr noundef %3627) #13
  %3629 = call i32 @isatty(i32 noundef %3628) #13
  %.not749 = icmp eq i32 %3629, 0
  br i1 %.not749, label %3630, label %3631

3630:                                             ; preds = %3626, %3620
  br label %3631

3631:                                             ; preds = %3626, %3630
  %.str.4.sink2077 = phi ptr [ @.str.4, %3630 ], [ @.str, %3626 ]
  store i32 %3621, ptr %1419, align 4, !tbaa !5
  %3632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3633 = load i32, ptr @test_count, align 4, !tbaa !5
  %3634 = load i32, ptr %1365, align 4, !tbaa !5
  %3635 = call ptr @s2n_strerror(i32 noundef %3634, ptr noundef nonnull @.str.3) #13
  %3636 = load i32, ptr %1365, align 4, !tbaa !5
  %3637 = call ptr @s2n_strerror_debug(i32 noundef %3636, ptr noundef nonnull @.str.3) #13
  %3638 = load i32, ptr %1419, align 4, !tbaa !5
  %3639 = call ptr @strerror(i32 noundef %3638) #13
  %3640 = load i32, ptr %1419, align 4, !tbaa !5
  %3641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3632, ptr noundef nonnull %.str.4.sink2077, i32 noundef %3633, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 456, ptr noundef %3635, ptr noundef %3637, ptr noundef %3639, i32 noundef %3640) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3642:                                             ; preds = %3615
  %3643 = load i32, ptr @test_count, align 4, !tbaa !5
  %3644 = add nsw i32 %3643, 1
  store i32 %3644, ptr @test_count, align 4, !tbaa !5
  %3645 = load ptr, ptr %16, align 8, !tbaa !9
  %3646 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %3645) #13
  %3647 = icmp eq i32 %3646, -1
  br i1 %3647, label %3648, label %3670

3648:                                             ; preds = %3642
  %3649 = load i32, ptr %1419, align 4, !tbaa !5
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = call i32 @s2n_print_stacktrace(ptr noundef %3650) #13
  %3652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3653 = trunc nuw i8 %3652 to i1
  br i1 %3653, label %3654, label %3658

3654:                                             ; preds = %3648
  %3655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3656 = call i32 @fileno(ptr noundef %3655) #13
  %3657 = call i32 @isatty(i32 noundef %3656) #13
  %.not748 = icmp eq i32 %3657, 0
  br i1 %.not748, label %3658, label %3659

3658:                                             ; preds = %3654, %3648
  br label %3659

3659:                                             ; preds = %3654, %3658
  %.str.4.sink2086 = phi ptr [ @.str.4, %3658 ], [ @.str, %3654 ]
  store i32 %3649, ptr %1419, align 4, !tbaa !5
  %3660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3661 = load i32, ptr @test_count, align 4, !tbaa !5
  %3662 = load i32, ptr %1365, align 4, !tbaa !5
  %3663 = call ptr @s2n_strerror(i32 noundef %3662, ptr noundef nonnull @.str.3) #13
  %3664 = load i32, ptr %1365, align 4, !tbaa !5
  %3665 = call ptr @s2n_strerror_debug(i32 noundef %3664, ptr noundef nonnull @.str.3) #13
  %3666 = load i32, ptr %1419, align 4, !tbaa !5
  %3667 = call ptr @strerror(i32 noundef %3666) #13
  %3668 = load i32, ptr %1419, align 4, !tbaa !5
  %3669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3660, ptr noundef nonnull %.str.4.sink2086, i32 noundef %3661, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 457, ptr noundef %3663, ptr noundef %3665, ptr noundef %3667, i32 noundef %3668) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3670:                                             ; preds = %3642
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #13
  store ptr null, ptr %18, align 8, !tbaa !9
  %3671 = load i32, ptr @test_count, align 4, !tbaa !5
  %3672 = add nsw i32 %3671, 1
  store i32 %3672, ptr @test_count, align 4, !tbaa !5
  %3673 = call ptr @s2n_config_new() #13
  %3674 = icmp eq ptr %3673, null
  br i1 %3674, label %3675, label %3697

3675:                                             ; preds = %3670
  %3676 = load i32, ptr %1419, align 4, !tbaa !5
  %3677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3678 = call i32 @s2n_print_stacktrace(ptr noundef %3677) #13
  %3679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3680 = trunc nuw i8 %3679 to i1
  br i1 %3680, label %3681, label %3685

3681:                                             ; preds = %3675
  %3682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3683 = call i32 @fileno(ptr noundef %3682) #13
  %3684 = call i32 @isatty(i32 noundef %3683) #13
  %.not747 = icmp eq i32 %3684, 0
  br i1 %.not747, label %3685, label %3686

3685:                                             ; preds = %3681, %3675
  br label %3686

3686:                                             ; preds = %3681, %3685
  %.str.4.sink2095 = phi ptr [ @.str.4, %3685 ], [ @.str, %3681 ]
  store i32 %3676, ptr %1419, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = load i32, ptr @test_count, align 4, !tbaa !5
  %3689 = load i32, ptr %1365, align 4, !tbaa !5
  %3690 = call ptr @s2n_strerror(i32 noundef %3689, ptr noundef nonnull @.str.3) #13
  %3691 = load i32, ptr %1365, align 4, !tbaa !5
  %3692 = call ptr @s2n_strerror_debug(i32 noundef %3691, ptr noundef nonnull @.str.3) #13
  %3693 = load i32, ptr %1419, align 4, !tbaa !5
  %3694 = call ptr @strerror(i32 noundef %3693) #13
  %3695 = load i32, ptr %1419, align 4, !tbaa !5
  %3696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3687, ptr noundef nonnull %.str.4.sink2095, i32 noundef %3688, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 470, ptr noundef %3690, ptr noundef %3692, ptr noundef %3694, i32 noundef %3695) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3697:                                             ; preds = %3670
  %3698 = load i32, ptr @test_count, align 4, !tbaa !5
  %3699 = add nsw i32 %3698, 1
  store i32 %3699, ptr @test_count, align 4, !tbaa !5
  %3700 = call ptr @s2n_config_new() #13
  %3701 = icmp eq ptr %3700, null
  br i1 %3701, label %3702, label %3724

3702:                                             ; preds = %3697
  %3703 = load i32, ptr %1419, align 4, !tbaa !5
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = call i32 @s2n_print_stacktrace(ptr noundef %3704) #13
  %3706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3707 = trunc nuw i8 %3706 to i1
  br i1 %3707, label %3708, label %3712

3708:                                             ; preds = %3702
  %3709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3710 = call i32 @fileno(ptr noundef %3709) #13
  %3711 = call i32 @isatty(i32 noundef %3710) #13
  %.not746 = icmp eq i32 %3711, 0
  br i1 %.not746, label %3712, label %3713

3712:                                             ; preds = %3708, %3702
  br label %3713

3713:                                             ; preds = %3708, %3712
  %.str.4.sink2104 = phi ptr [ @.str.4, %3712 ], [ @.str, %3708 ]
  store i32 %3703, ptr %1419, align 4, !tbaa !5
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = load i32, ptr @test_count, align 4, !tbaa !5
  %3716 = load i32, ptr %1365, align 4, !tbaa !5
  %3717 = call ptr @s2n_strerror(i32 noundef %3716, ptr noundef nonnull @.str.3) #13
  %3718 = load i32, ptr %1365, align 4, !tbaa !5
  %3719 = call ptr @s2n_strerror_debug(i32 noundef %3718, ptr noundef nonnull @.str.3) #13
  %3720 = load i32, ptr %1419, align 4, !tbaa !5
  %3721 = call ptr @strerror(i32 noundef %3720) #13
  %3722 = load i32, ptr %1419, align 4, !tbaa !5
  %3723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3714, ptr noundef nonnull %.str.4.sink2104, i32 noundef %3715, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.2, i32 noundef 471, ptr noundef %3717, ptr noundef %3719, ptr noundef %3721, i32 noundef %3722) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3724:                                             ; preds = %3697
  %3725 = load i32, ptr @test_count, align 4, !tbaa !5
  %3726 = add nsw i32 %3725, 1
  store i32 %3726, ptr @test_count, align 4, !tbaa !5
  %3727 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %3728 = icmp eq ptr %3727, null
  br i1 %3728, label %3729, label %3751

3729:                                             ; preds = %3724
  %3730 = load i32, ptr %1419, align 4, !tbaa !5
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = call i32 @s2n_print_stacktrace(ptr noundef %3731) #13
  %3733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3734 = trunc nuw i8 %3733 to i1
  br i1 %3734, label %3735, label %3739

3735:                                             ; preds = %3729
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = call i32 @fileno(ptr noundef %3736) #13
  %3738 = call i32 @isatty(i32 noundef %3737) #13
  %.not745 = icmp eq i32 %3738, 0
  br i1 %.not745, label %3739, label %3740

3739:                                             ; preds = %3735, %3729
  br label %3740

3740:                                             ; preds = %3735, %3739
  %.str.4.sink2113 = phi ptr [ @.str.4, %3739 ], [ @.str, %3735 ]
  store i32 %3730, ptr %1419, align 4, !tbaa !5
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %3743 = load i32, ptr %1365, align 4, !tbaa !5
  %3744 = call ptr @s2n_strerror(i32 noundef %3743, ptr noundef nonnull @.str.3) #13
  %3745 = load i32, ptr %1365, align 4, !tbaa !5
  %3746 = call ptr @s2n_strerror_debug(i32 noundef %3745, ptr noundef nonnull @.str.3) #13
  %3747 = load i32, ptr %1419, align 4, !tbaa !5
  %3748 = call ptr @strerror(i32 noundef %3747) #13
  %3749 = load i32, ptr %1419, align 4, !tbaa !5
  %3750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3741, ptr noundef nonnull %.str.4.sink2113, i32 noundef %3742, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 473, ptr noundef %3744, ptr noundef %3746, ptr noundef %3748, i32 noundef %3749) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3751:                                             ; preds = %3724
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = add nsw i32 %3752, 1
  store i32 %3753, ptr @test_count, align 4, !tbaa !5
  %3754 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %3755 = icmp eq ptr %3754, null
  br i1 %3755, label %3756, label %3778

3756:                                             ; preds = %3751
  %3757 = load i32, ptr %1419, align 4, !tbaa !5
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = call i32 @s2n_print_stacktrace(ptr noundef %3758) #13
  %3760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3761 = trunc nuw i8 %3760 to i1
  br i1 %3761, label %3762, label %3766

3762:                                             ; preds = %3756
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = call i32 @fileno(ptr noundef %3763) #13
  %3765 = call i32 @isatty(i32 noundef %3764) #13
  %.not744 = icmp eq i32 %3765, 0
  br i1 %.not744, label %3766, label %3767

3766:                                             ; preds = %3762, %3756
  br label %3767

3767:                                             ; preds = %3762, %3766
  %.str.4.sink2122 = phi ptr [ @.str.4, %3766 ], [ @.str, %3762 ]
  store i32 %3757, ptr %1419, align 4, !tbaa !5
  %3768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3769 = load i32, ptr @test_count, align 4, !tbaa !5
  %3770 = load i32, ptr %1365, align 4, !tbaa !5
  %3771 = call ptr @s2n_strerror(i32 noundef %3770, ptr noundef nonnull @.str.3) #13
  %3772 = load i32, ptr %1365, align 4, !tbaa !5
  %3773 = call ptr @s2n_strerror_debug(i32 noundef %3772, ptr noundef nonnull @.str.3) #13
  %3774 = load i32, ptr %1419, align 4, !tbaa !5
  %3775 = call ptr @strerror(i32 noundef %3774) #13
  %3776 = load i32, ptr %1419, align 4, !tbaa !5
  %3777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3768, ptr noundef nonnull %.str.4.sink2122, i32 noundef %3769, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 474, ptr noundef %3771, ptr noundef %3773, ptr noundef %3775, i32 noundef %3776) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3778:                                             ; preds = %3751
  %3779 = load i32, ptr @test_count, align 4, !tbaa !5
  %3780 = add nsw i32 %3779, 1
  store i32 %3780, ptr @test_count, align 4, !tbaa !5
  %3781 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %3700, ptr noundef nonnull @.str.17) #13
  %3782 = icmp eq i32 %3781, -1
  br i1 %3782, label %3783, label %3805

3783:                                             ; preds = %3778
  %3784 = load i32, ptr %1419, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = call i32 @s2n_print_stacktrace(ptr noundef %3785) #13
  %3787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3788 = trunc nuw i8 %3787 to i1
  br i1 %3788, label %3789, label %3793

3789:                                             ; preds = %3783
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = call i32 @fileno(ptr noundef %3790) #13
  %3792 = call i32 @isatty(i32 noundef %3791) #13
  %.not743 = icmp eq i32 %3792, 0
  br i1 %.not743, label %3793, label %3794

3793:                                             ; preds = %3789, %3783
  br label %3794

3794:                                             ; preds = %3789, %3793
  %.str.4.sink2131 = phi ptr [ @.str.4, %3793 ], [ @.str, %3789 ]
  store i32 %3784, ptr %1419, align 4, !tbaa !5
  %3795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3796 = load i32, ptr @test_count, align 4, !tbaa !5
  %3797 = load i32, ptr %1365, align 4, !tbaa !5
  %3798 = call ptr @s2n_strerror(i32 noundef %3797, ptr noundef nonnull @.str.3) #13
  %3799 = load i32, ptr %1365, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror_debug(i32 noundef %3799, ptr noundef nonnull @.str.3) #13
  %3801 = load i32, ptr %1419, align 4, !tbaa !5
  %3802 = call ptr @strerror(i32 noundef %3801) #13
  %3803 = load i32, ptr %1419, align 4, !tbaa !5
  %3804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3795, ptr noundef nonnull %.str.4.sink2131, i32 noundef %3796, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.2, i32 noundef 476, ptr noundef %3798, ptr noundef %3800, ptr noundef %3802, i32 noundef %3803) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3805:                                             ; preds = %3778
  %3806 = load i32, ptr @test_count, align 4, !tbaa !5
  %3807 = add nsw i32 %3806, 1
  store i32 %3807, ptr @test_count, align 4, !tbaa !5
  %3808 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %3673, ptr noundef nonnull @.str.17) #13
  %3809 = icmp eq i32 %3808, -1
  br i1 %3809, label %3810, label %3832

3810:                                             ; preds = %3805
  %3811 = load i32, ptr %1419, align 4, !tbaa !5
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = call i32 @s2n_print_stacktrace(ptr noundef %3812) #13
  %3814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3815 = trunc nuw i8 %3814 to i1
  br i1 %3815, label %3816, label %3820

3816:                                             ; preds = %3810
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = call i32 @fileno(ptr noundef %3817) #13
  %3819 = call i32 @isatty(i32 noundef %3818) #13
  %.not742 = icmp eq i32 %3819, 0
  br i1 %.not742, label %3820, label %3821

3820:                                             ; preds = %3816, %3810
  br label %3821

3821:                                             ; preds = %3816, %3820
  %.str.4.sink2140 = phi ptr [ @.str.4, %3820 ], [ @.str, %3816 ]
  store i32 %3811, ptr %1419, align 4, !tbaa !5
  %3822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3823 = load i32, ptr @test_count, align 4, !tbaa !5
  %3824 = load i32, ptr %1365, align 4, !tbaa !5
  %3825 = call ptr @s2n_strerror(i32 noundef %3824, ptr noundef nonnull @.str.3) #13
  %3826 = load i32, ptr %1365, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror_debug(i32 noundef %3826, ptr noundef nonnull @.str.3) #13
  %3828 = load i32, ptr %1419, align 4, !tbaa !5
  %3829 = call ptr @strerror(i32 noundef %3828) #13
  %3830 = load i32, ptr %1419, align 4, !tbaa !5
  %3831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3822, ptr noundef nonnull %.str.4.sink2140, i32 noundef %3823, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.2, i32 noundef 477, ptr noundef %3825, ptr noundef %3827, ptr noundef %3829, i32 noundef %3830) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3832:                                             ; preds = %3805
  %3833 = load i32, ptr @test_count, align 4, !tbaa !5
  %3834 = add nsw i32 %3833, 1
  store i32 %3834, ptr @test_count, align 4, !tbaa !5
  %3835 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %3673) #13
  %3836 = icmp eq i32 %3835, -1
  br i1 %3836, label %3837, label %3859

3837:                                             ; preds = %3832
  %3838 = load i32, ptr %1419, align 4, !tbaa !5
  %3839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3840 = call i32 @s2n_print_stacktrace(ptr noundef %3839) #13
  %3841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3842 = trunc nuw i8 %3841 to i1
  br i1 %3842, label %3843, label %3847

3843:                                             ; preds = %3837
  %3844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3845 = call i32 @fileno(ptr noundef %3844) #13
  %3846 = call i32 @isatty(i32 noundef %3845) #13
  %.not741 = icmp eq i32 %3846, 0
  br i1 %.not741, label %3847, label %3848

3847:                                             ; preds = %3843, %3837
  br label %3848

3848:                                             ; preds = %3843, %3847
  %.str.4.sink2149 = phi ptr [ @.str.4, %3847 ], [ @.str, %3843 ]
  store i32 %3838, ptr %1419, align 4, !tbaa !5
  %3849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3850 = load i32, ptr @test_count, align 4, !tbaa !5
  %3851 = load i32, ptr %1365, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror(i32 noundef %3851, ptr noundef nonnull @.str.3) #13
  %3853 = load i32, ptr %1365, align 4, !tbaa !5
  %3854 = call ptr @s2n_strerror_debug(i32 noundef %3853, ptr noundef nonnull @.str.3) #13
  %3855 = load i32, ptr %1419, align 4, !tbaa !5
  %3856 = call ptr @strerror(i32 noundef %3855) #13
  %3857 = load i32, ptr %1419, align 4, !tbaa !5
  %3858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3849, ptr noundef nonnull %.str.4.sink2149, i32 noundef %3850, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.2, i32 noundef 479, ptr noundef %3852, ptr noundef %3854, ptr noundef %3856, i32 noundef %3857) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3859:                                             ; preds = %3832
  %3860 = load i32, ptr @test_count, align 4, !tbaa !5
  %3861 = add nsw i32 %3860, 1
  store i32 %3861, ptr @test_count, align 4, !tbaa !5
  %3862 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %3700) #13
  %3863 = icmp eq i32 %3862, -1
  br i1 %3863, label %3864, label %3886

3864:                                             ; preds = %3859
  %3865 = load i32, ptr %1419, align 4, !tbaa !5
  %3866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3867 = call i32 @s2n_print_stacktrace(ptr noundef %3866) #13
  %3868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3869 = trunc nuw i8 %3868 to i1
  br i1 %3869, label %3870, label %3874

3870:                                             ; preds = %3864
  %3871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3872 = call i32 @fileno(ptr noundef %3871) #13
  %3873 = call i32 @isatty(i32 noundef %3872) #13
  %.not740 = icmp eq i32 %3873, 0
  br i1 %.not740, label %3874, label %3875

3874:                                             ; preds = %3870, %3864
  br label %3875

3875:                                             ; preds = %3870, %3874
  %.str.4.sink2158 = phi ptr [ @.str.4, %3874 ], [ @.str, %3870 ]
  store i32 %3865, ptr %1419, align 4, !tbaa !5
  %3876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3877 = load i32, ptr @test_count, align 4, !tbaa !5
  %3878 = load i32, ptr %1365, align 4, !tbaa !5
  %3879 = call ptr @s2n_strerror(i32 noundef %3878, ptr noundef nonnull @.str.3) #13
  %3880 = load i32, ptr %1365, align 4, !tbaa !5
  %3881 = call ptr @s2n_strerror_debug(i32 noundef %3880, ptr noundef nonnull @.str.3) #13
  %3882 = load i32, ptr %1419, align 4, !tbaa !5
  %3883 = call ptr @strerror(i32 noundef %3882) #13
  %3884 = load i32, ptr %1419, align 4, !tbaa !5
  %3885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3876, ptr noundef nonnull %.str.4.sink2158, i32 noundef %3877, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.2, i32 noundef 480, ptr noundef %3879, ptr noundef %3881, ptr noundef %3883, i32 noundef %3884) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3886:                                             ; preds = %3859
  %3887 = load i32, ptr @test_count, align 4, !tbaa !5
  %3888 = add nsw i32 %3887, 1
  store i32 %3888, ptr @test_count, align 4, !tbaa !5
  %3889 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %18, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.11) #13
  %3890 = icmp eq i32 %3889, -1
  br i1 %3890, label %3891, label %3913

3891:                                             ; preds = %3886
  %3892 = load i32, ptr %1419, align 4, !tbaa !5
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = call i32 @s2n_print_stacktrace(ptr noundef %3893) #13
  %3895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3896 = trunc nuw i8 %3895 to i1
  br i1 %3896, label %3897, label %3901

3897:                                             ; preds = %3891
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = call i32 @fileno(ptr noundef %3898) #13
  %3900 = call i32 @isatty(i32 noundef %3899) #13
  %.not739 = icmp eq i32 %3900, 0
  br i1 %.not739, label %3901, label %3902

3901:                                             ; preds = %3897, %3891
  br label %3902

3902:                                             ; preds = %3897, %3901
  %.str.4.sink2167 = phi ptr [ @.str.4, %3901 ], [ @.str, %3897 ]
  store i32 %3892, ptr %1419, align 4, !tbaa !5
  %3903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3904 = load i32, ptr @test_count, align 4, !tbaa !5
  %3905 = load i32, ptr %1365, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror(i32 noundef %3905, ptr noundef nonnull @.str.3) #13
  %3907 = load i32, ptr %1365, align 4, !tbaa !5
  %3908 = call ptr @s2n_strerror_debug(i32 noundef %3907, ptr noundef nonnull @.str.3) #13
  %3909 = load i32, ptr %1419, align 4, !tbaa !5
  %3910 = call ptr @strerror(i32 noundef %3909) #13
  %3911 = load i32, ptr %1419, align 4, !tbaa !5
  %3912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3903, ptr noundef nonnull %.str.4.sink2167, i32 noundef %3904, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 483, ptr noundef %3906, ptr noundef %3908, ptr noundef %3910, i32 noundef %3911) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3913:                                             ; preds = %3886
  %3914 = load i32, ptr @test_count, align 4, !tbaa !5
  %3915 = add nsw i32 %3914, 1
  store i32 %3915, ptr @test_count, align 4, !tbaa !5
  %3916 = load ptr, ptr %18, align 8, !tbaa !9
  %3917 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3700, ptr noundef %3916) #13
  %3918 = icmp eq i32 %3917, -1
  br i1 %3918, label %3919, label %3941

3919:                                             ; preds = %3913
  %3920 = load i32, ptr %1419, align 4, !tbaa !5
  %3921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3922 = call i32 @s2n_print_stacktrace(ptr noundef %3921) #13
  %3923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3924 = trunc nuw i8 %3923 to i1
  br i1 %3924, label %3925, label %3929

3925:                                             ; preds = %3919
  %3926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3927 = call i32 @fileno(ptr noundef %3926) #13
  %3928 = call i32 @isatty(i32 noundef %3927) #13
  %.not738 = icmp eq i32 %3928, 0
  br i1 %.not738, label %3929, label %3930

3929:                                             ; preds = %3925, %3919
  br label %3930

3930:                                             ; preds = %3925, %3929
  %.str.4.sink2176 = phi ptr [ @.str.4, %3929 ], [ @.str, %3925 ]
  store i32 %3920, ptr %1419, align 4, !tbaa !5
  %3931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3932 = load i32, ptr @test_count, align 4, !tbaa !5
  %3933 = load i32, ptr %1365, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror(i32 noundef %3933, ptr noundef nonnull @.str.3) #13
  %3935 = load i32, ptr %1365, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror_debug(i32 noundef %3935, ptr noundef nonnull @.str.3) #13
  %3937 = load i32, ptr %1419, align 4, !tbaa !5
  %3938 = call ptr @strerror(i32 noundef %3937) #13
  %3939 = load i32, ptr %1419, align 4, !tbaa !5
  %3940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3931, ptr noundef nonnull %.str.4.sink2176, i32 noundef %3932, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.2, i32 noundef 484, ptr noundef %3934, ptr noundef %3936, ptr noundef %3938, i32 noundef %3939) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3941:                                             ; preds = %3913
  %3942 = load i32, ptr @test_count, align 4, !tbaa !5
  %3943 = add nsw i32 %3942, 1
  store i32 %3943, ptr @test_count, align 4, !tbaa !5
  %3944 = load ptr, ptr %18, align 8, !tbaa !9
  %3945 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3673, ptr noundef %3944) #13
  %3946 = icmp eq i32 %3945, -1
  br i1 %3946, label %3947, label %3969

3947:                                             ; preds = %3941
  %3948 = load i32, ptr %1419, align 4, !tbaa !5
  %3949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3950 = call i32 @s2n_print_stacktrace(ptr noundef %3949) #13
  %3951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3952 = trunc nuw i8 %3951 to i1
  br i1 %3952, label %3953, label %3957

3953:                                             ; preds = %3947
  %3954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3955 = call i32 @fileno(ptr noundef %3954) #13
  %3956 = call i32 @isatty(i32 noundef %3955) #13
  %.not737 = icmp eq i32 %3956, 0
  br i1 %.not737, label %3957, label %3958

3957:                                             ; preds = %3953, %3947
  br label %3958

3958:                                             ; preds = %3953, %3957
  %.str.4.sink2185 = phi ptr [ @.str.4, %3957 ], [ @.str, %3953 ]
  store i32 %3948, ptr %1419, align 4, !tbaa !5
  %3959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3960 = load i32, ptr @test_count, align 4, !tbaa !5
  %3961 = load i32, ptr %1365, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror(i32 noundef %3961, ptr noundef nonnull @.str.3) #13
  %3963 = load i32, ptr %1365, align 4, !tbaa !5
  %3964 = call ptr @s2n_strerror_debug(i32 noundef %3963, ptr noundef nonnull @.str.3) #13
  %3965 = load i32, ptr %1419, align 4, !tbaa !5
  %3966 = call ptr @strerror(i32 noundef %3965) #13
  %3967 = load i32, ptr %1419, align 4, !tbaa !5
  %3968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3959, ptr noundef nonnull %.str.4.sink2185, i32 noundef %3960, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.2, i32 noundef 485, ptr noundef %3962, ptr noundef %3964, ptr noundef %3966, i32 noundef %3967) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3969:                                             ; preds = %3941
  %3970 = load i32, ptr @test_count, align 4, !tbaa !5
  %3971 = add nsw i32 %3970, 1
  store i32 %3971, ptr @test_count, align 4, !tbaa !5
  %3972 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3727, ptr noundef nonnull %3673) #13
  %3973 = icmp eq i32 %3972, -1
  br i1 %3973, label %3974, label %3996

3974:                                             ; preds = %3969
  %3975 = load i32, ptr %1419, align 4, !tbaa !5
  %3976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3977 = call i32 @s2n_print_stacktrace(ptr noundef %3976) #13
  %3978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3979 = trunc nuw i8 %3978 to i1
  br i1 %3979, label %3980, label %3984

3980:                                             ; preds = %3974
  %3981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3982 = call i32 @fileno(ptr noundef %3981) #13
  %3983 = call i32 @isatty(i32 noundef %3982) #13
  %.not736 = icmp eq i32 %3983, 0
  br i1 %.not736, label %3984, label %3985

3984:                                             ; preds = %3980, %3974
  br label %3985

3985:                                             ; preds = %3980, %3984
  %.str.4.sink2194 = phi ptr [ @.str.4, %3984 ], [ @.str, %3980 ]
  store i32 %3975, ptr %1419, align 4, !tbaa !5
  %3986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3987 = load i32, ptr @test_count, align 4, !tbaa !5
  %3988 = load i32, ptr %1365, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror(i32 noundef %3988, ptr noundef nonnull @.str.3) #13
  %3990 = load i32, ptr %1365, align 4, !tbaa !5
  %3991 = call ptr @s2n_strerror_debug(i32 noundef %3990, ptr noundef nonnull @.str.3) #13
  %3992 = load i32, ptr %1419, align 4, !tbaa !5
  %3993 = call ptr @strerror(i32 noundef %3992) #13
  %3994 = load i32, ptr %1419, align 4, !tbaa !5
  %3995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3986, ptr noundef nonnull %.str.4.sink2194, i32 noundef %3987, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 487, ptr noundef %3989, ptr noundef %3991, ptr noundef %3993, i32 noundef %3994) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3996:                                             ; preds = %3969
  %3997 = load i32, ptr @test_count, align 4, !tbaa !5
  %3998 = add nsw i32 %3997, 1
  store i32 %3998, ptr @test_count, align 4, !tbaa !5
  %3999 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3754, ptr noundef nonnull %3700) #13
  %4000 = icmp eq i32 %3999, -1
  br i1 %4000, label %4001, label %4023

4001:                                             ; preds = %3996
  %4002 = load i32, ptr %1419, align 4, !tbaa !5
  %4003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4004 = call i32 @s2n_print_stacktrace(ptr noundef %4003) #13
  %4005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4006 = trunc nuw i8 %4005 to i1
  br i1 %4006, label %4007, label %4011

4007:                                             ; preds = %4001
  %4008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4009 = call i32 @fileno(ptr noundef %4008) #13
  %4010 = call i32 @isatty(i32 noundef %4009) #13
  %.not735 = icmp eq i32 %4010, 0
  br i1 %.not735, label %4011, label %4012

4011:                                             ; preds = %4007, %4001
  br label %4012

4012:                                             ; preds = %4007, %4011
  %.str.4.sink2203 = phi ptr [ @.str.4, %4011 ], [ @.str, %4007 ]
  store i32 %4002, ptr %1419, align 4, !tbaa !5
  %4013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4014 = load i32, ptr @test_count, align 4, !tbaa !5
  %4015 = load i32, ptr %1365, align 4, !tbaa !5
  %4016 = call ptr @s2n_strerror(i32 noundef %4015, ptr noundef nonnull @.str.3) #13
  %4017 = load i32, ptr %1365, align 4, !tbaa !5
  %4018 = call ptr @s2n_strerror_debug(i32 noundef %4017, ptr noundef nonnull @.str.3) #13
  %4019 = load i32, ptr %1419, align 4, !tbaa !5
  %4020 = call ptr @strerror(i32 noundef %4019) #13
  %4021 = load i32, ptr %1419, align 4, !tbaa !5
  %4022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4013, ptr noundef nonnull %.str.4.sink2203, i32 noundef %4014, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.2, i32 noundef 488, ptr noundef %4016, ptr noundef %4018, ptr noundef %4020, i32 noundef %4021) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4023:                                             ; preds = %3996
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #13
  %4024 = load i32, ptr @test_count, align 4, !tbaa !5
  %4025 = add nsw i32 %4024, 1
  store i32 %4025, ptr @test_count, align 4, !tbaa !5
  %4026 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %19) #13
  %4027 = icmp eq i32 %4026, -1
  br i1 %4027, label %4028, label %4050

4028:                                             ; preds = %4023
  %4029 = load i32, ptr %1419, align 4, !tbaa !5
  %4030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4031 = call i32 @s2n_print_stacktrace(ptr noundef %4030) #13
  %4032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4033 = trunc nuw i8 %4032 to i1
  br i1 %4033, label %4034, label %4038

4034:                                             ; preds = %4028
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @fileno(ptr noundef %4035) #13
  %4037 = call i32 @isatty(i32 noundef %4036) #13
  %.not734 = icmp eq i32 %4037, 0
  br i1 %.not734, label %4038, label %4039

4038:                                             ; preds = %4034, %4028
  br label %4039

4039:                                             ; preds = %4034, %4038
  %.str.4.sink2212 = phi ptr [ @.str.4, %4038 ], [ @.str, %4034 ]
  store i32 %4029, ptr %1419, align 4, !tbaa !5
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = load i32, ptr @test_count, align 4, !tbaa !5
  %4042 = load i32, ptr %1365, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef nonnull @.str.3) #13
  %4044 = load i32, ptr %1365, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror_debug(i32 noundef %4044, ptr noundef nonnull @.str.3) #13
  %4046 = load i32, ptr %1419, align 4, !tbaa !5
  %4047 = call ptr @strerror(i32 noundef %4046) #13
  %4048 = load i32, ptr %1419, align 4, !tbaa !5
  %4049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4040, ptr noundef nonnull %.str.4.sink2212, i32 noundef %4041, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 491, ptr noundef %4043, ptr noundef %4045, ptr noundef %4047, i32 noundef %4048) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4050:                                             ; preds = %4023
  %4051 = load i32, ptr @test_count, align 4, !tbaa !5
  %4052 = add nsw i32 %4051, 1
  store i32 %4052, ptr @test_count, align 4, !tbaa !5
  %4053 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %3754, ptr noundef nonnull %3727, ptr noundef nonnull %19) #13
  %4054 = icmp eq i32 %4053, -1
  br i1 %4054, label %4055, label %4077

4055:                                             ; preds = %4050
  %4056 = load i32, ptr %1419, align 4, !tbaa !5
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = call i32 @s2n_print_stacktrace(ptr noundef %4057) #13
  %4059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4060 = trunc nuw i8 %4059 to i1
  br i1 %4060, label %4061, label %4065

4061:                                             ; preds = %4055
  %4062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4063 = call i32 @fileno(ptr noundef %4062) #13
  %4064 = call i32 @isatty(i32 noundef %4063) #13
  %.not733 = icmp eq i32 %4064, 0
  br i1 %.not733, label %4065, label %4066

4065:                                             ; preds = %4061, %4055
  br label %4066

4066:                                             ; preds = %4061, %4065
  %.str.4.sink2221 = phi ptr [ @.str.4, %4065 ], [ @.str, %4061 ]
  store i32 %4056, ptr %1419, align 4, !tbaa !5
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = load i32, ptr @test_count, align 4, !tbaa !5
  %4069 = load i32, ptr %1365, align 4, !tbaa !5
  %4070 = call ptr @s2n_strerror(i32 noundef %4069, ptr noundef nonnull @.str.3) #13
  %4071 = load i32, ptr %1365, align 4, !tbaa !5
  %4072 = call ptr @s2n_strerror_debug(i32 noundef %4071, ptr noundef nonnull @.str.3) #13
  %4073 = load i32, ptr %1419, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #13
  %4075 = load i32, ptr %1419, align 4, !tbaa !5
  %4076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4067, ptr noundef nonnull %.str.4.sink2221, i32 noundef %4068, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 492, ptr noundef %4070, ptr noundef %4072, ptr noundef %4074, i32 noundef %4075) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4077:                                             ; preds = %4050
  %4078 = getelementptr inbounds i8, ptr %3754, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %4078, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %20) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %20, ptr noundef nonnull align 4 dereferenceable(12) @__const.main.client_hello_ctx, i64 12, i1 false)
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = add nsw i32 %4079, 1
  store i32 %4080, ptr @test_count, align 4, !tbaa !5
  %4081 = call i32 @s2n_config_set_client_hello_cb(ptr noundef nonnull %3673, ptr noundef nonnull @client_hello_detect_duplicate_calls, ptr noundef nonnull %20) #13
  %4082 = icmp eq i32 %4081, -1
  br i1 %4082, label %4083, label %4105

4083:                                             ; preds = %4077
  %4084 = load i32, ptr %1419, align 4, !tbaa !5
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4086 = call i32 @s2n_print_stacktrace(ptr noundef %4085) #13
  %4087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4088 = trunc nuw i8 %4087 to i1
  br i1 %4088, label %4089, label %4093

4089:                                             ; preds = %4083
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = call i32 @fileno(ptr noundef %4090) #13
  %4092 = call i32 @isatty(i32 noundef %4091) #13
  %.not732 = icmp eq i32 %4092, 0
  br i1 %.not732, label %4093, label %4094

4093:                                             ; preds = %4089, %4083
  br label %4094

4094:                                             ; preds = %4089, %4093
  %.str.4.sink2230 = phi ptr [ @.str.4, %4093 ], [ @.str, %4089 ]
  store i32 %4084, ptr %1419, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = load i32, ptr @test_count, align 4, !tbaa !5
  %4097 = load i32, ptr %1365, align 4, !tbaa !5
  %4098 = call ptr @s2n_strerror(i32 noundef %4097, ptr noundef nonnull @.str.3) #13
  %4099 = load i32, ptr %1365, align 4, !tbaa !5
  %4100 = call ptr @s2n_strerror_debug(i32 noundef %4099, ptr noundef nonnull @.str.3) #13
  %4101 = load i32, ptr %1419, align 4, !tbaa !5
  %4102 = call ptr @strerror(i32 noundef %4101) #13
  %4103 = load i32, ptr %1419, align 4, !tbaa !5
  %4104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4095, ptr noundef nonnull %.str.4.sink2230, i32 noundef %4096, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.2, i32 noundef 501, ptr noundef %4098, ptr noundef %4100, ptr noundef %4102, i32 noundef %4103) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4105:                                             ; preds = %4077
  %4106 = load i32, ptr @test_count, align 4, !tbaa !5
  %4107 = add nsw i32 %4106, 1
  store i32 %4107, ptr @test_count, align 4, !tbaa !5
  %4108 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef nonnull %3673, i32 noundef 1) #13
  %4109 = icmp eq i32 %4108, -1
  br i1 %4109, label %4110, label %4132

4110:                                             ; preds = %4105
  %4111 = load i32, ptr %1419, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = call i32 @s2n_print_stacktrace(ptr noundef %4112) #13
  %4114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4115 = trunc nuw i8 %4114 to i1
  br i1 %4115, label %4116, label %4120

4116:                                             ; preds = %4110
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = call i32 @fileno(ptr noundef %4117) #13
  %4119 = call i32 @isatty(i32 noundef %4118) #13
  %.not731 = icmp eq i32 %4119, 0
  br i1 %.not731, label %4120, label %4121

4120:                                             ; preds = %4116, %4110
  br label %4121

4121:                                             ; preds = %4116, %4120
  %.str.4.sink2239 = phi ptr [ @.str.4, %4120 ], [ @.str, %4116 ]
  store i32 %4111, ptr %1419, align 4, !tbaa !5
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = load i32, ptr @test_count, align 4, !tbaa !5
  %4124 = load i32, ptr %1365, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror(i32 noundef %4124, ptr noundef nonnull @.str.3) #13
  %4126 = load i32, ptr %1365, align 4, !tbaa !5
  %4127 = call ptr @s2n_strerror_debug(i32 noundef %4126, ptr noundef nonnull @.str.3) #13
  %4128 = load i32, ptr %1419, align 4, !tbaa !5
  %4129 = call ptr @strerror(i32 noundef %4128) #13
  %4130 = load i32, ptr %1419, align 4, !tbaa !5
  %4131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4122, ptr noundef nonnull %.str.4.sink2239, i32 noundef %4123, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.2, i32 noundef 503, ptr noundef %4125, ptr noundef %4127, ptr noundef %4129, i32 noundef %4130) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4132:                                             ; preds = %4105
  %4133 = load i32, ptr @test_count, align 4, !tbaa !5
  %4134 = add nsw i32 %4133, 1
  store i32 %4134, ptr @test_count, align 4, !tbaa !5
  %4135 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %3727, ptr noundef nonnull %3754) #13
  %4136 = icmp eq i32 %4135, -1
  br i1 %4136, label %4137, label %4159

4137:                                             ; preds = %4132
  %4138 = load i32, ptr %1419, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = call i32 @s2n_print_stacktrace(ptr noundef %4139) #13
  %4141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4142 = trunc nuw i8 %4141 to i1
  br i1 %4142, label %4143, label %4147

4143:                                             ; preds = %4137
  %4144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4145 = call i32 @fileno(ptr noundef %4144) #13
  %4146 = call i32 @isatty(i32 noundef %4145) #13
  %.not730 = icmp eq i32 %4146, 0
  br i1 %.not730, label %4147, label %4148

4147:                                             ; preds = %4143, %4137
  br label %4148

4148:                                             ; preds = %4143, %4147
  %.str.4.sink2248 = phi ptr [ @.str.4, %4147 ], [ @.str, %4143 ]
  store i32 %4138, ptr %1419, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = load i32, ptr @test_count, align 4, !tbaa !5
  %4151 = load i32, ptr %1365, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror(i32 noundef %4151, ptr noundef nonnull @.str.3) #13
  %4153 = load i32, ptr %1365, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror_debug(i32 noundef %4153, ptr noundef nonnull @.str.3) #13
  %4155 = load i32, ptr %1419, align 4, !tbaa !5
  %4156 = call ptr @strerror(i32 noundef %4155) #13
  %4157 = load i32, ptr %1419, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4149, ptr noundef nonnull %.str.4.sink2248, i32 noundef %4150, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2, i32 noundef 506, ptr noundef %4152, ptr noundef %4154, ptr noundef %4156, i32 noundef %4157) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4159:                                             ; preds = %4132
  %4160 = load i32, ptr @test_count, align 4, !tbaa !5
  %4161 = add nsw i32 %4160, 1
  store i32 %4161, ptr @test_count, align 4, !tbaa !5
  %4162 = getelementptr inbounds i8, ptr %3727, i64 2172
  %4163 = load i32, ptr %4162, align 4, !tbaa !71
  %4164 = and i32 %4163, 16
  %.not680 = icmp eq i32 %4164, 0
  br i1 %.not680, label %4165, label %4187

4165:                                             ; preds = %4159
  %4166 = load i32, ptr %1419, align 4, !tbaa !5
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = call i32 @s2n_print_stacktrace(ptr noundef %4167) #13
  %4169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4170 = trunc nuw i8 %4169 to i1
  br i1 %4170, label %4171, label %4175

4171:                                             ; preds = %4165
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = call i32 @fileno(ptr noundef %4172) #13
  %4174 = call i32 @isatty(i32 noundef %4173) #13
  %.not681 = icmp eq i32 %4174, 0
  br i1 %.not681, label %4175, label %4176

4175:                                             ; preds = %4171, %4165
  br label %4176

4176:                                             ; preds = %4171, %4175
  %.str.4.sink2257 = phi ptr [ @.str.4, %4175 ], [ @.str, %4171 ]
  store i32 %4166, ptr %1419, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = load i32, ptr @test_count, align 4, !tbaa !5
  %4179 = load i32, ptr %1365, align 4, !tbaa !5
  %4180 = call ptr @s2n_strerror(i32 noundef %4179, ptr noundef nonnull @.str.3) #13
  %4181 = load i32, ptr %1365, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror_debug(i32 noundef %4181, ptr noundef nonnull @.str.3) #13
  %4183 = load i32, ptr %1419, align 4, !tbaa !5
  %4184 = call ptr @strerror(i32 noundef %4183) #13
  %4185 = load i32, ptr %1419, align 4, !tbaa !5
  %4186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4177, ptr noundef nonnull %.str.4.sink2257, i32 noundef %4178, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.2, i32 noundef 507, ptr noundef %4180, ptr noundef %4182, ptr noundef %4184, i32 noundef %4185) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4187:                                             ; preds = %4159
  %4188 = add nsw i32 %4160, 2
  store i32 %4188, ptr @test_count, align 4, !tbaa !5
  %4189 = load i32, ptr %20, align 4, !tbaa !68
  %4190 = icmp eq i32 %4189, 1
  br i1 %4190, label %4213, label %4191

4191:                                             ; preds = %4187
  %4192 = load i32, ptr %1419, align 4, !tbaa !5
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @s2n_print_stacktrace(ptr noundef %4193) #13
  %4195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4196 = trunc nuw i8 %4195 to i1
  br i1 %4196, label %4197, label %4201

4197:                                             ; preds = %4191
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @fileno(ptr noundef %4198) #13
  %4200 = call i32 @isatty(i32 noundef %4199) #13
  %.not682 = icmp eq i32 %4200, 0
  br i1 %.not682, label %4201, label %4202

4201:                                             ; preds = %4197, %4191
  br label %4202

4202:                                             ; preds = %4197, %4201
  %.str.4.sink2266 = phi ptr [ @.str.4, %4201 ], [ @.str, %4197 ]
  store i32 %4192, ptr %1419, align 4, !tbaa !5
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = load i32, ptr @test_count, align 4, !tbaa !5
  %4205 = load i32, ptr %1365, align 4, !tbaa !5
  %4206 = call ptr @s2n_strerror(i32 noundef %4205, ptr noundef nonnull @.str.3) #13
  %4207 = load i32, ptr %1365, align 4, !tbaa !5
  %4208 = call ptr @s2n_strerror_debug(i32 noundef %4207, ptr noundef nonnull @.str.3) #13
  %4209 = load i32, ptr %1419, align 4, !tbaa !5
  %4210 = call ptr @strerror(i32 noundef %4209) #13
  %4211 = load i32, ptr %1419, align 4, !tbaa !5
  %4212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4203, ptr noundef nonnull %.str.4.sink2266, i32 noundef %4204, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.2, i32 noundef 508, ptr noundef %4206, ptr noundef %4208, ptr noundef %4210, i32 noundef %4211) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4213:                                             ; preds = %4187
  %4214 = add nsw i32 %4160, 3
  store i32 %4214, ptr @test_count, align 4, !tbaa !5
  %4215 = call ptr @s2n_connection_get_client_hello(ptr noundef nonnull %3727) #13
  %4216 = icmp eq ptr %4215, null
  br i1 %4216, label %4217, label %4239

4217:                                             ; preds = %4213
  %4218 = load i32, ptr %1419, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @s2n_print_stacktrace(ptr noundef %4219) #13
  %4221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4222 = trunc nuw i8 %4221 to i1
  br i1 %4222, label %4223, label %4227

4223:                                             ; preds = %4217
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @fileno(ptr noundef %4224) #13
  %4226 = call i32 @isatty(i32 noundef %4225) #13
  %.not729 = icmp eq i32 %4226, 0
  br i1 %.not729, label %4227, label %4228

4227:                                             ; preds = %4223, %4217
  br label %4228

4228:                                             ; preds = %4223, %4227
  %.str.4.sink2275 = phi ptr [ @.str.4, %4227 ], [ @.str, %4223 ]
  store i32 %4218, ptr %1419, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = load i32, ptr %1365, align 4, !tbaa !5
  %4232 = call ptr @s2n_strerror(i32 noundef %4231, ptr noundef nonnull @.str.3) #13
  %4233 = load i32, ptr %1365, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror_debug(i32 noundef %4233, ptr noundef nonnull @.str.3) #13
  %4235 = load i32, ptr %1419, align 4, !tbaa !5
  %4236 = call ptr @strerror(i32 noundef %4235) #13
  %4237 = load i32, ptr %1419, align 4, !tbaa !5
  %4238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef nonnull %.str.4.sink2275, i32 noundef %4230, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.2, i32 noundef 510, ptr noundef %4232, ptr noundef %4234, ptr noundef %4236, i32 noundef %4237) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4239:                                             ; preds = %4213
  %4240 = load i32, ptr @test_count, align 4, !tbaa !5
  %4241 = add nsw i32 %4240, 1
  store i32 %4241, ptr @test_count, align 4, !tbaa !5
  %4242 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %3754, i32 noundef 16) #13
  br i1 %4242, label %4265, label %4243

4243:                                             ; preds = %4239
  %4244 = load i32, ptr %1419, align 4, !tbaa !5
  %4245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4246 = call i32 @s2n_print_stacktrace(ptr noundef %4245) #13
  %4247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4248 = trunc nuw i8 %4247 to i1
  br i1 %4248, label %4249, label %4253

4249:                                             ; preds = %4243
  %4250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4251 = call i32 @fileno(ptr noundef %4250) #13
  %4252 = call i32 @isatty(i32 noundef %4251) #13
  %.not683 = icmp eq i32 %4252, 0
  br i1 %.not683, label %4253, label %4254

4253:                                             ; preds = %4249, %4243
  br label %4254

4254:                                             ; preds = %4249, %4253
  %.str.4.sink2284 = phi ptr [ @.str.4, %4253 ], [ @.str, %4249 ]
  store i32 %4244, ptr %1419, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = load i32, ptr @test_count, align 4, !tbaa !5
  %4257 = load i32, ptr %1365, align 4, !tbaa !5
  %4258 = call ptr @s2n_strerror(i32 noundef %4257, ptr noundef nonnull @.str.3) #13
  %4259 = load i32, ptr %1365, align 4, !tbaa !5
  %4260 = call ptr @s2n_strerror_debug(i32 noundef %4259, ptr noundef nonnull @.str.3) #13
  %4261 = load i32, ptr %1419, align 4, !tbaa !5
  %4262 = call ptr @strerror(i32 noundef %4261) #13
  %4263 = load i32, ptr %1419, align 4, !tbaa !5
  %4264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4255, ptr noundef nonnull %.str.4.sink2284, i32 noundef %4256, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 511, ptr noundef %4258, ptr noundef %4260, ptr noundef %4262, i32 noundef %4263) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4265:                                             ; preds = %4239
  %4266 = load i32, ptr @test_count, align 4, !tbaa !5
  %4267 = add nsw i32 %4266, 1
  store i32 %4267, ptr @test_count, align 4, !tbaa !5
  %4268 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %3727, i32 noundef 16) #13
  br i1 %4268, label %4291, label %4269

4269:                                             ; preds = %4265
  %4270 = load i32, ptr %1419, align 4, !tbaa !5
  %4271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4272 = call i32 @s2n_print_stacktrace(ptr noundef %4271) #13
  %4273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4274 = trunc nuw i8 %4273 to i1
  br i1 %4274, label %4275, label %4279

4275:                                             ; preds = %4269
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = call i32 @fileno(ptr noundef %4276) #13
  %4278 = call i32 @isatty(i32 noundef %4277) #13
  %.not684 = icmp eq i32 %4278, 0
  br i1 %.not684, label %4279, label %4280

4279:                                             ; preds = %4275, %4269
  br label %4280

4280:                                             ; preds = %4275, %4279
  %.str.4.sink2293 = phi ptr [ @.str.4, %4279 ], [ @.str, %4275 ]
  store i32 %4270, ptr %1419, align 4, !tbaa !5
  %4281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4282 = load i32, ptr @test_count, align 4, !tbaa !5
  %4283 = load i32, ptr %1365, align 4, !tbaa !5
  %4284 = call ptr @s2n_strerror(i32 noundef %4283, ptr noundef nonnull @.str.3) #13
  %4285 = load i32, ptr %1365, align 4, !tbaa !5
  %4286 = call ptr @s2n_strerror_debug(i32 noundef %4285, ptr noundef nonnull @.str.3) #13
  %4287 = load i32, ptr %1419, align 4, !tbaa !5
  %4288 = call ptr @strerror(i32 noundef %4287) #13
  %4289 = load i32, ptr %1419, align 4, !tbaa !5
  %4290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4281, ptr noundef nonnull %.str.4.sink2293, i32 noundef %4282, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 512, ptr noundef %4284, ptr noundef %4286, ptr noundef %4288, i32 noundef %4289) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4291:                                             ; preds = %4265
  %4292 = load i32, ptr @test_count, align 4, !tbaa !5
  %4293 = add nsw i32 %4292, 1
  store i32 %4293, ptr @test_count, align 4, !tbaa !5
  %4294 = call i32 @s2n_connection_free(ptr noundef nonnull %3727) #13
  %4295 = icmp eq i32 %4294, -1
  br i1 %4295, label %4296, label %4318

4296:                                             ; preds = %4291
  %4297 = load i32, ptr %1419, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = call i32 @s2n_print_stacktrace(ptr noundef %4298) #13
  %4300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4301 = trunc nuw i8 %4300 to i1
  br i1 %4301, label %4302, label %4306

4302:                                             ; preds = %4296
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @fileno(ptr noundef %4303) #13
  %4305 = call i32 @isatty(i32 noundef %4304) #13
  %.not728 = icmp eq i32 %4305, 0
  br i1 %.not728, label %4306, label %4307

4306:                                             ; preds = %4302, %4296
  br label %4307

4307:                                             ; preds = %4302, %4306
  %.str.4.sink2302 = phi ptr [ @.str.4, %4306 ], [ @.str, %4302 ]
  store i32 %4297, ptr %1419, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = load i32, ptr %1365, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror(i32 noundef %4310, ptr noundef nonnull @.str.3) #13
  %4312 = load i32, ptr %1365, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror_debug(i32 noundef %4312, ptr noundef nonnull @.str.3) #13
  %4314 = load i32, ptr %1419, align 4, !tbaa !5
  %4315 = call ptr @strerror(i32 noundef %4314) #13
  %4316 = load i32, ptr %1419, align 4, !tbaa !5
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4308, ptr noundef nonnull %.str.4.sink2302, i32 noundef %4309, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 514, ptr noundef %4311, ptr noundef %4313, ptr noundef %4315, i32 noundef %4316) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4318:                                             ; preds = %4291
  %4319 = load i32, ptr @test_count, align 4, !tbaa !5
  %4320 = add nsw i32 %4319, 1
  store i32 %4320, ptr @test_count, align 4, !tbaa !5
  %4321 = call i32 @s2n_connection_free(ptr noundef nonnull %3754) #13
  %4322 = icmp eq i32 %4321, -1
  br i1 %4322, label %4323, label %4345

4323:                                             ; preds = %4318
  %4324 = load i32, ptr %1419, align 4, !tbaa !5
  %4325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4326 = call i32 @s2n_print_stacktrace(ptr noundef %4325) #13
  %4327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4328 = trunc nuw i8 %4327 to i1
  br i1 %4328, label %4329, label %4333

4329:                                             ; preds = %4323
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = call i32 @fileno(ptr noundef %4330) #13
  %4332 = call i32 @isatty(i32 noundef %4331) #13
  %.not727 = icmp eq i32 %4332, 0
  br i1 %.not727, label %4333, label %4334

4333:                                             ; preds = %4329, %4323
  br label %4334

4334:                                             ; preds = %4329, %4333
  %.str.4.sink2311 = phi ptr [ @.str.4, %4333 ], [ @.str, %4329 ]
  store i32 %4324, ptr %1419, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = load i32, ptr @test_count, align 4, !tbaa !5
  %4337 = load i32, ptr %1365, align 4, !tbaa !5
  %4338 = call ptr @s2n_strerror(i32 noundef %4337, ptr noundef nonnull @.str.3) #13
  %4339 = load i32, ptr %1365, align 4, !tbaa !5
  %4340 = call ptr @s2n_strerror_debug(i32 noundef %4339, ptr noundef nonnull @.str.3) #13
  %4341 = load i32, ptr %1419, align 4, !tbaa !5
  %4342 = call ptr @strerror(i32 noundef %4341) #13
  %4343 = load i32, ptr %1419, align 4, !tbaa !5
  %4344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4335, ptr noundef nonnull %.str.4.sink2311, i32 noundef %4336, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.2, i32 noundef 515, ptr noundef %4338, ptr noundef %4340, ptr noundef %4342, i32 noundef %4343) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4345:                                             ; preds = %4318
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = add nsw i32 %4346, 1
  store i32 %4347, ptr @test_count, align 4, !tbaa !5
  %4348 = call i32 @s2n_config_free(ptr noundef nonnull %3700) #13
  %4349 = icmp eq i32 %4348, -1
  br i1 %4349, label %4350, label %4372

4350:                                             ; preds = %4345
  %4351 = load i32, ptr %1419, align 4, !tbaa !5
  %4352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4353 = call i32 @s2n_print_stacktrace(ptr noundef %4352) #13
  %4354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4355 = trunc nuw i8 %4354 to i1
  br i1 %4355, label %4356, label %4360

4356:                                             ; preds = %4350
  %4357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4358 = call i32 @fileno(ptr noundef %4357) #13
  %4359 = call i32 @isatty(i32 noundef %4358) #13
  %.not726 = icmp eq i32 %4359, 0
  br i1 %.not726, label %4360, label %4361

4360:                                             ; preds = %4356, %4350
  br label %4361

4361:                                             ; preds = %4356, %4360
  %.str.4.sink2320 = phi ptr [ @.str.4, %4360 ], [ @.str, %4356 ]
  store i32 %4351, ptr %1419, align 4, !tbaa !5
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = load i32, ptr @test_count, align 4, !tbaa !5
  %4364 = load i32, ptr %1365, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror(i32 noundef %4364, ptr noundef nonnull @.str.3) #13
  %4366 = load i32, ptr %1365, align 4, !tbaa !5
  %4367 = call ptr @s2n_strerror_debug(i32 noundef %4366, ptr noundef nonnull @.str.3) #13
  %4368 = load i32, ptr %1419, align 4, !tbaa !5
  %4369 = call ptr @strerror(i32 noundef %4368) #13
  %4370 = load i32, ptr %1419, align 4, !tbaa !5
  %4371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4362, ptr noundef nonnull %.str.4.sink2320, i32 noundef %4363, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.2, i32 noundef 516, ptr noundef %4365, ptr noundef %4367, ptr noundef %4369, i32 noundef %4370) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4372:                                             ; preds = %4345
  %4373 = load i32, ptr @test_count, align 4, !tbaa !5
  %4374 = add nsw i32 %4373, 1
  store i32 %4374, ptr @test_count, align 4, !tbaa !5
  %4375 = call i32 @s2n_config_free(ptr noundef nonnull %3673) #13
  %4376 = icmp eq i32 %4375, -1
  br i1 %4376, label %4377, label %4399

4377:                                             ; preds = %4372
  %4378 = load i32, ptr %1419, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4380 = call i32 @s2n_print_stacktrace(ptr noundef %4379) #13
  %4381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4382 = trunc nuw i8 %4381 to i1
  br i1 %4382, label %4383, label %4387

4383:                                             ; preds = %4377
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = call i32 @fileno(ptr noundef %4384) #13
  %4386 = call i32 @isatty(i32 noundef %4385) #13
  %.not725 = icmp eq i32 %4386, 0
  br i1 %.not725, label %4387, label %4388

4387:                                             ; preds = %4383, %4377
  br label %4388

4388:                                             ; preds = %4383, %4387
  %.str.4.sink2329 = phi ptr [ @.str.4, %4387 ], [ @.str, %4383 ]
  store i32 %4378, ptr %1419, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %4391 = load i32, ptr %1365, align 4, !tbaa !5
  %4392 = call ptr @s2n_strerror(i32 noundef %4391, ptr noundef nonnull @.str.3) #13
  %4393 = load i32, ptr %1365, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror_debug(i32 noundef %4393, ptr noundef nonnull @.str.3) #13
  %4395 = load i32, ptr %1419, align 4, !tbaa !5
  %4396 = call ptr @strerror(i32 noundef %4395) #13
  %4397 = load i32, ptr %1419, align 4, !tbaa !5
  %4398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4389, ptr noundef nonnull %.str.4.sink2329, i32 noundef %4390, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 517, ptr noundef %4392, ptr noundef %4394, ptr noundef %4396, i32 noundef %4397) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4399:                                             ; preds = %4372
  %4400 = load i32, ptr @test_count, align 4, !tbaa !5
  %4401 = add nsw i32 %4400, 1
  store i32 %4401, ptr @test_count, align 4, !tbaa !5
  %4402 = load ptr, ptr %18, align 8, !tbaa !9
  %4403 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %4402) #13
  %4404 = icmp eq i32 %4403, -1
  br i1 %4404, label %4405, label %4427

4405:                                             ; preds = %4399
  %4406 = load i32, ptr %1419, align 4, !tbaa !5
  %4407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4408 = call i32 @s2n_print_stacktrace(ptr noundef %4407) #13
  %4409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4410 = trunc nuw i8 %4409 to i1
  br i1 %4410, label %4411, label %4415

4411:                                             ; preds = %4405
  %4412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4413 = call i32 @fileno(ptr noundef %4412) #13
  %4414 = call i32 @isatty(i32 noundef %4413) #13
  %.not724 = icmp eq i32 %4414, 0
  br i1 %.not724, label %4415, label %4416

4415:                                             ; preds = %4411, %4405
  br label %4416

4416:                                             ; preds = %4411, %4415
  %.str.4.sink2338 = phi ptr [ @.str.4, %4415 ], [ @.str, %4411 ]
  store i32 %4406, ptr %1419, align 4, !tbaa !5
  %4417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4418 = load i32, ptr @test_count, align 4, !tbaa !5
  %4419 = load i32, ptr %1365, align 4, !tbaa !5
  %4420 = call ptr @s2n_strerror(i32 noundef %4419, ptr noundef nonnull @.str.3) #13
  %4421 = load i32, ptr %1365, align 4, !tbaa !5
  %4422 = call ptr @s2n_strerror_debug(i32 noundef %4421, ptr noundef nonnull @.str.3) #13
  %4423 = load i32, ptr %1419, align 4, !tbaa !5
  %4424 = call ptr @strerror(i32 noundef %4423) #13
  %4425 = load i32, ptr %1419, align 4, !tbaa !5
  %4426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4417, ptr noundef nonnull %.str.4.sink2338, i32 noundef %4418, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 518, ptr noundef %4420, ptr noundef %4422, ptr noundef %4424, i32 noundef %4425) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4427:                                             ; preds = %4399
  %4428 = load i32, ptr @test_count, align 4, !tbaa !5
  %4429 = add nsw i32 %4428, 1
  store i32 %4429, ptr @test_count, align 4, !tbaa !5
  %4430 = call i32 @s2n_io_pair_close(ptr noundef nonnull %19) #13
  %4431 = icmp eq i32 %4430, -1
  br i1 %4431, label %4432, label %4454

4432:                                             ; preds = %4427
  %4433 = load i32, ptr %1419, align 4, !tbaa !5
  %4434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4435 = call i32 @s2n_print_stacktrace(ptr noundef %4434) #13
  %4436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4437 = trunc nuw i8 %4436 to i1
  br i1 %4437, label %4438, label %4442

4438:                                             ; preds = %4432
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = call i32 @fileno(ptr noundef %4439) #13
  %4441 = call i32 @isatty(i32 noundef %4440) #13
  %.not723 = icmp eq i32 %4441, 0
  br i1 %.not723, label %4442, label %4443

4442:                                             ; preds = %4438, %4432
  br label %4443

4443:                                             ; preds = %4438, %4442
  %.str.4.sink2347 = phi ptr [ @.str.4, %4442 ], [ @.str, %4438 ]
  store i32 %4433, ptr %1419, align 4, !tbaa !5
  %4444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4445 = load i32, ptr @test_count, align 4, !tbaa !5
  %4446 = load i32, ptr %1365, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror(i32 noundef %4446, ptr noundef nonnull @.str.3) #13
  %4448 = load i32, ptr %1365, align 4, !tbaa !5
  %4449 = call ptr @s2n_strerror_debug(i32 noundef %4448, ptr noundef nonnull @.str.3) #13
  %4450 = load i32, ptr %1419, align 4, !tbaa !5
  %4451 = call ptr @strerror(i32 noundef %4450) #13
  %4452 = load i32, ptr %1419, align 4, !tbaa !5
  %4453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4444, ptr noundef nonnull %.str.4.sink2347, i32 noundef %4445, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 519, ptr noundef %4447, ptr noundef %4449, ptr noundef %4451, i32 noundef %4452) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4454:                                             ; preds = %4427
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #13
  %4455 = load i32, ptr @test_count, align 4, !tbaa !5
  %4456 = add nsw i32 %4455, 1
  store i32 %4456, ptr @test_count, align 4, !tbaa !5
  %4457 = call i32 @hello_retry_client_hello_cb_test()
  %4458 = call zeroext i1 @s2n_result_is_ok(i32 %4457)
  br i1 %4458, label %4481, label %4459

4459:                                             ; preds = %4454
  %4460 = load i32, ptr %1419, align 4, !tbaa !5
  %4461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4462 = call i32 @s2n_print_stacktrace(ptr noundef %4461) #13
  %4463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4464 = trunc nuw i8 %4463 to i1
  br i1 %4464, label %4465, label %4469

4465:                                             ; preds = %4459
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = call i32 @fileno(ptr noundef %4466) #13
  %4468 = call i32 @isatty(i32 noundef %4467) #13
  %.not685 = icmp eq i32 %4468, 0
  br i1 %.not685, label %4469, label %4470

4469:                                             ; preds = %4465, %4459
  br label %4470

4470:                                             ; preds = %4465, %4469
  %.str.4.sink2356 = phi ptr [ @.str.4, %4469 ], [ @.str, %4465 ]
  store i32 %4460, ptr %1419, align 4, !tbaa !5
  %4471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4472 = load i32, ptr @test_count, align 4, !tbaa !5
  %4473 = load i32, ptr %1365, align 4, !tbaa !5
  %4474 = call ptr @s2n_strerror(i32 noundef %4473, ptr noundef nonnull @.str.3) #13
  %4475 = load i32, ptr %1365, align 4, !tbaa !5
  %4476 = call ptr @s2n_strerror_debug(i32 noundef %4475, ptr noundef nonnull @.str.3) #13
  %4477 = load i32, ptr %1419, align 4, !tbaa !5
  %4478 = call ptr @strerror(i32 noundef %4477) #13
  %4479 = load i32, ptr %1419, align 4, !tbaa !5
  %4480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4471, ptr noundef nonnull %.str.4.sink2356, i32 noundef %4472, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.2, i32 noundef 524, ptr noundef %4474, ptr noundef %4476, ptr noundef %4478, i32 noundef %4479) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4481:                                             ; preds = %4454
  %4482 = load i32, ptr @test_count, align 4, !tbaa !5
  %4483 = add nsw i32 %4482, 1
  store i32 %4483, ptr @test_count, align 4, !tbaa !5
  %4484 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %4485 = icmp eq ptr %4484, null
  br i1 %4485, label %4486, label %4508

4486:                                             ; preds = %4481
  %4487 = load i32, ptr %1419, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = call i32 @s2n_print_stacktrace(ptr noundef %4488) #13
  %4490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4491 = trunc nuw i8 %4490 to i1
  br i1 %4491, label %4492, label %4496

4492:                                             ; preds = %4486
  %4493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4494 = call i32 @fileno(ptr noundef %4493) #13
  %4495 = call i32 @isatty(i32 noundef %4494) #13
  %.not722 = icmp eq i32 %4495, 0
  br i1 %.not722, label %4496, label %4497

4496:                                             ; preds = %4492, %4486
  br label %4497

4497:                                             ; preds = %4492, %4496
  %.str.4.sink2365 = phi ptr [ @.str.4, %4496 ], [ @.str, %4492 ]
  store i32 %4487, ptr %1419, align 4, !tbaa !5
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = load i32, ptr %1365, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror(i32 noundef %4500, ptr noundef nonnull @.str.3) #13
  %4502 = load i32, ptr %1365, align 4, !tbaa !5
  %4503 = call ptr @s2n_strerror_debug(i32 noundef %4502, ptr noundef nonnull @.str.3) #13
  %4504 = load i32, ptr %1419, align 4, !tbaa !5
  %4505 = call ptr @strerror(i32 noundef %4504) #13
  %4506 = load i32, ptr %1419, align 4, !tbaa !5
  %4507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4498, ptr noundef nonnull %.str.4.sink2365, i32 noundef %4499, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 531, ptr noundef %4501, ptr noundef %4503, ptr noundef %4505, i32 noundef %4506) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4508:                                             ; preds = %4481
  %4509 = load i32, ptr @test_count, align 4, !tbaa !5
  %4510 = add nsw i32 %4509, 1
  store i32 %4510, ptr @test_count, align 4, !tbaa !5
  %4511 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %4484, i8 noundef zeroext 34) #13
  %4512 = icmp eq i32 %4511, -1
  br i1 %4512, label %4513, label %4535

4513:                                             ; preds = %4508
  %4514 = load i32, ptr %1419, align 4, !tbaa !5
  %4515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4516 = call i32 @s2n_print_stacktrace(ptr noundef %4515) #13
  %4517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4518 = trunc nuw i8 %4517 to i1
  br i1 %4518, label %4519, label %4523

4519:                                             ; preds = %4513
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = call i32 @fileno(ptr noundef %4520) #13
  %4522 = call i32 @isatty(i32 noundef %4521) #13
  %.not721 = icmp eq i32 %4522, 0
  br i1 %.not721, label %4523, label %4524

4523:                                             ; preds = %4519, %4513
  br label %4524

4524:                                             ; preds = %4519, %4523
  %.str.4.sink2374 = phi ptr [ @.str.4, %4523 ], [ @.str, %4519 ]
  store i32 %4514, ptr %1419, align 4, !tbaa !5
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = load i32, ptr @test_count, align 4, !tbaa !5
  %4527 = load i32, ptr %1365, align 4, !tbaa !5
  %4528 = call ptr @s2n_strerror(i32 noundef %4527, ptr noundef nonnull @.str.3) #13
  %4529 = load i32, ptr %1365, align 4, !tbaa !5
  %4530 = call ptr @s2n_strerror_debug(i32 noundef %4529, ptr noundef nonnull @.str.3) #13
  %4531 = load i32, ptr %1419, align 4, !tbaa !5
  %4532 = call ptr @strerror(i32 noundef %4531) #13
  %4533 = load i32, ptr %1419, align 4, !tbaa !5
  %4534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4525, ptr noundef nonnull %.str.4.sink2374, i32 noundef %4526, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 532, ptr noundef %4528, ptr noundef %4530, ptr noundef %4532, i32 noundef %4533) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4535:                                             ; preds = %4508
  %4536 = load i32, ptr @test_count, align 4, !tbaa !5
  %4537 = add nsw i32 %4536, 1
  store i32 %4537, ptr @test_count, align 4, !tbaa !5
  %4538 = call i32 @s2n_set_hello_retry_required(ptr noundef nonnull %4484) #13
  %4539 = icmp eq i32 %4538, -1
  br i1 %4539, label %4540, label %4562

4540:                                             ; preds = %4535
  %4541 = load i32, ptr %1419, align 4, !tbaa !5
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = call i32 @s2n_print_stacktrace(ptr noundef %4542) #13
  %4544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4545 = trunc nuw i8 %4544 to i1
  br i1 %4545, label %4546, label %4550

4546:                                             ; preds = %4540
  %4547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4548 = call i32 @fileno(ptr noundef %4547) #13
  %4549 = call i32 @isatty(i32 noundef %4548) #13
  %.not720 = icmp eq i32 %4549, 0
  br i1 %.not720, label %4550, label %4551

4550:                                             ; preds = %4546, %4540
  br label %4551

4551:                                             ; preds = %4546, %4550
  %.str.4.sink2383 = phi ptr [ @.str.4, %4550 ], [ @.str, %4546 ]
  store i32 %4541, ptr %1419, align 4, !tbaa !5
  %4552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4553 = load i32, ptr @test_count, align 4, !tbaa !5
  %4554 = load i32, ptr %1365, align 4, !tbaa !5
  %4555 = call ptr @s2n_strerror(i32 noundef %4554, ptr noundef nonnull @.str.3) #13
  %4556 = load i32, ptr %1365, align 4, !tbaa !5
  %4557 = call ptr @s2n_strerror_debug(i32 noundef %4556, ptr noundef nonnull @.str.3) #13
  %4558 = load i32, ptr %1419, align 4, !tbaa !5
  %4559 = call ptr @strerror(i32 noundef %4558) #13
  %4560 = load i32, ptr %1419, align 4, !tbaa !5
  %4561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4552, ptr noundef nonnull %.str.4.sink2383, i32 noundef %4553, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.2, i32 noundef 534, ptr noundef %4555, ptr noundef %4557, ptr noundef %4559, i32 noundef %4560) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4562:                                             ; preds = %4535
  %4563 = load i32, ptr @test_count, align 4, !tbaa !5
  %4564 = add nsw i32 %4563, 1
  store i32 %4564, ptr @test_count, align 4, !tbaa !5
  %4565 = getelementptr inbounds i8, ptr %4484, i64 2172
  %4566 = load i32, ptr %4565, align 4, !tbaa !71
  %4567 = and i32 %4566, 16
  %.not686 = icmp eq i32 %4567, 0
  br i1 %.not686, label %4568, label %4590

4568:                                             ; preds = %4562
  %4569 = load i32, ptr %1419, align 4, !tbaa !5
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = call i32 @s2n_print_stacktrace(ptr noundef %4570) #13
  %4572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4573 = trunc nuw i8 %4572 to i1
  br i1 %4573, label %4574, label %4578

4574:                                             ; preds = %4568
  %4575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4576 = call i32 @fileno(ptr noundef %4575) #13
  %4577 = call i32 @isatty(i32 noundef %4576) #13
  %.not687 = icmp eq i32 %4577, 0
  br i1 %.not687, label %4578, label %4579

4578:                                             ; preds = %4574, %4568
  br label %4579

4579:                                             ; preds = %4574, %4578
  %.str.4.sink2392 = phi ptr [ @.str.4, %4578 ], [ @.str, %4574 ]
  store i32 %4569, ptr %1419, align 4, !tbaa !5
  %4580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4581 = load i32, ptr @test_count, align 4, !tbaa !5
  %4582 = load i32, ptr %1365, align 4, !tbaa !5
  %4583 = call ptr @s2n_strerror(i32 noundef %4582, ptr noundef nonnull @.str.3) #13
  %4584 = load i32, ptr %1365, align 4, !tbaa !5
  %4585 = call ptr @s2n_strerror_debug(i32 noundef %4584, ptr noundef nonnull @.str.3) #13
  %4586 = load i32, ptr %1419, align 4, !tbaa !5
  %4587 = call ptr @strerror(i32 noundef %4586) #13
  %4588 = load i32, ptr %1419, align 4, !tbaa !5
  %4589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4580, ptr noundef nonnull %.str.4.sink2392, i32 noundef %4581, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.2, i32 noundef 535, ptr noundef %4583, ptr noundef %4585, ptr noundef %4587, i32 noundef %4588) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4590:                                             ; preds = %4562
  %4591 = add nsw i32 %4563, 2
  store i32 %4591, ptr @test_count, align 4, !tbaa !5
  %4592 = call i32 @s2n_connection_free(ptr noundef nonnull %4484) #13
  %4593 = icmp eq i32 %4592, -1
  br i1 %4593, label %4594, label %4616

4594:                                             ; preds = %4590
  %4595 = load i32, ptr %1419, align 4, !tbaa !5
  %4596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4597 = call i32 @s2n_print_stacktrace(ptr noundef %4596) #13
  %4598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4599 = trunc nuw i8 %4598 to i1
  br i1 %4599, label %4600, label %4604

4600:                                             ; preds = %4594
  %4601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4602 = call i32 @fileno(ptr noundef %4601) #13
  %4603 = call i32 @isatty(i32 noundef %4602) #13
  %.not719 = icmp eq i32 %4603, 0
  br i1 %.not719, label %4604, label %4605

4604:                                             ; preds = %4600, %4594
  br label %4605

4605:                                             ; preds = %4600, %4604
  %.str.4.sink2401 = phi ptr [ @.str.4, %4604 ], [ @.str, %4600 ]
  store i32 %4595, ptr %1419, align 4, !tbaa !5
  %4606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4607 = load i32, ptr @test_count, align 4, !tbaa !5
  %4608 = load i32, ptr %1365, align 4, !tbaa !5
  %4609 = call ptr @s2n_strerror(i32 noundef %4608, ptr noundef nonnull @.str.3) #13
  %4610 = load i32, ptr %1365, align 4, !tbaa !5
  %4611 = call ptr @s2n_strerror_debug(i32 noundef %4610, ptr noundef nonnull @.str.3) #13
  %4612 = load i32, ptr %1419, align 4, !tbaa !5
  %4613 = call ptr @strerror(i32 noundef %4612) #13
  %4614 = load i32, ptr %1419, align 4, !tbaa !5
  %4615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4606, ptr noundef nonnull %.str.4.sink2401, i32 noundef %4607, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 537, ptr noundef %4609, ptr noundef %4611, ptr noundef %4613, i32 noundef %4614) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4616:                                             ; preds = %4590
  %4617 = load i32, ptr @test_count, align 4, !tbaa !5
  %4618 = add nsw i32 %4617, 1
  store i32 %4618, ptr @test_count, align 4, !tbaa !5
  %4619 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %4620 = icmp eq ptr %4619, null
  br i1 %4620, label %4621, label %4643

4621:                                             ; preds = %4616
  %4622 = load i32, ptr %1419, align 4, !tbaa !5
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = call i32 @s2n_print_stacktrace(ptr noundef %4623) #13
  %4625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4626 = trunc nuw i8 %4625 to i1
  br i1 %4626, label %4627, label %4631

4627:                                             ; preds = %4621
  %4628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4629 = call i32 @fileno(ptr noundef %4628) #13
  %4630 = call i32 @isatty(i32 noundef %4629) #13
  %.not718 = icmp eq i32 %4630, 0
  br i1 %.not718, label %4631, label %4632

4631:                                             ; preds = %4627, %4621
  br label %4632

4632:                                             ; preds = %4627, %4631
  %.str.4.sink2410 = phi ptr [ @.str.4, %4631 ], [ @.str, %4627 ]
  store i32 %4622, ptr %1419, align 4, !tbaa !5
  %4633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4634 = load i32, ptr @test_count, align 4, !tbaa !5
  %4635 = load i32, ptr %1365, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror(i32 noundef %4635, ptr noundef nonnull @.str.3) #13
  %4637 = load i32, ptr %1365, align 4, !tbaa !5
  %4638 = call ptr @s2n_strerror_debug(i32 noundef %4637, ptr noundef nonnull @.str.3) #13
  %4639 = load i32, ptr %1419, align 4, !tbaa !5
  %4640 = call ptr @strerror(i32 noundef %4639) #13
  %4641 = load i32, ptr %1419, align 4, !tbaa !5
  %4642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4633, ptr noundef nonnull %.str.4.sink2410, i32 noundef %4634, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 544, ptr noundef %4636, ptr noundef %4638, ptr noundef %4640, i32 noundef %4641) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4643:                                             ; preds = %4616
  %4644 = getelementptr inbounds i8, ptr %4619, i64 220
  store i8 33, ptr %4644, align 4, !tbaa !72
  %4645 = load i32, ptr @test_count, align 4, !tbaa !5
  %4646 = add nsw i32 %4645, 1
  store i32 %4646, ptr @test_count, align 4, !tbaa !5
  %4647 = call i32 @s2n_set_hello_retry_required(ptr noundef nonnull %4619) #13
  %4648 = icmp eq i32 %4647, -1
  br i1 %4648, label %4671, label %4649

4649:                                             ; preds = %4643
  %4650 = load i32, ptr %1419, align 4, !tbaa !5
  %4651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4652 = call i32 @s2n_print_stacktrace(ptr noundef %4651) #13
  %4653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4654 = trunc nuw i8 %4653 to i1
  br i1 %4654, label %4655, label %4659

4655:                                             ; preds = %4649
  %4656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4657 = call i32 @fileno(ptr noundef %4656) #13
  %4658 = call i32 @isatty(i32 noundef %4657) #13
  %.not688 = icmp eq i32 %4658, 0
  br i1 %.not688, label %4659, label %4660

4659:                                             ; preds = %4655, %4649
  br label %4660

4660:                                             ; preds = %4655, %4659
  %.str.4.sink2419 = phi ptr [ @.str.4, %4659 ], [ @.str, %4655 ]
  store i32 %4650, ptr %1419, align 4, !tbaa !5
  %4661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4662 = load i32, ptr @test_count, align 4, !tbaa !5
  %4663 = load i32, ptr %1365, align 4, !tbaa !5
  %4664 = call ptr @s2n_strerror(i32 noundef %4663, ptr noundef nonnull @.str.3) #13
  %4665 = load i32, ptr %1365, align 4, !tbaa !5
  %4666 = call ptr @s2n_strerror_debug(i32 noundef %4665, ptr noundef nonnull @.str.3) #13
  %4667 = load i32, ptr %1419, align 4, !tbaa !5
  %4668 = call ptr @strerror(i32 noundef %4667) #13
  %4669 = load i32, ptr %1419, align 4, !tbaa !5
  %4670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4661, ptr noundef nonnull %.str.4.sink2419, i32 noundef %4662, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.2, i32 noundef 547, ptr noundef %4664, ptr noundef %4666, ptr noundef %4668, i32 noundef %4669) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4671:                                             ; preds = %4643
  %4672 = load i32, ptr @test_count, align 4, !tbaa !5
  %4673 = add nsw i32 %4672, 1
  store i32 %4673, ptr @test_count, align 4, !tbaa !5
  %4674 = load i32, ptr %1365, align 4, !tbaa !5
  %4675 = icmp eq i32 %4674, 335544346
  br i1 %4675, label %4698, label %4676

4676:                                             ; preds = %4671
  %4677 = load i32, ptr %1419, align 4, !tbaa !5
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = call i32 @s2n_print_stacktrace(ptr noundef %4678) #13
  %4680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4681 = trunc nuw i8 %4680 to i1
  br i1 %4681, label %4682, label %4686

4682:                                             ; preds = %4676
  %4683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4684 = call i32 @fileno(ptr noundef %4683) #13
  %4685 = call i32 @isatty(i32 noundef %4684) #13
  %.not689 = icmp eq i32 %4685, 0
  br i1 %.not689, label %4686, label %4687

4686:                                             ; preds = %4682, %4676
  br label %4687

4687:                                             ; preds = %4682, %4686
  %.str.4.sink2428 = phi ptr [ @.str.4, %4686 ], [ @.str, %4682 ]
  store i32 %4677, ptr %1419, align 4, !tbaa !5
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %4690 = load i32, ptr %1365, align 4, !tbaa !5
  %4691 = call ptr @s2n_strerror(i32 noundef %4690, ptr noundef nonnull @.str.3) #13
  %4692 = load i32, ptr %1365, align 4, !tbaa !5
  %4693 = call ptr @s2n_strerror_debug(i32 noundef %4692, ptr noundef nonnull @.str.3) #13
  %4694 = load i32, ptr %1419, align 4, !tbaa !5
  %4695 = call ptr @strerror(i32 noundef %4694) #13
  %4696 = load i32, ptr %1419, align 4, !tbaa !5
  %4697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4688, ptr noundef nonnull %.str.4.sink2428, i32 noundef %4689, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.2, i32 noundef 547, ptr noundef %4691, ptr noundef %4693, ptr noundef %4695, i32 noundef %4696) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4698:                                             ; preds = %4671
  %4699 = add nsw i32 %4672, 2
  store i32 %4699, ptr @test_count, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror_debug(i32 noundef 335544346, ptr noundef nonnull @.str.3) #13
  %4701 = icmp eq ptr %4700, null
  br i1 %4701, label %4702, label %4724

4702:                                             ; preds = %4698
  %4703 = load i32, ptr %1419, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = call i32 @s2n_print_stacktrace(ptr noundef %4704) #13
  %4706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4707 = trunc nuw i8 %4706 to i1
  br i1 %4707, label %4708, label %4712

4708:                                             ; preds = %4702
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = call i32 @fileno(ptr noundef %4709) #13
  %4711 = call i32 @isatty(i32 noundef %4710) #13
  %.not717 = icmp eq i32 %4711, 0
  br i1 %.not717, label %4712, label %4713

4712:                                             ; preds = %4708, %4702
  br label %4713

4713:                                             ; preds = %4708, %4712
  %.str.4.sink2437 = phi ptr [ @.str.4, %4712 ], [ @.str, %4708 ]
  store i32 %4703, ptr %1419, align 4, !tbaa !5
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = load i32, ptr %1365, align 4, !tbaa !5
  %4717 = call ptr @s2n_strerror(i32 noundef %4716, ptr noundef nonnull @.str.3) #13
  %4718 = load i32, ptr %1365, align 4, !tbaa !5
  %4719 = call ptr @s2n_strerror_debug(i32 noundef %4718, ptr noundef nonnull @.str.3) #13
  %4720 = load i32, ptr %1419, align 4, !tbaa !5
  %4721 = call ptr @strerror(i32 noundef %4720) #13
  %4722 = load i32, ptr %1419, align 4, !tbaa !5
  %4723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4714, ptr noundef nonnull %.str.4.sink2437, i32 noundef %4715, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2, i32 noundef 547, ptr noundef %4717, ptr noundef %4719, ptr noundef %4721, i32 noundef %4722) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4724:                                             ; preds = %4698
  store i32 0, ptr %1365, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1419, align 4, !tbaa !5
  %4725 = load i32, ptr @test_count, align 4, !tbaa !5
  %4726 = add nsw i32 %4725, 1
  store i32 %4726, ptr @test_count, align 4, !tbaa !5
  %4727 = getelementptr inbounds i8, ptr %4619, i64 2172
  %4728 = load i32, ptr %4727, align 4, !tbaa !71
  %4729 = and i32 %4728, 16
  %.not690 = icmp eq i32 %4729, 0
  br i1 %.not690, label %4752, label %4730

4730:                                             ; preds = %4724
  %4731 = load i32, ptr %1419, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @s2n_print_stacktrace(ptr noundef %4732) #13
  %4734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4735 = trunc nuw i8 %4734 to i1
  br i1 %4735, label %4736, label %4740

4736:                                             ; preds = %4730
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = call i32 @fileno(ptr noundef %4737) #13
  %4739 = call i32 @isatty(i32 noundef %4738) #13
  %.not716 = icmp eq i32 %4739, 0
  br i1 %.not716, label %4740, label %4741

4740:                                             ; preds = %4736, %4730
  br label %4741

4741:                                             ; preds = %4736, %4740
  %.str.4.sink2446 = phi ptr [ @.str.4, %4740 ], [ @.str, %4736 ]
  store i32 %4731, ptr %1419, align 4, !tbaa !5
  %4742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4743 = load i32, ptr @test_count, align 4, !tbaa !5
  %4744 = load i32, ptr %1365, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror(i32 noundef %4744, ptr noundef nonnull @.str.3) #13
  %4746 = load i32, ptr %1365, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef nonnull @.str.3) #13
  %4748 = load i32, ptr %1419, align 4, !tbaa !5
  %4749 = call ptr @strerror(i32 noundef %4748) #13
  %4750 = load i32, ptr %1419, align 4, !tbaa !5
  %4751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4742, ptr noundef nonnull %.str.4.sink2446, i32 noundef %4743, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.2, i32 noundef 548, ptr noundef %4745, ptr noundef %4747, ptr noundef %4749, i32 noundef %4750) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4752:                                             ; preds = %4724
  %4753 = add nsw i32 %4725, 2
  store i32 %4753, ptr @test_count, align 4, !tbaa !5
  %4754 = call i32 @s2n_connection_free(ptr noundef nonnull %4619) #13
  %4755 = icmp eq i32 %4754, -1
  br i1 %4755, label %4756, label %4778

4756:                                             ; preds = %4752
  %4757 = load i32, ptr %1419, align 4, !tbaa !5
  %4758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4759 = call i32 @s2n_print_stacktrace(ptr noundef %4758) #13
  %4760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4761 = trunc nuw i8 %4760 to i1
  br i1 %4761, label %4762, label %4766

4762:                                             ; preds = %4756
  %4763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4764 = call i32 @fileno(ptr noundef %4763) #13
  %4765 = call i32 @isatty(i32 noundef %4764) #13
  %.not715 = icmp eq i32 %4765, 0
  br i1 %.not715, label %4766, label %4767

4766:                                             ; preds = %4762, %4756
  br label %4767

4767:                                             ; preds = %4762, %4766
  %.str.4.sink2455 = phi ptr [ @.str.4, %4766 ], [ @.str, %4762 ]
  store i32 %4757, ptr %1419, align 4, !tbaa !5
  %4768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4769 = load i32, ptr @test_count, align 4, !tbaa !5
  %4770 = load i32, ptr %1365, align 4, !tbaa !5
  %4771 = call ptr @s2n_strerror(i32 noundef %4770, ptr noundef nonnull @.str.3) #13
  %4772 = load i32, ptr %1365, align 4, !tbaa !5
  %4773 = call ptr @s2n_strerror_debug(i32 noundef %4772, ptr noundef nonnull @.str.3) #13
  %4774 = load i32, ptr %1419, align 4, !tbaa !5
  %4775 = call ptr @strerror(i32 noundef %4774) #13
  %4776 = load i32, ptr %1419, align 4, !tbaa !5
  %4777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4768, ptr noundef nonnull %.str.4.sink2455, i32 noundef %4769, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 550, ptr noundef %4771, ptr noundef %4773, ptr noundef %4775, i32 noundef %4776) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4778:                                             ; preds = %4752
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #13
  store ptr null, ptr %21, align 8, !tbaa !9
  %4779 = load i32, ptr @test_count, align 4, !tbaa !5
  %4780 = add nsw i32 %4779, 1
  store i32 %4780, ptr @test_count, align 4, !tbaa !5
  %4781 = call i32 @s2n_find_security_policy_from_version(ptr noundef nonnull @.str.142, ptr noundef nonnull %21) #13
  %4782 = icmp eq i32 %4781, -1
  br i1 %4782, label %4783, label %4805

4783:                                             ; preds = %4778
  %4784 = load i32, ptr %1419, align 4, !tbaa !5
  %4785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4786 = call i32 @s2n_print_stacktrace(ptr noundef %4785) #13
  %4787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4788 = trunc nuw i8 %4787 to i1
  br i1 %4788, label %4789, label %4793

4789:                                             ; preds = %4783
  %4790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4791 = call i32 @fileno(ptr noundef %4790) #13
  %4792 = call i32 @isatty(i32 noundef %4791) #13
  %.not714 = icmp eq i32 %4792, 0
  br i1 %.not714, label %4793, label %4794

4793:                                             ; preds = %4789, %4783
  br label %4794

4794:                                             ; preds = %4789, %4793
  %.str.4.sink2464 = phi ptr [ @.str.4, %4793 ], [ @.str, %4789 ]
  store i32 %4784, ptr %1419, align 4, !tbaa !5
  %4795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4796 = load i32, ptr @test_count, align 4, !tbaa !5
  %4797 = load i32, ptr %1365, align 4, !tbaa !5
  %4798 = call ptr @s2n_strerror(i32 noundef %4797, ptr noundef nonnull @.str.3) #13
  %4799 = load i32, ptr %1365, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror_debug(i32 noundef %4799, ptr noundef nonnull @.str.3) #13
  %4801 = load i32, ptr %1419, align 4, !tbaa !5
  %4802 = call ptr @strerror(i32 noundef %4801) #13
  %4803 = load i32, ptr %1419, align 4, !tbaa !5
  %4804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4795, ptr noundef nonnull %.str.4.sink2464, i32 noundef %4796, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.2, i32 noundef 562, ptr noundef %4798, ptr noundef %4800, ptr noundef %4802, i32 noundef %4803) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4805:                                             ; preds = %4778
  %4806 = load i32, ptr @test_count, align 4, !tbaa !5
  %4807 = add nsw i32 %4806, 1
  store i32 %4807, ptr @test_count, align 4, !tbaa !5
  %4808 = load ptr, ptr %21, align 8, !tbaa !9
  %4809 = icmp eq ptr %4808, null
  br i1 %4809, label %4810, label %4832

4810:                                             ; preds = %4805
  %4811 = load i32, ptr %1419, align 4, !tbaa !5
  %4812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4813 = call i32 @s2n_print_stacktrace(ptr noundef %4812) #13
  %4814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4815 = trunc nuw i8 %4814 to i1
  br i1 %4815, label %4816, label %4820

4816:                                             ; preds = %4810
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = call i32 @fileno(ptr noundef %4817) #13
  %4819 = call i32 @isatty(i32 noundef %4818) #13
  %.not713 = icmp eq i32 %4819, 0
  br i1 %.not713, label %4820, label %4821

4820:                                             ; preds = %4816, %4810
  br label %4821

4821:                                             ; preds = %4816, %4820
  %.str.4.sink2473 = phi ptr [ @.str.4, %4820 ], [ @.str, %4816 ]
  store i32 %4811, ptr %1419, align 4, !tbaa !5
  %4822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4823 = load i32, ptr @test_count, align 4, !tbaa !5
  %4824 = load i32, ptr %1365, align 4, !tbaa !5
  %4825 = call ptr @s2n_strerror(i32 noundef %4824, ptr noundef nonnull @.str.3) #13
  %4826 = load i32, ptr %1365, align 4, !tbaa !5
  %4827 = call ptr @s2n_strerror_debug(i32 noundef %4826, ptr noundef nonnull @.str.3) #13
  %4828 = load i32, ptr %1419, align 4, !tbaa !5
  %4829 = call ptr @strerror(i32 noundef %4828) #13
  %4830 = load i32, ptr %1419, align 4, !tbaa !5
  %4831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4822, ptr noundef nonnull %.str.4.sink2473, i32 noundef %4823, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.2, i32 noundef 563, ptr noundef %4825, ptr noundef %4827, ptr noundef %4829, i32 noundef %4830) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4832:                                             ; preds = %4805
  %4833 = getelementptr inbounds i8, ptr %4808, i64 40
  %4834 = load ptr, ptr %4833, align 8, !tbaa !73
  %4835 = getelementptr inbounds i8, ptr %4834, i64 8
  %4836 = load ptr, ptr %4835, align 8, !tbaa !75
  %4837 = load ptr, ptr %4836, align 8, !tbaa !9
  %4838 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4839 = load i32, ptr @test_count, align 4, !tbaa !5
  %4840 = add nsw i32 %4839, 1
  store i32 %4840, ptr @test_count, align 4, !tbaa !5
  %4841 = icmp eq ptr %4838, null
  br i1 %4841, label %4842, label %4864

4842:                                             ; preds = %4832
  %4843 = load i32, ptr %1419, align 4, !tbaa !5
  %4844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4845 = call i32 @s2n_print_stacktrace(ptr noundef %4844) #13
  %4846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4847 = trunc nuw i8 %4846 to i1
  br i1 %4847, label %4848, label %4852

4848:                                             ; preds = %4842
  %4849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4850 = call i32 @fileno(ptr noundef %4849) #13
  %4851 = call i32 @isatty(i32 noundef %4850) #13
  %.not712 = icmp eq i32 %4851, 0
  br i1 %.not712, label %4852, label %4853

4852:                                             ; preds = %4848, %4842
  br label %4853

4853:                                             ; preds = %4848, %4852
  %.str.4.sink2482 = phi ptr [ @.str.4, %4852 ], [ @.str, %4848 ]
  store i32 %4843, ptr %1419, align 4, !tbaa !5
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = load i32, ptr @test_count, align 4, !tbaa !5
  %4856 = load i32, ptr %1365, align 4, !tbaa !5
  %4857 = call ptr @s2n_strerror(i32 noundef %4856, ptr noundef nonnull @.str.3) #13
  %4858 = load i32, ptr %1365, align 4, !tbaa !5
  %4859 = call ptr @s2n_strerror_debug(i32 noundef %4858, ptr noundef nonnull @.str.3) #13
  %4860 = load i32, ptr %1419, align 4, !tbaa !5
  %4861 = call ptr @strerror(i32 noundef %4860) #13
  %4862 = load i32, ptr %1419, align 4, !tbaa !5
  %4863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4854, ptr noundef nonnull %.str.4.sink2482, i32 noundef %4855, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.2, i32 noundef 577, ptr noundef %4857, ptr noundef %4859, ptr noundef %4861, i32 noundef %4862) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4864:                                             ; preds = %4832
  %4865 = add nsw i32 %4839, 2
  store i32 %4865, ptr @test_count, align 4, !tbaa !5
  %4866 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4838, ptr noundef nonnull @.str.142) #13
  %4867 = icmp eq i32 %4866, -1
  br i1 %4867, label %4868, label %4890

4868:                                             ; preds = %4864
  %4869 = load i32, ptr %1419, align 4, !tbaa !5
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = call i32 @s2n_print_stacktrace(ptr noundef %4870) #13
  %4872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4873 = trunc nuw i8 %4872 to i1
  br i1 %4873, label %4874, label %4878

4874:                                             ; preds = %4868
  %4875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4876 = call i32 @fileno(ptr noundef %4875) #13
  %4877 = call i32 @isatty(i32 noundef %4876) #13
  %.not711 = icmp eq i32 %4877, 0
  br i1 %.not711, label %4878, label %4879

4878:                                             ; preds = %4874, %4868
  br label %4879

4879:                                             ; preds = %4874, %4878
  %.str.4.sink2491 = phi ptr [ @.str.4, %4878 ], [ @.str, %4874 ]
  store i32 %4869, ptr %1419, align 4, !tbaa !5
  %4880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4881 = load i32, ptr @test_count, align 4, !tbaa !5
  %4882 = load i32, ptr %1365, align 4, !tbaa !5
  %4883 = call ptr @s2n_strerror(i32 noundef %4882, ptr noundef nonnull @.str.3) #13
  %4884 = load i32, ptr %1365, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror_debug(i32 noundef %4884, ptr noundef nonnull @.str.3) #13
  %4886 = load i32, ptr %1419, align 4, !tbaa !5
  %4887 = call ptr @strerror(i32 noundef %4886) #13
  %4888 = load i32, ptr %1419, align 4, !tbaa !5
  %4889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4880, ptr noundef nonnull %.str.4.sink2491, i32 noundef %4881, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.2, i32 noundef 578, ptr noundef %4883, ptr noundef %4885, ptr noundef %4887, i32 noundef %4888) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4890:                                             ; preds = %4864
  %4891 = getelementptr inbounds i8, ptr %4838, i64 220
  store i8 34, ptr %4891, align 4, !tbaa !72
  %4892 = getelementptr inbounds i8, ptr %4838, i64 232
  %4893 = load ptr, ptr %4892, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %4893, align 8, !tbaa !43
  %4894 = getelementptr inbounds i8, ptr %4838, i64 656
  store ptr %4837, ptr %4894, align 8, !tbaa !48
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = add nsw i32 %4895, 1
  store i32 %4896, ptr @test_count, align 4, !tbaa !5
  %4897 = call i32 @s2n_server_hello_retry_recv(ptr noundef nonnull %4838) #13
  %4898 = icmp eq i32 %4897, -1
  br i1 %4898, label %4899, label %4921

4899:                                             ; preds = %4890
  %4900 = load i32, ptr %1419, align 4, !tbaa !5
  %4901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4902 = call i32 @s2n_print_stacktrace(ptr noundef %4901) #13
  %4903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4904 = trunc nuw i8 %4903 to i1
  br i1 %4904, label %4905, label %4909

4905:                                             ; preds = %4899
  %4906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4907 = call i32 @fileno(ptr noundef %4906) #13
  %4908 = call i32 @isatty(i32 noundef %4907) #13
  %.not710 = icmp eq i32 %4908, 0
  br i1 %.not710, label %4909, label %4910

4909:                                             ; preds = %4905, %4899
  br label %4910

4910:                                             ; preds = %4905, %4909
  %.str.4.sink2500 = phi ptr [ @.str.4, %4909 ], [ @.str, %4905 ]
  store i32 %4900, ptr %1419, align 4, !tbaa !5
  %4911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4912 = load i32, ptr @test_count, align 4, !tbaa !5
  %4913 = load i32, ptr %1365, align 4, !tbaa !5
  %4914 = call ptr @s2n_strerror(i32 noundef %4913, ptr noundef nonnull @.str.3) #13
  %4915 = load i32, ptr %1365, align 4, !tbaa !5
  %4916 = call ptr @s2n_strerror_debug(i32 noundef %4915, ptr noundef nonnull @.str.3) #13
  %4917 = load i32, ptr %1419, align 4, !tbaa !5
  %4918 = call ptr @strerror(i32 noundef %4917) #13
  %4919 = load i32, ptr %1419, align 4, !tbaa !5
  %4920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4911, ptr noundef nonnull %.str.4.sink2500, i32 noundef %4912, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.2, i32 noundef 585, ptr noundef %4914, ptr noundef %4916, ptr noundef %4918, i32 noundef %4919) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4921:                                             ; preds = %4890
  %4922 = getelementptr inbounds i8, ptr %4838, i64 704
  store ptr %4837, ptr %4922, align 8, !tbaa !49
  %4923 = call ptr @EVP_PKEY_new() #13
  %4924 = getelementptr inbounds i8, ptr %4838, i64 712
  store ptr %4923, ptr %4924, align 8, !tbaa !77
  %4925 = load i32, ptr @test_count, align 4, !tbaa !5
  %4926 = add nsw i32 %4925, 1
  store i32 %4926, ptr @test_count, align 4, !tbaa !5
  %4927 = icmp eq ptr %4923, null
  br i1 %4927, label %4928, label %4950

4928:                                             ; preds = %4921
  %4929 = load i32, ptr %1419, align 4, !tbaa !5
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = call i32 @s2n_print_stacktrace(ptr noundef %4930) #13
  %4932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4933 = trunc nuw i8 %4932 to i1
  br i1 %4933, label %4934, label %4938

4934:                                             ; preds = %4928
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = call i32 @fileno(ptr noundef %4935) #13
  %4937 = call i32 @isatty(i32 noundef %4936) #13
  %.not709 = icmp eq i32 %4937, 0
  br i1 %.not709, label %4938, label %4939

4938:                                             ; preds = %4934, %4928
  br label %4939

4939:                                             ; preds = %4934, %4938
  %.str.4.sink2509 = phi ptr [ @.str.4, %4938 ], [ @.str, %4934 ]
  store i32 %4929, ptr %1419, align 4, !tbaa !5
  %4940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4941 = load i32, ptr @test_count, align 4, !tbaa !5
  %4942 = load i32, ptr %1365, align 4, !tbaa !5
  %4943 = call ptr @s2n_strerror(i32 noundef %4942, ptr noundef nonnull @.str.3) #13
  %4944 = load i32, ptr %1365, align 4, !tbaa !5
  %4945 = call ptr @s2n_strerror_debug(i32 noundef %4944, ptr noundef nonnull @.str.3) #13
  %4946 = load i32, ptr %1419, align 4, !tbaa !5
  %4947 = call ptr @strerror(i32 noundef %4946) #13
  %4948 = load i32, ptr %1419, align 4, !tbaa !5
  %4949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4940, ptr noundef nonnull %.str.4.sink2509, i32 noundef %4941, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.2, i32 noundef 590, ptr noundef %4943, ptr noundef %4945, ptr noundef %4947, i32 noundef %4948) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4950:                                             ; preds = %4921
  %4951 = add nsw i32 %4925, 2
  store i32 %4951, ptr @test_count, align 4, !tbaa !5
  %4952 = call i32 @s2n_server_hello_retry_recv(ptr noundef nonnull %4838) #13
  %4953 = icmp eq i32 %4952, -1
  br i1 %4953, label %4976, label %4954

4954:                                             ; preds = %4950
  %4955 = load i32, ptr %1419, align 4, !tbaa !5
  %4956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4957 = call i32 @s2n_print_stacktrace(ptr noundef %4956) #13
  %4958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4959 = trunc nuw i8 %4958 to i1
  br i1 %4959, label %4960, label %4964

4960:                                             ; preds = %4954
  %4961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4962 = call i32 @fileno(ptr noundef %4961) #13
  %4963 = call i32 @isatty(i32 noundef %4962) #13
  %.not691 = icmp eq i32 %4963, 0
  br i1 %.not691, label %4964, label %4965

4964:                                             ; preds = %4960, %4954
  br label %4965

4965:                                             ; preds = %4960, %4964
  %.str.4.sink2518 = phi ptr [ @.str.4, %4964 ], [ @.str, %4960 ]
  store i32 %4955, ptr %1419, align 4, !tbaa !5
  %4966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4967 = load i32, ptr @test_count, align 4, !tbaa !5
  %4968 = load i32, ptr %1365, align 4, !tbaa !5
  %4969 = call ptr @s2n_strerror(i32 noundef %4968, ptr noundef nonnull @.str.3) #13
  %4970 = load i32, ptr %1365, align 4, !tbaa !5
  %4971 = call ptr @s2n_strerror_debug(i32 noundef %4970, ptr noundef nonnull @.str.3) #13
  %4972 = load i32, ptr %1419, align 4, !tbaa !5
  %4973 = call ptr @strerror(i32 noundef %4972) #13
  %4974 = load i32, ptr %1419, align 4, !tbaa !5
  %4975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4966, ptr noundef nonnull %.str.4.sink2518, i32 noundef %4967, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.2, i32 noundef 592, ptr noundef %4969, ptr noundef %4971, ptr noundef %4973, i32 noundef %4974) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4976:                                             ; preds = %4950
  %4977 = load i32, ptr @test_count, align 4, !tbaa !5
  %4978 = add nsw i32 %4977, 1
  store i32 %4978, ptr @test_count, align 4, !tbaa !5
  %4979 = load i32, ptr %1365, align 4, !tbaa !5
  %4980 = icmp eq i32 %4979, 335544346
  br i1 %4980, label %5003, label %4981

4981:                                             ; preds = %4976
  %4982 = load i32, ptr %1419, align 4, !tbaa !5
  %4983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4984 = call i32 @s2n_print_stacktrace(ptr noundef %4983) #13
  %4985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4986 = trunc nuw i8 %4985 to i1
  br i1 %4986, label %4987, label %4991

4987:                                             ; preds = %4981
  %4988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4989 = call i32 @fileno(ptr noundef %4988) #13
  %4990 = call i32 @isatty(i32 noundef %4989) #13
  %.not692 = icmp eq i32 %4990, 0
  br i1 %.not692, label %4991, label %4992

4991:                                             ; preds = %4987, %4981
  br label %4992

4992:                                             ; preds = %4987, %4991
  %.str.4.sink2527 = phi ptr [ @.str.4, %4991 ], [ @.str, %4987 ]
  store i32 %4982, ptr %1419, align 4, !tbaa !5
  %4993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4994 = load i32, ptr @test_count, align 4, !tbaa !5
  %4995 = load i32, ptr %1365, align 4, !tbaa !5
  %4996 = call ptr @s2n_strerror(i32 noundef %4995, ptr noundef nonnull @.str.3) #13
  %4997 = load i32, ptr %1365, align 4, !tbaa !5
  %4998 = call ptr @s2n_strerror_debug(i32 noundef %4997, ptr noundef nonnull @.str.3) #13
  %4999 = load i32, ptr %1419, align 4, !tbaa !5
  %5000 = call ptr @strerror(i32 noundef %4999) #13
  %5001 = load i32, ptr %1419, align 4, !tbaa !5
  %5002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4993, ptr noundef nonnull %.str.4.sink2527, i32 noundef %4994, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.2, i32 noundef 592, ptr noundef %4996, ptr noundef %4998, ptr noundef %5000, i32 noundef %5001) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5003:                                             ; preds = %4976
  %5004 = add nsw i32 %4977, 2
  store i32 %5004, ptr @test_count, align 4, !tbaa !5
  %5005 = call ptr @s2n_strerror_debug(i32 noundef 335544346, ptr noundef nonnull @.str.3) #13
  %5006 = icmp eq ptr %5005, null
  br i1 %5006, label %5007, label %5029

5007:                                             ; preds = %5003
  %5008 = load i32, ptr %1419, align 4, !tbaa !5
  %5009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5010 = call i32 @s2n_print_stacktrace(ptr noundef %5009) #13
  %5011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5012 = trunc nuw i8 %5011 to i1
  br i1 %5012, label %5013, label %5017

5013:                                             ; preds = %5007
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = call i32 @fileno(ptr noundef %5014) #13
  %5016 = call i32 @isatty(i32 noundef %5015) #13
  %.not708 = icmp eq i32 %5016, 0
  br i1 %.not708, label %5017, label %5018

5017:                                             ; preds = %5013, %5007
  br label %5018

5018:                                             ; preds = %5013, %5017
  %.str.4.sink2536 = phi ptr [ @.str.4, %5017 ], [ @.str, %5013 ]
  store i32 %5008, ptr %1419, align 4, !tbaa !5
  %5019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5020 = load i32, ptr @test_count, align 4, !tbaa !5
  %5021 = load i32, ptr %1365, align 4, !tbaa !5
  %5022 = call ptr @s2n_strerror(i32 noundef %5021, ptr noundef nonnull @.str.3) #13
  %5023 = load i32, ptr %1365, align 4, !tbaa !5
  %5024 = call ptr @s2n_strerror_debug(i32 noundef %5023, ptr noundef nonnull @.str.3) #13
  %5025 = load i32, ptr %1419, align 4, !tbaa !5
  %5026 = call ptr @strerror(i32 noundef %5025) #13
  %5027 = load i32, ptr %1419, align 4, !tbaa !5
  %5028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5019, ptr noundef nonnull %.str.4.sink2536, i32 noundef %5020, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2, i32 noundef 592, ptr noundef %5022, ptr noundef %5024, ptr noundef %5026, i32 noundef %5027) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5029:                                             ; preds = %5003
  store i32 0, ptr %1365, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1419, align 4, !tbaa !5
  %5030 = load i32, ptr @test_count, align 4, !tbaa !5
  %5031 = add nsw i32 %5030, 1
  store i32 %5031, ptr @test_count, align 4, !tbaa !5
  %5032 = call i32 @s2n_connection_free(ptr noundef nonnull %4838) #13
  %5033 = icmp eq i32 %5032, -1
  br i1 %5033, label %5034, label %5056

5034:                                             ; preds = %5029
  %5035 = load i32, ptr %1419, align 4, !tbaa !5
  %5036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5037 = call i32 @s2n_print_stacktrace(ptr noundef %5036) #13
  %5038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5039 = trunc nuw i8 %5038 to i1
  br i1 %5039, label %5040, label %5044

5040:                                             ; preds = %5034
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = call i32 @fileno(ptr noundef %5041) #13
  %5043 = call i32 @isatty(i32 noundef %5042) #13
  %.not707 = icmp eq i32 %5043, 0
  br i1 %.not707, label %5044, label %5045

5044:                                             ; preds = %5040, %5034
  br label %5045

5045:                                             ; preds = %5040, %5044
  %.str.4.sink2545 = phi ptr [ @.str.4, %5044 ], [ @.str, %5040 ]
  store i32 %5035, ptr %1419, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = load i32, ptr %1365, align 4, !tbaa !5
  %5049 = call ptr @s2n_strerror(i32 noundef %5048, ptr noundef nonnull @.str.3) #13
  %5050 = load i32, ptr %1365, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror_debug(i32 noundef %5050, ptr noundef nonnull @.str.3) #13
  %5052 = load i32, ptr %1419, align 4, !tbaa !5
  %5053 = call ptr @strerror(i32 noundef %5052) #13
  %5054 = load i32, ptr %1419, align 4, !tbaa !5
  %5055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5046, ptr noundef nonnull %.str.4.sink2545, i32 noundef %5047, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 594, ptr noundef %5049, ptr noundef %5051, ptr noundef %5053, i32 noundef %5054) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5056:                                             ; preds = %5029
  %5057 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %5058 = load i32, ptr @test_count, align 4, !tbaa !5
  %5059 = add nsw i32 %5058, 1
  store i32 %5059, ptr @test_count, align 4, !tbaa !5
  %5060 = icmp eq ptr %5057, null
  br i1 %5060, label %5061, label %5083

5061:                                             ; preds = %5056
  %5062 = load i32, ptr %1419, align 4, !tbaa !5
  %5063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5064 = call i32 @s2n_print_stacktrace(ptr noundef %5063) #13
  %5065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5066 = trunc nuw i8 %5065 to i1
  br i1 %5066, label %5067, label %5071

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

5071:                                             ; preds = %5067, %5061
  br label %5072

5072:                                             ; preds = %5067, %5071
  %.str.4.sink2554 = phi ptr [ @.str.4, %5071 ], [ @.str, %5067 ]
  store i32 %5062, ptr %1419, align 4, !tbaa !5
  %5073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5074 = load i32, ptr @test_count, align 4, !tbaa !5
  %5075 = load i32, ptr %1365, align 4, !tbaa !5
  %5076 = call ptr @s2n_strerror(i32 noundef %5075, ptr noundef nonnull @.str.3) #13
  %5077 = load i32, ptr %1365, align 4, !tbaa !5
  %5078 = call ptr @s2n_strerror_debug(i32 noundef %5077, ptr noundef nonnull @.str.3) #13
  %5079 = load i32, ptr %1419, align 4, !tbaa !5
  %5080 = call ptr @strerror(i32 noundef %5079) #13
  %5081 = load i32, ptr %1419, align 4, !tbaa !5
  %5082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5073, ptr noundef nonnull %.str.4.sink2554, i32 noundef %5074, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.2, i32 noundef 600, ptr noundef %5076, ptr noundef %5078, ptr noundef %5080, i32 noundef %5081) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5083:                                             ; preds = %5056
  %5084 = add nsw i32 %5058, 2
  store i32 %5084, ptr @test_count, align 4, !tbaa !5
  %5085 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %5057, ptr noundef nonnull @.str.142) #13
  %5086 = icmp eq i32 %5085, -1
  br i1 %5086, label %5087, label %5109

5087:                                             ; preds = %5083
  %5088 = load i32, ptr %1419, align 4, !tbaa !5
  %5089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5090 = call i32 @s2n_print_stacktrace(ptr noundef %5089) #13
  %5091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5092 = trunc nuw i8 %5091 to i1
  br i1 %5092, label %5093, label %5097

5093:                                             ; preds = %5087
  %5094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5095 = call i32 @fileno(ptr noundef %5094) #13
  %5096 = call i32 @isatty(i32 noundef %5095) #13
  %.not705 = icmp eq i32 %5096, 0
  br i1 %.not705, label %5097, label %5098

5097:                                             ; preds = %5093, %5087
  br label %5098

5098:                                             ; preds = %5093, %5097
  %.str.4.sink2563 = phi ptr [ @.str.4, %5097 ], [ @.str, %5093 ]
  store i32 %5088, ptr %1419, align 4, !tbaa !5
  %5099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5100 = load i32, ptr @test_count, align 4, !tbaa !5
  %5101 = load i32, ptr %1365, align 4, !tbaa !5
  %5102 = call ptr @s2n_strerror(i32 noundef %5101, ptr noundef nonnull @.str.3) #13
  %5103 = load i32, ptr %1365, align 4, !tbaa !5
  %5104 = call ptr @s2n_strerror_debug(i32 noundef %5103, ptr noundef nonnull @.str.3) #13
  %5105 = load i32, ptr %1419, align 4, !tbaa !5
  %5106 = call ptr @strerror(i32 noundef %5105) #13
  %5107 = load i32, ptr %1419, align 4, !tbaa !5
  %5108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5099, ptr noundef nonnull %.str.4.sink2563, i32 noundef %5100, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.2, i32 noundef 601, ptr noundef %5102, ptr noundef %5104, ptr noundef %5106, i32 noundef %5107) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5109:                                             ; preds = %5083
  %5110 = getelementptr inbounds i8, ptr %5057, i64 220
  store i8 34, ptr %5110, align 4, !tbaa !72
  %5111 = getelementptr inbounds i8, ptr %5057, i64 232
  %5112 = load ptr, ptr %5111, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %5112, align 8, !tbaa !43
  %5113 = getelementptr inbounds i8, ptr %5057, i64 656
  store ptr %4837, ptr %5113, align 8, !tbaa !48
  %5114 = getelementptr inbounds i8, ptr %5057, i64 4088
  store i32 1, ptr %5114, align 8, !tbaa !78
  %5115 = load i32, ptr @test_count, align 4, !tbaa !5
  %5116 = add nsw i32 %5115, 1
  store i32 %5116, ptr @test_count, align 4, !tbaa !5
  %5117 = call i32 @s2n_server_hello_retry_recv(ptr noundef nonnull %5057) #13
  %5118 = icmp eq i32 %5117, -1
  br i1 %5118, label %5119, label %5141

5119:                                             ; preds = %5109
  %5120 = load i32, ptr %1419, align 4, !tbaa !5
  %5121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5122 = call i32 @s2n_print_stacktrace(ptr noundef %5121) #13
  %5123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5124 = trunc nuw i8 %5123 to i1
  br i1 %5124, label %5125, label %5129

5125:                                             ; preds = %5119
  %5126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5127 = call i32 @fileno(ptr noundef %5126) #13
  %5128 = call i32 @isatty(i32 noundef %5127) #13
  %.not704 = icmp eq i32 %5128, 0
  br i1 %.not704, label %5129, label %5130

5129:                                             ; preds = %5125, %5119
  br label %5130

5130:                                             ; preds = %5125, %5129
  %.str.4.sink2572 = phi ptr [ @.str.4, %5129 ], [ @.str, %5125 ]
  store i32 %5120, ptr %1419, align 4, !tbaa !5
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = load i32, ptr @test_count, align 4, !tbaa !5
  %5133 = load i32, ptr %1365, align 4, !tbaa !5
  %5134 = call ptr @s2n_strerror(i32 noundef %5133, ptr noundef nonnull @.str.3) #13
  %5135 = load i32, ptr %1365, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror_debug(i32 noundef %5135, ptr noundef nonnull @.str.3) #13
  %5137 = load i32, ptr %1419, align 4, !tbaa !5
  %5138 = call ptr @strerror(i32 noundef %5137) #13
  %5139 = load i32, ptr %1419, align 4, !tbaa !5
  %5140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5131, ptr noundef nonnull %.str.4.sink2572, i32 noundef %5132, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.2, i32 noundef 609, ptr noundef %5134, ptr noundef %5136, ptr noundef %5138, i32 noundef %5139) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5141:                                             ; preds = %5109
  store i32 2, ptr %5114, align 8, !tbaa !78
  %5142 = getelementptr inbounds i8, ptr %5057, i64 704
  store ptr %4837, ptr %5142, align 8, !tbaa !49
  %5143 = call ptr @EVP_PKEY_new() #13
  %5144 = getelementptr inbounds i8, ptr %5057, i64 712
  store ptr %5143, ptr %5144, align 8, !tbaa !77
  %5145 = load i32, ptr @test_count, align 4, !tbaa !5
  %5146 = add nsw i32 %5145, 1
  store i32 %5146, ptr @test_count, align 4, !tbaa !5
  %5147 = icmp eq ptr %5143, null
  br i1 %5147, label %5148, label %5170

5148:                                             ; preds = %5141
  %5149 = load i32, ptr %1419, align 4, !tbaa !5
  %5150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5151 = call i32 @s2n_print_stacktrace(ptr noundef %5150) #13
  %5152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5153 = trunc nuw i8 %5152 to i1
  br i1 %5153, label %5154, label %5158

5154:                                             ; preds = %5148
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = call i32 @fileno(ptr noundef %5155) #13
  %5157 = call i32 @isatty(i32 noundef %5156) #13
  %.not703 = icmp eq i32 %5157, 0
  br i1 %.not703, label %5158, label %5159

5158:                                             ; preds = %5154, %5148
  br label %5159

5159:                                             ; preds = %5154, %5158
  %.str.4.sink2581 = phi ptr [ @.str.4, %5158 ], [ @.str, %5154 ]
  store i32 %5149, ptr %1419, align 4, !tbaa !5
  %5160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5161 = load i32, ptr @test_count, align 4, !tbaa !5
  %5162 = load i32, ptr %1365, align 4, !tbaa !5
  %5163 = call ptr @s2n_strerror(i32 noundef %5162, ptr noundef nonnull @.str.3) #13
  %5164 = load i32, ptr %1365, align 4, !tbaa !5
  %5165 = call ptr @s2n_strerror_debug(i32 noundef %5164, ptr noundef nonnull @.str.3) #13
  %5166 = load i32, ptr %1419, align 4, !tbaa !5
  %5167 = call ptr @strerror(i32 noundef %5166) #13
  %5168 = load i32, ptr %1419, align 4, !tbaa !5
  %5169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5160, ptr noundef nonnull %.str.4.sink2581, i32 noundef %5161, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.2, i32 noundef 615, ptr noundef %5163, ptr noundef %5165, ptr noundef %5167, i32 noundef %5168) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5170:                                             ; preds = %5141
  %5171 = add nsw i32 %5145, 2
  store i32 %5171, ptr @test_count, align 4, !tbaa !5
  %5172 = call i32 @s2n_server_hello_retry_recv(ptr noundef nonnull %5057) #13
  %5173 = icmp eq i32 %5172, -1
  br i1 %5173, label %5196, label %5174

5174:                                             ; preds = %5170
  %5175 = load i32, ptr %1419, align 4, !tbaa !5
  %5176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5177 = call i32 @s2n_print_stacktrace(ptr noundef %5176) #13
  %5178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5179 = trunc nuw i8 %5178 to i1
  br i1 %5179, label %5180, label %5184

5180:                                             ; preds = %5174
  %5181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5182 = call i32 @fileno(ptr noundef %5181) #13
  %5183 = call i32 @isatty(i32 noundef %5182) #13
  %.not693 = icmp eq i32 %5183, 0
  br i1 %.not693, label %5184, label %5185

5184:                                             ; preds = %5180, %5174
  br label %5185

5185:                                             ; preds = %5180, %5184
  %.str.4.sink2590 = phi ptr [ @.str.4, %5184 ], [ @.str, %5180 ]
  store i32 %5175, ptr %1419, align 4, !tbaa !5
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = load i32, ptr @test_count, align 4, !tbaa !5
  %5188 = load i32, ptr %1365, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror(i32 noundef %5188, ptr noundef nonnull @.str.3) #13
  %5190 = load i32, ptr %1365, align 4, !tbaa !5
  %5191 = call ptr @s2n_strerror_debug(i32 noundef %5190, ptr noundef nonnull @.str.3) #13
  %5192 = load i32, ptr %1419, align 4, !tbaa !5
  %5193 = call ptr @strerror(i32 noundef %5192) #13
  %5194 = load i32, ptr %1419, align 4, !tbaa !5
  %5195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5186, ptr noundef nonnull %.str.4.sink2590, i32 noundef %5187, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.2, i32 noundef 617, ptr noundef %5189, ptr noundef %5191, ptr noundef %5193, i32 noundef %5194) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5196:                                             ; preds = %5170
  %5197 = load i32, ptr @test_count, align 4, !tbaa !5
  %5198 = add nsw i32 %5197, 1
  store i32 %5198, ptr @test_count, align 4, !tbaa !5
  %5199 = load i32, ptr %1365, align 4, !tbaa !5
  %5200 = icmp eq i32 %5199, 335544346
  br i1 %5200, label %5223, label %5201

5201:                                             ; preds = %5196
  %5202 = load i32, ptr %1419, align 4, !tbaa !5
  %5203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5204 = call i32 @s2n_print_stacktrace(ptr noundef %5203) #13
  %5205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5206 = trunc nuw i8 %5205 to i1
  br i1 %5206, label %5207, label %5211

5207:                                             ; preds = %5201
  %5208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5209 = call i32 @fileno(ptr noundef %5208) #13
  %5210 = call i32 @isatty(i32 noundef %5209) #13
  %.not694 = icmp eq i32 %5210, 0
  br i1 %.not694, label %5211, label %5212

5211:                                             ; preds = %5207, %5201
  br label %5212

5212:                                             ; preds = %5207, %5211
  %.str.4.sink2599 = phi ptr [ @.str.4, %5211 ], [ @.str, %5207 ]
  store i32 %5202, ptr %1419, align 4, !tbaa !5
  %5213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5214 = load i32, ptr @test_count, align 4, !tbaa !5
  %5215 = load i32, ptr %1365, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror(i32 noundef %5215, ptr noundef nonnull @.str.3) #13
  %5217 = load i32, ptr %1365, align 4, !tbaa !5
  %5218 = call ptr @s2n_strerror_debug(i32 noundef %5217, ptr noundef nonnull @.str.3) #13
  %5219 = load i32, ptr %1419, align 4, !tbaa !5
  %5220 = call ptr @strerror(i32 noundef %5219) #13
  %5221 = load i32, ptr %1419, align 4, !tbaa !5
  %5222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5213, ptr noundef nonnull %.str.4.sink2599, i32 noundef %5214, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.2, i32 noundef 617, ptr noundef %5216, ptr noundef %5218, ptr noundef %5220, i32 noundef %5221) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5223:                                             ; preds = %5196
  %5224 = add nsw i32 %5197, 2
  store i32 %5224, ptr @test_count, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror_debug(i32 noundef 335544346, ptr noundef nonnull @.str.3) #13
  %5226 = icmp eq ptr %5225, null
  br i1 %5226, label %5227, label %5249

5227:                                             ; preds = %5223
  %5228 = load i32, ptr %1419, align 4, !tbaa !5
  %5229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5230 = call i32 @s2n_print_stacktrace(ptr noundef %5229) #13
  %5231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5232 = trunc nuw i8 %5231 to i1
  br i1 %5232, label %5233, label %5237

5233:                                             ; preds = %5227
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = call i32 @fileno(ptr noundef %5234) #13
  %5236 = call i32 @isatty(i32 noundef %5235) #13
  %.not702 = icmp eq i32 %5236, 0
  br i1 %.not702, label %5237, label %5238

5237:                                             ; preds = %5233, %5227
  br label %5238

5238:                                             ; preds = %5233, %5237
  %.str.4.sink2608 = phi ptr [ @.str.4, %5237 ], [ @.str, %5233 ]
  store i32 %5228, ptr %1419, align 4, !tbaa !5
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = load i32, ptr @test_count, align 4, !tbaa !5
  %5241 = load i32, ptr %1365, align 4, !tbaa !5
  %5242 = call ptr @s2n_strerror(i32 noundef %5241, ptr noundef nonnull @.str.3) #13
  %5243 = load i32, ptr %1365, align 4, !tbaa !5
  %5244 = call ptr @s2n_strerror_debug(i32 noundef %5243, ptr noundef nonnull @.str.3) #13
  %5245 = load i32, ptr %1419, align 4, !tbaa !5
  %5246 = call ptr @strerror(i32 noundef %5245) #13
  %5247 = load i32, ptr %1419, align 4, !tbaa !5
  %5248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5239, ptr noundef nonnull %.str.4.sink2608, i32 noundef %5240, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2, i32 noundef 617, ptr noundef %5242, ptr noundef %5244, ptr noundef %5246, i32 noundef %5247) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5249:                                             ; preds = %5223
  store i32 0, ptr %1365, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %1419, align 4, !tbaa !5
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = add nsw i32 %5250, 1
  store i32 %5251, ptr @test_count, align 4, !tbaa !5
  %5252 = call i32 @s2n_connection_free(ptr noundef nonnull %5057) #13
  %5253 = icmp eq i32 %5252, -1
  br i1 %5253, label %5254, label %5276

5254:                                             ; preds = %5249
  %5255 = load i32, ptr %1419, align 4, !tbaa !5
  %5256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5257 = call i32 @s2n_print_stacktrace(ptr noundef %5256) #13
  %5258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5259 = trunc nuw i8 %5258 to i1
  br i1 %5259, label %5260, label %5264

5260:                                             ; preds = %5254
  %5261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5262 = call i32 @fileno(ptr noundef %5261) #13
  %5263 = call i32 @isatty(i32 noundef %5262) #13
  %.not701 = icmp eq i32 %5263, 0
  br i1 %.not701, label %5264, label %5265

5264:                                             ; preds = %5260, %5254
  br label %5265

5265:                                             ; preds = %5260, %5264
  %.str.4.sink2617 = phi ptr [ @.str.4, %5264 ], [ @.str, %5260 ]
  store i32 %5255, ptr %1419, align 4, !tbaa !5
  %5266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5267 = load i32, ptr @test_count, align 4, !tbaa !5
  %5268 = load i32, ptr %1365, align 4, !tbaa !5
  %5269 = call ptr @s2n_strerror(i32 noundef %5268, ptr noundef nonnull @.str.3) #13
  %5270 = load i32, ptr %1365, align 4, !tbaa !5
  %5271 = call ptr @s2n_strerror_debug(i32 noundef %5270, ptr noundef nonnull @.str.3) #13
  %5272 = load i32, ptr %1419, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #13
  %5274 = load i32, ptr %1419, align 4, !tbaa !5
  %5275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5266, ptr noundef nonnull %.str.4.sink2617, i32 noundef %5267, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 619, ptr noundef %5269, ptr noundef %5271, ptr noundef %5273, i32 noundef %5274) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5276:                                             ; preds = %5249
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #13
  %5277 = load i32, ptr @test_count, align 4, !tbaa !5
  %5278 = add nsw i32 %5277, 1
  store i32 %5278, ptr @test_count, align 4, !tbaa !5
  %5279 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %5280 = icmp eq i32 %5279, -1
  br i1 %5280, label %5281, label %5303

5281:                                             ; preds = %5276
  %5282 = load i32, ptr %1419, align 4, !tbaa !5
  %5283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5284 = call i32 @s2n_print_stacktrace(ptr noundef %5283) #13
  %5285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5286 = trunc nuw i8 %5285 to i1
  br i1 %5286, label %5287, label %5291

5287:                                             ; preds = %5281
  %5288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5289 = call i32 @fileno(ptr noundef %5288) #13
  %5290 = call i32 @isatty(i32 noundef %5289) #13
  %.not700 = icmp eq i32 %5290, 0
  br i1 %.not700, label %5291, label %5292

5291:                                             ; preds = %5287, %5281
  br label %5292

5292:                                             ; preds = %5287, %5291
  %.str.4.sink2626 = phi ptr [ @.str.4, %5291 ], [ @.str, %5287 ]
  store i32 %5282, ptr %1419, align 4, !tbaa !5
  %5293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5294 = load i32, ptr @test_count, align 4, !tbaa !5
  %5295 = load i32, ptr %1365, align 4, !tbaa !5
  %5296 = call ptr @s2n_strerror(i32 noundef %5295, ptr noundef nonnull @.str.3) #13
  %5297 = load i32, ptr %1365, align 4, !tbaa !5
  %5298 = call ptr @s2n_strerror_debug(i32 noundef %5297, ptr noundef nonnull @.str.3) #13
  %5299 = load i32, ptr %1419, align 4, !tbaa !5
  %5300 = call ptr @strerror(i32 noundef %5299) #13
  %5301 = load i32, ptr %1419, align 4, !tbaa !5
  %5302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5293, ptr noundef nonnull %.str.4.sink2626, i32 noundef %5294, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.2, i32 noundef 623, ptr noundef %5296, ptr noundef %5298, ptr noundef %5300, i32 noundef %5301) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5303:                                             ; preds = %5276
  %5304 = call i32 @s2n_cleanup() #13
  %5305 = icmp eq i32 %5304, -1
  br i1 %5305, label %5306, label %5328

5306:                                             ; preds = %5303
  %5307 = load i32, ptr %1419, align 4, !tbaa !5
  %5308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5309 = call i32 @s2n_print_stacktrace(ptr noundef %5308) #13
  %5310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5311 = trunc nuw i8 %5310 to i1
  br i1 %5311, label %5312, label %5316

5312:                                             ; preds = %5306
  %5313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5314 = call i32 @fileno(ptr noundef %5313) #13
  %5315 = call i32 @isatty(i32 noundef %5314) #13
  %.not699 = icmp eq i32 %5315, 0
  br i1 %.not699, label %5316, label %5317

5316:                                             ; preds = %5312, %5306
  br label %5317

5317:                                             ; preds = %5312, %5316
  %.str.4.sink2635 = phi ptr [ @.str.4, %5316 ], [ @.str, %5312 ]
  store i32 %5307, ptr %1419, align 4, !tbaa !5
  %5318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5319 = load i32, ptr @test_count, align 4, !tbaa !5
  %5320 = load i32, ptr %1365, align 4, !tbaa !5
  %5321 = call ptr @s2n_strerror(i32 noundef %5320, ptr noundef nonnull @.str.3) #13
  %5322 = load i32, ptr %1365, align 4, !tbaa !5
  %5323 = call ptr @s2n_strerror_debug(i32 noundef %5322, ptr noundef nonnull @.str.3) #13
  %5324 = load i32, ptr %1419, align 4, !tbaa !5
  %5325 = call ptr @strerror(i32 noundef %5324) #13
  %5326 = load i32, ptr %1419, align 4, !tbaa !5
  %5327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5318, ptr noundef nonnull %.str.4.sink2635, i32 noundef %5319, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 625, ptr noundef %5321, ptr noundef %5323, ptr noundef %5325, i32 noundef %5326) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5328:                                             ; preds = %5303
  %5329 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %5330 = icmp eq i32 %5329, -1
  br i1 %5330, label %5331, label %5353

5331:                                             ; preds = %5328
  %5332 = load i32, ptr %1419, align 4, !tbaa !5
  %5333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5334 = call i32 @s2n_print_stacktrace(ptr noundef %5333) #13
  %5335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5336 = trunc nuw i8 %5335 to i1
  br i1 %5336, label %5337, label %5341

5337:                                             ; preds = %5331
  %5338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5339 = call i32 @fileno(ptr noundef %5338) #13
  %5340 = call i32 @isatty(i32 noundef %5339) #13
  %.not698 = icmp eq i32 %5340, 0
  br i1 %.not698, label %5341, label %5342

5341:                                             ; preds = %5337, %5331
  br label %5342

5342:                                             ; preds = %5337, %5341
  %.str.4.sink2644 = phi ptr [ @.str.4, %5341 ], [ @.str, %5337 ]
  store i32 %5332, ptr %1419, align 4, !tbaa !5
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = load i32, ptr @test_count, align 4, !tbaa !5
  %5345 = load i32, ptr %1365, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror(i32 noundef %5345, ptr noundef nonnull @.str.3) #13
  %5347 = load i32, ptr %1365, align 4, !tbaa !5
  %5348 = call ptr @s2n_strerror_debug(i32 noundef %5347, ptr noundef nonnull @.str.3) #13
  %5349 = load i32, ptr %1419, align 4, !tbaa !5
  %5350 = call ptr @strerror(i32 noundef %5349) #13
  %5351 = load i32, ptr %1419, align 4, !tbaa !5
  %5352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5343, ptr noundef nonnull %.str.4.sink2644, i32 noundef %5344, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 625, ptr noundef %5346, ptr noundef %5348, ptr noundef %5350, i32 noundef %5351) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5353:                                             ; preds = %5328
  %5354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5355 = trunc nuw i8 %5354 to i1
  br i1 %5355, label %5356, label %5367

5356:                                             ; preds = %5353
  %5357 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5358 = call i32 @fileno(ptr noundef %5357) #13
  %5359 = call i32 @isatty(i32 noundef %5358) #13
  %.not695 = icmp eq i32 %5359, 0
  br i1 %.not695, label %5367, label %5360

5360:                                             ; preds = %5356
  %5361 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not697 = icmp eq i32 %5361, 0
  %5362 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not697, label %5365, label %5363

5363:                                             ; preds = %5360
  %5364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5362, ptr noundef nonnull @.str.38, i32 noundef %5361) #13
  br label %.thread855

5365:                                             ; preds = %5360
  %5366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5362, ptr noundef nonnull @.str.39) #13
  br label %.thread855

5367:                                             ; preds = %5356, %5353
  %5368 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not696 = icmp eq i32 %5368, 0
  %5369 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not696, label %5372, label %5370

5370:                                             ; preds = %5367
  %5371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5369, ptr noundef nonnull @.str.40, i32 noundef %5368) #13
  br label %.thread855

5372:                                             ; preds = %5367
  %5373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5369, ptr noundef nonnull @.str.41) #13
  br label %.thread855

.thread855:                                       ; preds = %.thread853, %.thread, %.thread859, %5365, %5363, %5372, %5370, %2680, %176, %174, %183, %181
  %.13 = phi i32 [ %.11, %2680 ], [ 0, %181 ], [ 0, %183 ], [ 0, %174 ], [ 0, %176 ], [ 0, %5370 ], [ 0, %5372 ], [ 0, %5363 ], [ 0, %5365 ], [ -1, %.thread859 ], [ -1, %.thread ], [ -1, %.thread853 ]
  ret i32 %.13
}

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #4

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_set_connection_hello_retry_flags(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_extensions_server_supported_versions_size(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extensions_server_key_share_send_size(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_hello_retry_message(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_retry_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_server_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_allow_response_extension(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #11

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #2

declare i32 @s2n_extensions_server_key_share_send(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_set_hello_retry_required(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extensions_server_key_share_recv(ptr noundef, ptr noundef) 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 i32 @s2n_conn_update_handshake_hashes(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_keys_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_keys_from_conn(ptr noundef, ptr noundef) local_unnamed_addr #2

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_handshake_copy_hash_state(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_server_hello_retry_recreate_transcript(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @client_hello_detect_duplicate_calls(ptr noundef, ptr noundef) #7

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_get_client_hello(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_find_security_policy_from_version(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_retry_recv(ptr noundef) local_unnamed_addr #2

declare ptr @EVP_PKEY_new() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #12

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 = { 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 #4 = { 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 #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { 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 #12 = { nofree nounwind willreturn memory(argmem: read) }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { cold nounwind }
attributes #16 = { noreturn nounwind }
attributes #17 = { 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, !7, i64 216}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 232}
!43 = !{!44, !10, i64 0}
!44 = !{!"s2n_crypto_parameters", !10, i64 0, !45, i64 8, !45, i64 16, !46, i64 24, !46, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!45 = !{!"s2n_session_key", !10, i64 0}
!46 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !47, i64 16, !47, i64 72, !47, i64 128, !47, i64 184, !7, i64 240, !7, i64 368}
!47 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!48 = !{!16, !10, i64 656}
!49 = !{!16, !10, i64 704}
!50 = !{!32, !6, i64 28}
!51 = !{!32, !6, i64 24}
!52 = !{!16, !10, i64 664}
!53 = !{!54, !31, i64 0}
!54 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!55 = !{!56, !10, i64 0}
!56 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!57 = !{!56, !10, i64 8}
!58 = !{!31, !31, i64 0}
!59 = !{!16, !7, i64 219}
!60 = !{!61, !7, i64 8}
!61 = !{!"s2n_tls13_keys", !6, i64 0, !6, i64 4, !7, i64 8, !25, i64 16, !25, i64 40, !7, i64 64, !7, i64 112, !46, i64 160}
!62 = !{!61, !6, i64 4}
!63 = !{!25, !6, i64 8}
!64 = !{!25, !10, i64 0}
!65 = !{!16, !10, i64 16}
!66 = !{!16, !6, i64 2044}
!67 = !{!16, !6, i64 2040}
!68 = !{!69, !6, i64 0}
!69 = !{!"client_hello_context", !6, i64 0, !6, i64 4, !12, i64 8}
!70 = !{!16, !6, i64 2176}
!71 = !{!16, !6, i64 2172}
!72 = !{!16, !7, i64 220}
!73 = !{!74, !10, i64 40}
!74 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!75 = !{!76, !10, i64 8}
!76 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!77 = !{!16, !10, i64 712}
!78 = !{!16, !6, i64 4088}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LowerExpectIntrinsicPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass